Monday, November 28, 2011

How to Get Your Dream Software Internship (Pt. 1)

After landing my dream internship at Microsoft, I figured I'd take some time to sit down and share my advice.

This advice is targeted at college students looking to get a software related summer internship (programmer, tester, program manager, etc.).  However, you may find that most of this advice applies equally well to graduating students looking for full time work.  NO! DONT USE THIS ADVICE FOR THAT! I'm kidding, you can use this advice for that.  It's totally cool.

Ok here we go.

I'm going to divide the process of getting an internship into three bite-sized pieces:
  1. Building your resumé
  2. Getting an interview
  3. Nailing the interview(s)
This article focuses on the "Building your resumé" part of the process.  If you guessed this much because of my clever use of bold, then kudos to you.  You will be successful in your job search.

Before getting into the actual implementation details of how to write your resumé, it's important to understand the point of it.  A resumé is your chance to sell yourself quickly.  The goal of your resumé is to make yourself look as good as possible.  Your resumé is NOT the place to tell your life story, ramble, or provide meaningless lists.

Say you spent a summer folding clothes at Pac Sun.  How should you represent that experience?  Let's take a look at two ideas.

Idea 1:
Pac Sun, Los Angeles, CA

  • Operated the cash register
  • Customer service
  • Folded clothes
  • Mopped the floor
Idea 2:
Pac Sun, Log Angeles, CA
  • Developed strong communication skills through customer service
  • Worked on a team to clean and operate the store

Idea 1 certainly takes up more space on a resumé, but what does it tell companies about you? That you know how to fold clothes?  Operate a cash register?  Listing responsibilities in this manner does nothing to sell you.  Don't use the attitude of "I'll list my experiences and let companies draw their own conclusions!"  The only thing the company will conclude is that you don't know how to sell yourself and are a poor communicator.

Idea 2, on the other hand, takes up less space but cuts right to the point.  This job helped you develop strong communication and teamwork skills.  Google does not care that you figured out how to work a cash register, but you better believe they care about your ability to communicate and work on a team.  Idea 2 is better because it sells your experiences rather than just list them.

This idea of selling yourself applies to the entire resumé.  Figure out your strengths and make them standout.  For example, if you have a great GPA but no software related work experience, you should write your resumé in a way that emphasizes your GPA and potential.  If you have a crappy GPA but have made contributions to some open source projects, the first section on your resumé should certainly be "Open Source Projects" and not "College".  Always keep in mind the people reading your resumé are probably going to focus on it for about 10 seconds before making a decision.

Now that you understand the point of your resumé, let's talk about some details.

Grammar or spelling errors are completely intolerable.  Before sending your resumé out into the wild, you need to have some friends peer edit it for errors.   Choose the best writers you know to edit your resumé.  Promise your friends that you will in no way be offended by harsh criticism.  Don't be offended by harsh criticism.

What should your resumé look like?  Don't write it from scratch.  Use a resumé template in Microsoft Word or find some good ones online.  I wouldn't suggest making your own format, but if you have a good eye for design then I won't stop you.

How to list the frameworks/languages you know?  This depends on the position you're applying for.  At Microsoft, where I was applying for a Program Manager internship, the specific technologies weren't the key part of my resumé. Thus, I listed them towards the end and didn't place too much focus on them.  For programming internships, it may be a better idea to list the technologies closer to the beginning.  You should include the amount of experience and your skill level in any technologies you mention.  You don't want to get quizzed on something you have on your resumé that you hardly have any experience with.  Which brings me to my next point....
        Anything you put on your resumé is valid room for interview questions.  Don't lie!

Key things companies want to see in college students' resumés:
  • Good GPA
  • Good college
  • Relevant work experience (don't just list responsibilities!)
  • Contributions to open source projects
  • Experience in relevant technologies 
  • Passion for software 
  • Leadership
  • Strong communication skills
  • Experience working on a team
Try to make your resume showcase as many of these things as possible.  Likewise, de-emphasize whatever you're lacking.  If your GPA is bad, consider putting academics far down on your resumé below the good stuff.  If you haven't contributed to any open source projects, then obviously don't have an "Open Source Projects" section.

Finally, have some smart friends review your resumé.  Tell them to look at it from the perspective of an employer.  How well does it sell your experience?  Is there anything on your resumé that seems pointless and does nothing to sell you?  Are there any spelling errors?  Be open to criticism.

For more advice, I'd highly recommend reading Programming Interviews Exposed.  It has a great section on resumés which is far more extensive than what I've written here.

I'll definitely be replying to any questions left in the comments, so comment away!  Until part 2....

1 comment:

  1. hey i read about your interview at microsoft PM interview in quora .I will be going to seattle for the exact same interview .could you please tell me a bit more abt it?I am a graduate student at drexel university philadelphia .Is it possible to contact you on gmail or something ???i really need some advice .