Sunday, March 15, 2009

Interviewing – Design Questions

One of the side tasks I do at Microsoft is interview college students for full-time and intern positions remotely.  We do this over LiveMeeting.  If you haven’t used LiveMeeting before, it is an application that allows you to allow multiple users worldwide to hear audio and view slide decks.  It also allows the users to simultaneously modify a text document or whiteboard.

During the interviews, depending on what I see from a resume, I may ask either a design or coding question.  This design area is one that a lot of colleges don’t focus on: how do you design software?  I have found that having solid design skills can lead to a solid developer.  You must be able to rationalize your thoughts before coding and one of the best ways to do that is to design your solution first.

I mostly ask intern candidates to code while full-time candidates get design questions.  I expect that intern candidates may not have had many design projects in college yet.  Full-time candidates, more than likely, have had the opportunity to design.  Usually this comes from a senior project class.  I’ll blog about coding questions in the future.

During the technical portion of the interviews, interviewers often ask a question and leave it vague.  We want you to get more clarity on the issue we want you to solve.  You should be asking questions to help understand the true problem.  There isn’t a magic number of questions to ask.  You need to understand the complete problem before trying to solve it.

Here is a sample design question someone could ask: Design an automobile.

Design an automobile?  I thought this was supposed to be a technical question?  It still is.  How would you design an automobile?

There are lots of questions that you could ask about this design question.  ASK THEM!

  • Why do you want me to design an automobile?  There are already plenty of automobiles in the market.
  • Who is this automobile for? Know your customer!
  • What type of automobile? Hybrid, truck, SUV, electric…
  • Where will this be sold? One location may have certain requirements, like the steering wheel needs to be on the right-hand side of the automobile.
  • When does this need to be release? There is always a timeline involved that will restrict how you use your resources.
  • What is your budget and what resources do you have allocated to you? Money, human resources, space, etc… more constraints.

As you can see, these questions all start with the 5 ‘W’s: who, what, where, when, and why.  This is a great way to get answers to a vague design question.  However, you have to be the one to ask them.  From here, you can come up with a feature list and a potential design for the automobile.

One thing to be ready for is to potentially turn a part of your design into code or your design leading into a coding question.  I do this often during interviews to make the coding portion relevant to the design.

How could you make a coding question out of designing an automobile? Just about any automobile has a radio… and a radio has stations that you can program for easy access.  How do you design a structure to hold a radio station for the automobile?  Can you write the code for it and some helper functions?

We want you to be free thinking and understanding not only how to code… but how do you design great software that is maintainable, reliable, efficient, and reusable.  You could add others there, but you start running into tradeoffs.  If you see that you need to make a tradeoff, explain it in detail to the interviewer.  We want to know what you are thinking and why.  The only way for us to know this is if you to tell us.  The interviewer may at times ask you to explain yourself or remind you to express your thoughts verbally.  Don’t worry when this happens… we just want to understand what you are thinking.

Oz

Thursday, March 5, 2009

How to Setup a Mapped Drive on your MCX with a Domain-based Computer

Abstract: With the development of Media Center Extenders (MCX), you can not join the Media Center PC to a domain. This document will outline steps you can take to create a mapped drive for a MCX when media files are stored on a domain-based computer’s shared folder.

NOTE: This article assumes you have shared the proper folder on the domain computer and set the permissions correctly for the user account on the domain. Within the article, the password will be exposed in plain text in a batch file. If you do not wish to have your account’s password shown, it is recommended to create a new domain account.

NOTE: You may have seen this on http://blog.vanosdale.com/.  That was my old blog, and I have since taken it down.  Well, I have set it up to redirect to here soon…

Determine User Accounts for Media Center Extenders

You need to determine what user account is associated with the MCX for the mapped drive. If you have only one MCX or want all MCXs to be mapped with the same share and credentials, you can skip over this section.

  1. Open Media Center Extender Manager (Start -> All Programs -> Accessories -> Media Center -> Media Center Extender Manager).

  2. Choose the MCX from the list and click Properties.

    1. If you do not know which MCX is the one you want, you will need to match it up with the Device ID from the MCX.

      1. From the MCX, go to Settings -> Extender -> About

      2. Match the Device ID with the one in the list. Device IDs in the list are in bold print. Also, the status should show Connected for the device.

  3. Write down the user account from the Media Center Extender Properties dialog box. It should be in the form of MCXn where n is a number.

  4. Close out of the Media Center Extender Properties dialog box and the Media Center Extender Manager.

Create the Batch File

You will need to create a batch file to handle the drive mapping process.

  1. Start Notepad (Start -> All Programs -> Accessories -> Notepad).

  2. Enter in the following text:
    net use z: SHARE PASSWORD /user:ACCOUNT /persistent:NO

  3. Replace SHARE with the share on the domain computer using the following syntax:
    \\COMPUTERNAME\sharename

  4. Replace ACCOUNT with the domain account using the following syntax:
    DOMAIN\username

  5. Replace PASSWORD with the password for the account.

  6. Open the Save As dialog box (File -> Save As).

  7. In the Save in drop down menu, choose the drive where Windows is stored (most PCs use C:).

  8. Create a new folder called Scripts.

    1. Click the New Folder icon.

    2. Type Scripts to replace New Folder.

      1. If this does not work, right-click on New Folder and choose Rename.

  9. Select the Scripts folder and click Open.

  10. In the Save as type drop down menu, choose All Files.

  11. In the File name text box, type in MCX.bat

  12. Click Save.

  13. Close Notepad.

Share the Scripts folder

You will need to share the scripts folder as the NETLOGON shared folder. This will help enable logon scripts for the local Media Center PC.

  1. Open the Run dialog box (Start -> Run).

  2. Type in the following:
    X:\Scripts

  3. Replace X with the drive letter chosen in the previous section.

  4. Click OK.

  5. Right-click anywhere in the white space and choose Properties.

  6. Click on the Sharing tab.

  7. Click the Share this folder on the network check box.

  8. Type in NETLOGON in the Share name text box.

  9. Click OK.

  10. Close the Scripts folder window.

Set a Logon Script

You will need to set the MCX.bat file be the logon script for the MCX user account.

  1. Open the Start button.

  2. Right click on My Computer and choose Manage.

  3. Expand the Local Users and Groups tree (click on the + symbol).

  4. Click on Users.

  5. Right click the user account that you wrote down in the first section and choose Properties.

    1. If you did not write one down, choose the first MCXn account listed, where n is a number.

  6. Click the Profile tab.

  7. In the Logon script text box, type in MCX.bat

  8. Click OK.

  9. You can either do this for each MCXn account listed if you want all MCXs to access the same content on the folder or close the Computer Management window.

Add the Folder for a Media Center Experience

Now that you have the drive mapped, you should be able to add the drive using the Add Music, Add Pictures, or Add Videos wizard.

  1. If your MCX is turned on, turn it off and then back on.

  2. Select the experience you want to add media. For instance, My Music.

  3. Press More Info or Details on the remote and choose Add Music.

  4. Select Add folders and choose Next.

  5. Select Add folders on this computer and choose Next.

  6. Select the Z: folder and choose Next.

  7. Choose Finish.