courting the tallest companies on earth
February 15, 2011 6:58 AM   Subscribe

What do I need to learn, and what experiences do I need to attain to get a top software development job?

Let's say I wanted to attain a software development position at one of the top 10 software companies that exist today. I won't name them, because I don't know who they are officially, but I know you have ideas of who them may be.

What would I have to do to even have my resume selected?

What would a typical interview process look like, and what would I have to demonstrate to get through it?

Let's say I passed those stages. Would my salary be much different than another company? What would I have to do, to maximize my salary?
posted by TheOtherSide to Work & Money (7 answers total) 6 users marked this as a favorite
I know a number of 'top' tech companies are actually kind of stingy with salary.
posted by rmd1023 at 7:22 AM on February 15, 2011

By 'top' do you mean large or well-respected, or most exclusive, or what?

Getting a job in, for example, the Office division of Microsoft, would be a much different experience than trying to get a research position at Siemens.
posted by demiurge at 7:30 AM on February 15, 2011

I know a number of 'top' tech companies are actually kind of stingy with salary.

This matches my understanding as well; generally speaking popular tech companies are going to pay a little less in salary because of the cachet of working there, or because they offer stock that they think will do better than average, or because they get a lot of resumes and can't actually afford to make everyone a great offer.

If your question is really "how do I get a tech job that pays a high salary?" the answer is to get a job at a hedge fund or some other job that involves a lot of money going through the hands of a few people, because then there will be extra to pay you.

If your question is "how do I get a tech job that makes me a lot of money?" then the answer is to join a bunch of startups early on and hope to get lucky.

If your question is "how do I get a job at google or amazon or facebook?" then you just apply. If you are used to easy interviews you will probably find the interview process longer and more exhausting than you are used to, but it's not crazy, it's just an all-day kind of thing. Expect to get questions about more CS-y things like big-O notation and algorithms in general, and expect to get given some stuff you don't know how to cope with and have to figure out how to cope with on the fly.
posted by inkyz at 8:00 AM on February 15, 2011

Expect to be able to, for instance, fully code strlen().
posted by rmd1023 at 8:10 AM on February 15, 2011

When I am interviewing a candidate, I look for tech skills specific to the job and a job history that demonstrates an ability and willingness to learn new things as time goes on. Understand that before I ever see a resume though, it's already been pre-screened by HR on a purely keyword basis. If I say I've got a current opening for a C/C++ developer with 8+ years experience, and your resume only has 8+ years of Perl, I won't see it at all.

The best way to get into the tech industry is as an intern, fresh and ready to be molded. When I hire an intern, I don't have the same expectations of pre-knowledge, but I do have higher expectations of trainability. Most of the people I know who worked for MS came to them via this route.

The second best way is via support. For someone without formal training, it can be much easier to get a job doing the lower tiers of tech support, and then grow your knowledge and technical expertise over time.
posted by nomisxid at 8:18 AM on February 15, 2011

What would I have to do to even have my resume selected?

a. Write a good one, submit it or post it on LinkedIn and wait.
b. Have someone on the inside put your resume in the system. At Google, for example, this seems to guarantee that you will at least get your resume looked at and responded to in a timely fashion. It doesn't guarantee anything else.
c. At some companies, you can get the attention of recruiters by doing coding puzzles. For example.

What would a typical interview process look like,

Sometimes there's an initial phone screen with a recruiter, who basically verifies that you are a breathing speaking human being. 15 min max, usually no technical questions.

Then there's a technical phone screen, where an engineer talks to you about your background and asks you technical questions. "Describe an algorithm to do foo." You describe it. Then you may have to write out the code for foo in a Google Doc while the engineer watches you. ~45 min.

If you pass the phone screen, you may have to pass another if you don't live near the company you are courting. If you live close enough that they won't be paying to fly out, you may then move straight to the onsite.

The onsite interview lasts 1/2-1 day and typically consists of a series of 4-6 45 min one-on-one interviews with practicing engineers. You talk for a bit about your experience and what they do. Then they ask you how to solve such-and-such problem. Sometimes pseudocode is sufficient; sometimes syntactically correct code in the language of your choice is required. (I've never had an interview where I've been told to write in a particular language, but it's good to know multiple languages as some problems are much easier to solve in some languages than others. Know Python.)

and what would I have to demonstrate to get through it?

Solid CS fundamentals. You need to know your algorithms and your data structures, and when to deploy them. You need to be able to realize on the fly that the contrived problem he put on the board really just requires DFS.


1. Read this, get out your CS textbooks, and look up any of the essential concepts that he mentions that you forgot about or that you maybe didn't understand the first time.
2. Do the practice problems in here.
3. And maybe those in here, too.
4. Have a friend in the industry give you a mock interview.
5. Get some company to interview and see you fare under fire.


Oh, every once in awhile you may get an OO design interview rather than an algorithmic interview. In these you draw diagrams of class hierarchies on the board.

Would my salary be much different than another company?

Salary information and real-life interview questions for various companies, large and small, can be found at Glassdoor. I'll echo the statements of others that "top company" does not imply "higher salary", from what I've heard.

What would I have to do, to maximize my salary?

Be good. Stand out from all the other standouts.
posted by epugachev at 9:57 AM on February 15, 2011 [1 favorite]

One more thing: Like inkyz said, know your big-O. Quite often, after you finish coding (or pseudocoding) the answer to that problem, the interviewer's very first followup question is "What's the time complexity of your solution?"
posted by epugachev at 10:12 AM on February 15, 2011

« Older What kind of tool(s) should I use to cut this thin...   |   Make it Pretty Newer »
This thread is closed to new comments.