Friday, March 30, 2007

Pranksters @ Work

Originally uploaded by adamjh.
If you work on my team at Microsoft, beware of what may happen if you decide to abandon the team for a vacation after shipping a product.

Wednesday, March 28, 2007

Picture's worth a thousand words...


This morning in San Diego a couple of customers snapped some pictures during a keynote demo of the product I've been pouring my heart and soul into designing and building over the last 2 years..

It's really fun to watch such a great software project grow from nothing into something that people want to take pictures of (even if it's still not much to look at)!

More pics here and here (thanks Maartin and Erik for the pics). My teammates and I at Microsoft have also been blogging about our baby here.

Sunday, March 25, 2007

Work Fun

IMG_0342 IMG_0406

IMG_0351 IMG_0323 IMG_0306

I work on a relatively small team at Microsoft. We work on about 4 or 5 products that make up a subset of the System Center products, which are a subset of Microsoft Servers. I didn't leave college thinking to myself "I want to change the world by designing better IT Management products at Microsoft" -- it's just something I sorta fell into. It's not as sexy as the iPod or even the Xbox, but I've stuck around so far because I love the team, the culture, and the challenges.

This past week, my teammates working on the wildly successful Operations Manager product did their final build of Operations Manager 2007 (for the true geeks in IT out there, there's a 6 month eval version already available for free download).

It's gonna get lots of press this week at our yearly show in San Diego - but in the meantime, just wanted to say congrats to those guys and share a few of the safer pictures from the celebration. ;-)

Tuesday, March 13, 2007

Microsoft Program Manager Interview Questions & Advice

The Microsoft recruiter for the University of Michigan recently asked me for a list of PM interview tips that she could send to PM candidates in advance of their interviews. I did a quick search, and found that there really wasn't that much already out there on the subject, and figured I'd post my response here for other web searches to benefit from. Here goes...

1. Do your research and understand the role of a PM at Microsoft. The job description of a Program Manager can be a bit harder to grasp at first than those of their Dev and Test counterparts. Beyond the description on the Microsoft career web site, you can scour the web for useful tidbits of information – like this post by Steven Sinofsky ( If you have friends who have worked/interned at Microsoft, ask them about the role too. Bonus: Quite a few PM interviewees have made blog posts about their PM interview experiences – seek them out!

2. Focus on passion and potential – not brain teasers. We care much more about your passion and potential (especially coming right out of college) than about your ability to deduct why manhole covers are round. Brain teasers and puzzle questions can elicit critical thinking skills and even probe how you handle under pressure, but they’ll rarely make or break your day of interviews. When preparing for your PM interview, focus on being able to answer questions showing a strong interest, passion, and understanding of software and technology. Be able to tell the interviewer about a project you’ve worked on that would make her say “wow”. Be ready to tell us about a product or technology you love (or hate) – and why – and how you might change or improve it.

3. Use the whiteboard. Great communication skills can be key to being a great Program Manager. Don’t be afraid to use the whiteboard when answering questions (even if not explicitly handed a marker). Don’t feel that you need to be well-versed in UML to start sketching a design, a timeline, or a list on a whiteboard as you answer a creative, design, or technical question. Practice this before your interview if you don’t already do it day-to-day. PMs do a lot of writing, presenting, and convincing – show you’re up to the task.

4. Design for the customer. A Program Manager is the voice of the customer. Ask and understand who the customer is before answering a question that begins with “How would you design a …” or “How would you improve …”. Often, there are multiple customers – for example, the web developer is as much a customer of Internet Explorer as the person doing the browsing. Brainstorm a bit, but then also talk about how you might otherwise go about getting more information directly from customers. Prioritize (and whiteboard!) requirements and features before you design anything!

5. Make informed tradeoffs. One of the hardest, most important, and least scientific parts of a PM’s job is to balance customer requirements, competitive offerings, constrained resources, and make tradeoffs where necessary. You have 3 months of time left on a project that will take 5 months to complete. What do you do? This is a theme that has been extensively explored in software engineering books like The Mythical Man-Month. Do you cut features? Slip the date? Hire more people? Hint: The latter rarely works. Be creative and intelligent with your answers, but also don’t be afraid to cut (or postpone) the right features if that’s what it comes down to.

6. Be comfortable and confident, but not cocky. A big part of a PM’s job is influencing others without having any authority over those individuals. You might be posed a hypothetical situation and asked what you would do, or you might be asked about real challenges you’ve faced in the past and how you’ve resolved them (or what you would do differently if given the chance). Use specific examples to show that you can empathize with the positions of others who disagree with you, and that you can convince those who disagree to resolve their differences and work together towards a common goal. You want the interviewer to perceive you (both from your examples and generally from the way you interact) as somebody who is confident and smart, but also as someone who is humble and willing to cave when necessary. Sidenote: Some of the best PMs at Microsoft are the ones who are willing to cut or postpone their own features out of a release when they believe it’s the best thing for the product and team.

7. Be prepared to code. While programming isn’t necessarily part of the daily regimen for all Program Managers at Microsoft, they’re still expected to have technical understanding and experience. You may be asked to write code to demonstrate your understanding of algorithms, architecture, programming languages, and/or other technical areas. Make sure you understand the question and can define the problem before beginning to formulate an answer. Always ask clarifying questions. Jot down your proposed algorithm in very high level steps or pseudocode before attempting to express it in a programming language. Before you decide to stick with an answer, think (always out loud!) about its algorithmic complexity (Big-O notation) in terms of time and space and consider any alternatives or optimizations you could make. Pick the programming language that you’re most comfortable with, and ask the interviewer if she is okay with you using it (and explain why) to express your answer. Finally, suggest some test cases for your code and run through them to find bugs. The problem solving process you follow here is arguably as or more important than the syntactic correctness of your final answer. Tip: There are plenty of books and web sites with programming interview questions. Set up a mock interview and have a friend quiz you before you attempt the real thing. Don’t attempt to memorize answers, but get comfortable performing under pressure and do familiarize yourself with arrays, linked lists, trees, searching/sorting, and string manipulation strategies – they’re favorites and well-suited for an interview time window.

8. What counts is all in your head. Remember you’re being interviewed for what’s in your head, not what you wear. Dress comfortably – personally, I wore a short-sleeved shirt – but if you happen to be more comfortable problem solving and whiteboarding in a suit (and don’t mind some “interviewee” glances throughout the day), then that’s perfectly acceptable too! Also remember we’re not interviewing you based on your extensive work experience when you’re coming right out of college. Instead, show the people you meet with that you’re creative, innovative, entrepreneurial, and that you have a strong interest in and passion for technology – and applying it to real life challenges faced by nearly a billion people who use Microsoft products worldwide.

Tuesday, March 06, 2007

Work Play Work Play

Whooosh. Another 15 hour work day flies by.

After the quick jaunt to Chicago, I continued making up for not having taken any vacation over the holidays this year by flying down to Los Angeles for a weekend to see my family and catch up with my friend Jeff (formerly of mates fame) who flew in as well for the weekend from Michigan. The weekend trip was followed by 5 nights in beautiful Whistler, British Columbia -- by far the most amazing skiing in North America.

Along the way, I picked up a free HTC Excalibur aka T-Mobile Dash [review]. Free, you say? Why yes! Free as in beer! I had called up T-Mobile from LAX to exchange my T-Mobile SDA with an underperforming joystick for an identical model, and they kindly offered me the Dash instead - with free shipping no less! The Dash runs the Messaging and Security Feature Pack, which is much improved over the SDA's OS, and T-Mobile will be offering a free upgrade to Windows Mobile 6 shortly for it as well. XOXO @ T-Mobile!

It's going to be a challenge to get work done at work this week. My team has a couple dozen partners in town for a round of tech talks and demos, it's TechFest (one of the coolest annual Microsoft events), we're celebrating one of our products that's about to ship (OpsMgr 2007) at an off-site event, and there's an all-paid-for team ski day on Wednesday. Sadly, after taking quite a bit of vacation recently, I'll probably need to duck out of most of it (even the skiing). Time to work hard -- go big or go home.

Isn't it funny I can write a 3 paragraph blog post all about me me me, and yet it winds up plugging 5 Microsoft-related sites? Hrmph.