This question originally appeared on Quora, the best answer to any question. Ask a question, get a great answer. Learn from experts and access insider knowledge. You can follow Quora on Twitter, Facebook, and Google Plus.
Answer by Shine Wang, software engineering intern, 2015:
To get an interview, your résumé has to stand out. This is commonly through interesting side projects, hackathon awards, coding competitions, undergrad research, and so on.
As for interviews, having talked with Googlers who interview candidates for the software engineering internship, I gather that they value the following set of criteria:
- Technical competency: Are you able to code? Do you know the standard algorithms and data structures that a regular junior should have learned?
- Google-ness: Are you a nice person? How do you handle stressful situations? With grace or with anger?
- Communication: Are you fluent in English? Can you express technical ideas succinctly and unambiguously, with examples and correct terminology?
How does Google's criteria in hiring software engineering interns differ from those of other tech companies? I've come up with certain theories resolving this from observing the relative successes of my peers in their applications, interviews, and o
Product encompasses two ideas: the company's tech stack and core product. Tech stack is straightforward—companies, especially smaller ones, want people fluent in the technologies they use. This is reasonable—the engineers who are interviewing candidates would want code written in languages they are comfortable with, and candidates will eventually write code in the languages they use. If you're interviewing at Google, there's a 90 precent chance you'll be primarily submitting C++, Java, and Python code, and your interviewer will definitely familiar with at least one of those languages. If you do your interview in Haskell—well, best of luck.
Core product is more difficult to judge, and a heuristic may be: How much do business decisions drive the product? How “technically difficult” is the product to create (think MemSQL)? For example, on my old team at Desire2Learn, nearly all of the engineering is driven by business decisions (and 50 percent is C# boilerplate code), whereas writing code at Google requires more “engineering maturity.” When I wrote MapReduce pipelines, I was surprised by how tricky it is to analyze algorithms that run on multiple machines and how similar it is to type theory in functional programming. In a nutshell, companies working on technically difficult products generally have higher bars for technical competency. (Note: Nearly all tech products become “technically difficult” once you start counting the number of users in scientific notation.)
Culture is probably the most difficult factor to evaluate when estimating a company's hiring criteria. Look first at the founders—companies whose founders have engineering backgrounds (Google, Facebook, Microsoft, Dropbox, Addepar, Quora) almost universally have high demands on technical competency. However, my peers who excel at hackathons (or other projects where UI and other factors outweigh technical complexity) seem to find more success at companies founded by entrepreneurs of a liberal arts or business background—Hootsuite comes to mind.
At the end of the day, tech companies' hiring bars are more similar than different—they're generally looking for talented, adaptive, young engineering minds. However, there remain subtleties that differentiate the qualities that companies are looking for, stemming from their products and cultures. Google, specifically, places heavier emphasis on mastery of general-purpose programming languages and algorithmic skill.
How does Google select its interns? What are the criteria? originally appeared on Quora. More questions on Quora: