Saturday, March 08, 2008

How did I prepare for my Program Manager interview's at Microsoft?

Program Manager interviews at Microsoft can be a lot tricky. The bottom line being that one has to understand what “Program Management” actually means. I had my round of interviews about 5 months ago, the memories of the interview and the questions still steadfast in my head!

The story is pretty funny though; I actually didn’t per-se apply myself to the position. A good friend of mine spotted this opening and thought I would really enjoy it and bang, I got an interview call one fine day. The first round of interview (supposed to be a bit technical) lasted for about 25 minutes. Subsequently I had another 5 more rounds of interviews (the typical Microsoft style) – I’m sure you would all have read much about the kind of questions that were asked. It’s strange though that when you wish to prepare for something, it’s the path for preparation that is the most important since the questions shared are not typically the ones that you might always get .. So it’s good to know what to expect and this blog is particularly my perspective of what to expect (pretty much covers all areas of my preparation). I do not intend to say that this is all you would need to prepare for a PM interview at Microsoft (personal judgment on this would be the best for you). My only intention of posting this blog is to share my personal experience with the outside world and throw some light on my preparation process and give some interview tips.

I’ve categorized this blog into broader subsections –
  1. General PM core competencies which I perceive are expected
  2. General background knowledge
  3. How to answer questions at PM interviews
  4. PM concepts (good to know)
  5. Other online references I had gathered.
So let us drill down into each of these subsections in greater detail now
General PM core competencies which I perceive are expected (TOP 10)
Here is a list of core competencies which in my perception are expected from a good PM –
  1. Leadership
  2. Positive attitude
  3. Interest and passion for technology, people
  4. Questioning attitude
  5. Strong technical and technological backdrop
  6. Open minded to problems – think before answering.
  7. Customer focus, user centric
  8. Aspire, plan, slog and achieve
  9. Strong interpersonal, communication skills - Is able to verbalize thought process
  10. Is open to alternate solutions/ options and not stop and stick to one personal best approach.
General background knowledge
Rule of thumb is know yourself very well .. know what you have said on the resume .. be highly prepared to answer both surface level and in depth questions on projects you have listed on your resume ..for example, my resume sports 2 years of work experience as a software engineer .. I had questions on the nature of work I was doing (to start with) .. I had actually developed a protocol/ library API for an open source call server. The next set of questions were very specific on the protocol per-se (didn’t expect it though) like was it sync/ async communication, thread model .. Also think for a minute about where you have been, where you are right now and where you would like to see yourself in the future .. remember a good PM is also someone who knows where his team has been (past learning’s, in this case, the team is just you), knows where the team is today (delivered as status update), has a target goal (project finish, in this case would be where you want to be in say 5 years) and has a future plan (project plans?). Some great questions (please look to reference section for more links to questions) which are always good to be prepared for –
  • Where do you see yourself in 5 years?
  • How do you plan to get to where you aspire to get to
  • Why do you wish to work with Microsoft?
  • Why Program Manager position?
  • What are your expectations on this position?
  • What is your understanding of the position?
  • What are your strengths? [very important to know]
  • What are your weaknesses? [very very important to be self aware]
  • Your previous experience in Project Management?
  • Which is your most favorite place to work? (company)
  • Tell me the courses you liked and why did you like them.
  • Give an instance in your life in which you were faced with a problem and you tackled it successfully.
  • What is your ideal working environment.
  • Questions on the projects listed on the Resume.
  • Do you want to know anything about the company.( Try to ask some relevant and interesting question).
How did I prepare to answer questions at PM interviews (the most interesting section)
Well, if you have had done your homework well by now, you would have known that one tip which is almost shared by every blogger for interviews at Microsoft is – to ask a lot of relevant and timely questions and to use the white board when you start drawing in air! .. that is quite true and made perfect sense to me. I prepared myself in a different style. I have always been methodical in my approach to things .. and so came up with this approach and it worked! Let me know what you think :)

1. Approach to Programming questions
  • Start out with basic block with input, output, what it does, what to do on exceptions.
  • Define the input and output further
  • Define the functioning algorithm of the block for the input
  • Define how exceptions are handled within the block or added as output
  • Define the test cases
    • Identify the break points for the variables passed in and processed like size limit on int or float or double
    • Pass non-expected input value (in all combinations)
    • Pass exception conditions (null pointers, divide by zero or whatever)
    • Attack on algorithm (breaking points)
  • Write the pseudo code (algorithm)
  • Write the code
  • Test it to prove it delivers the expected behavior

A figurative example of how I used the white-board

2. How to approach design questions
  • Redefine the problem in your own words to make sure you have understood the question – problem statement
  • Requirements gathering
    • Understanding who the end users are
      • Age
      • Personal preference?
      • Some background information
    • Understand what would be the core features of the system
    • Identify areas which are likely to change – what kind (if possible)
    • Identify and jot down business dependencies (if any)
    • Identify and jot down hardware dependencies (if any)
    • Identify performance, security, UI needs (if any)
    • Propose technological alternatives
      • Compare them against core-strengths
        • Security
        • Scalability
        • Accuracy
        • Ease of use
        • Consistency
      • Propose an optimal or personal choice
    • Assumptions/ limitations
  • Understand what kind of minimal (essential) functionality the system should achieve – from requirements gathering
  • Architect the system discussing about making it scalable, robust, secure, extendable
    • Discuss the limits of the architecture
    • Identify the integration thread
    • Identify the difficult design areas
  • Iteratively add the accidental/ additional features/ fine tuning
  • Define the use cases for the system (if they exist)
  • Design the system with data flow diagrams, how the functional blocks interact
  • with each other, what each functional block does (inner working of each block), error handling techniques/ modules for feedback and corrective actions [if applicable]

A figurative example of how I used the white-board

3. How to approach a Mind Teaser question/ logic questions
  • Rephrase the question in your own words
  • Just think out loud.
4. Personal questions about projects/ previous experience
  • Be true and honest and don’t hesitate to bring out past experience and accomplishments.
PM concepts (good to know)
  • SDLC?
    • Software Development Life Cycle – phases of software development.
    • Software Elements Analysis - Requirements gathering
      • Know who are the customers?
      • Know what has to be done – problem statement
      • Know when does this have to be implemented – discuss possible time lines (get a gut feeling)
    • Domain Analysis
    • Specification
    • Software architecture/ Design
    • Implementation
    • Testing
    • Documentation
    • Training and support
    • Maintenance (bug fixes, patches)
    • Models
      • Waterfall model
      • Iterative process
      • V-model
      • Extreme Programming
    • RUP
    • Agile Programming
  • Project tracking techniques
  • Estimation techniques
    • Effort estimation
    • Work break down structure

    • Estimating code size
    • Time estimation
    • Resource estimation techniques
    • Conflict resolution
    • Customer Relations Management
    • Change Management
    • Project Risks/ Mitigation Strategies
  • Technological decisions
    • Which programming language to choose?
    • Which technology to propose?
  • Improve existing software/ functionality addition
  • Design/ Architecture Related Preparation
    • Design principles
      • Features of a good design
    • Constraints to choose a particular design
    • Difference between design and architecture
Other online references I had gathered
  1. Questions - http://www.emicrosoftinterview.com/default.aspx - MUST SEE for RIDDLES
  2. http://www.sellsbrothers.com/fun/msiview/default.aspx?content=question.htm
  3. Questions - http://halcyon.usc.edu/~kiran/msqs.html
  4. http://blog.mattgoyer.com/technical-interview-at-amazon-sde-and-microsoft-program-manager
  5. http://adamjh.blogspot.com/2007/03/microsoft-program-manager-interview.html
  6. http://blogs.msdn.com/jobsblog/archive/2004/04/26/120598.aspx
  7. http://radio.weblogs.com/0105395/stories/2002/03/27/whatIsAMicrosoftProgramManager.html
  8. http://blogs.msdn.com/descapa/archive/2007/03/24/program-manager-pm-interview-tips.aspx
  9. http://blogs.msdn.com/farshid/archive/2007/05/10/what-does-a-microsoft-program-manager-do-demystifying-the-pm-role.aspx
  10. http://www.tylerbutler.com/dailydose/Pages/MicrosoftProgramManagerInterviewTheBreakdown.aspx
  11. Great one - http://blogs.msdn.com/farshid/archive/2007/05/10/what-does-a-microsoft-program-manager-do-demystifying-the-pm-role.aspx
  12. Logic problems - http://www.cut-the-knot.org/algebra.shtml
  13. Just great source of PM questions - http://www.pmconnection.com/modules.php?name=News&file=article&sid=27
  14. Steven Sinofsky's Microsoft TechTalk - http://blogs.msdn.com/techtalk/archive/2005/12/16/504872.aspx
  15. More Questions - http://www.interviewrx.com/discuss/fullthread$msgNum=34
  16. What Janelle expects - http://blogs.msdn.com/jobsblog/archive/2007/10/30/whatwelookfor.aspx
  17. Janelle Preparation help - http://blogs.msdn.com/jobsblog/archive/2007/11/05/problemsolvingquestions.aspx
  18. Unix Design Philosophy - http://www.faqs.org/docs/artu/ch01s06.html
  19. Microsoft F# - http://www.eweek.com/article2/0,1759,2212215,00.asp

Hope you would find all these information useful and good luck with your interviews :)

To end this post on a good note - here's a poem I wrote about PM a couple of days ago --
“Dawn to dusk with a husky voice,
not to wonder it could really be noise (to a few)

Things lined up on all directions,
no wonder they should actually be the reflections

Of the team and the vision,
something that we could envision!

United we stand and divided we fall
- a wonderful thing indeed to hear, for all!

To use it and use it correctly lies the key,
We would ultimately manage and prosper, the farther we see”

Monday, October 30, 2006

My website has been listed in the DMOZ project under the category Computers > Speech Technology > Research. Please do feel free to check out the page listing (and other sites which are also listed with mine) at http://dmoz.org/Computers/Speech_Technology/Research/

Friday, September 22, 2006

I've successfully completed my PGDBA course with symbiosis and now hold a Post Graduate Diploma in Business Administration, specializing in finance! I believe the degree will be conferred to me in December 2006.

Saturday, September 09, 2006

Alas, landed at UB and have updated the same on my blog .. check it out! :)

Friday, September 01, 2006

Landed at UB and have updated my home page to reflect my latest research and course work at UB .. an exciting place to be at ! - definitely

Tuesday, April 11, 2006

Huh good news

Huh .. good news
I have been offered admission to Masters program in computer science with a couple of universities at the USA. Have decided to move on and will resign my current job with virtusa in about 2- 21/2 months from now! (

Thursday, January 19, 2006

Products page added

Products page added

Glad to announce the addition of products page to my website.
You can find the page at http://www.products.vishwacsena.co.in