Answer by Gayle Laakmann McDowell, former software engineer at Google and author of Cracking the Coding Interview: 150 Programming Questions and Solutions
There are really three parts to this answer: getting the right experience, creating a good resume, and submitting it the right way.
Getting the Right Experience
If you come from a good school/work for a well-respected company, that’ll help you a ton. But anyone can boost their resume with some projects.
Build some iPhone apps, web apps, whatever! Honestly it doesn’t matter that much what you’re building as long as you’re building something. Good languages include Java, Python, Ruby on Rails, C++, etc. I would encourage you to stay away from .NET. Not because .NET isn’t a perfectly good tool, but there’s a stigma.
Doing these projects is especially important if you’re, say, a programmer for CitiBank. You don’t have the right “pedigree.” But projects will help you a ton.
1. You can build a fairly meaty project in one weekend. This means that with about 3 to 4 weekends of work, you can make your resume go from so-so to fantastic. Seriously — I’ve seen lots of people do this.
2. Participate in hackathons.
3. Build a website / portfolio. Show your experience.
Building a Great Resume
One page only. When you go onto two pages, you add weaker content to your resume, by definition. And when your resume is only read for about 15 seconds, it’s the average content that matters, not the “total amount of content.”
• Use a real resume format. Don’t create your own – it tends to waste space and look sloppy.
• List your projects, hackathons, etc. Don’t worry about whether or not something is ‘resume appropriate.’ Does it make you look more impressive? Then include it.
• Keep your bullets short — 1 to 2 lines each. Bullets that are 3 or more lines look like paragraphs and won’t be read.
• Focus on accomplishments, not responsibilities. The first line of each bullet should be a word like built, created, implemented, designed, architected, optimized, etc.
• Quantify your accomplishments. Did you optimize something? Okay, then tell me by how much.
• No summaries. They don’t tell me anything other than what position you’re applying for and I already know that.
Submitting Your Resume
Too many people stop with just one avenue. They apply once, and then figure that’s enough. Try all available avenues.
• If you’re active on Github, Stack Overflow, etc, there’s a chance a recruiter will come to you. But there’s no reason to wait for that.
• Apply online. It’s tough, but people do get their resumes selected that way.
• Ask your friends. Do any work at Google? Or know someone who does? It’s a huge help if someone will refer you.
• Try reaching out to Google engineers on Twitter, Quora, or other social media. Remember that your first contact with them is, effectively, a cover letter. Don’t just say “Hi, I’m interested in Google, will you refer me?” Reach out to them and tell them about some of the things you’ve done, and then link them to your resume.
Again, this advice applies to all companies, and much of it to many positions as well.