How would you get a job at one of the top tech companies today?
It pays to be at the top of the tech world. Engineers at Google, Facebook, and Apple make 2-3X the salary of an engineer at an average company for the same or fewer hours worked. Granted, you might be limited to a specific geographic area, but the benefits are still enormous.
So how would you get a job at one of these places today? What are my credentials for answering this question?
I made it through the Google wringer as an engineer once. Then I tried to switch roles, screwed it up, and got rejected. I currently work for a large company with a similar hiring process to Google.
So what does it take? How should you prepare?
1) Give yourself 3-6 months, and any number of ~10 companies.
First, give yourself a decent chunk of time to get this done. Make a goal to get hired at a top tech company within the next 3-6 months, and vow to do a ton of work on your interviewing skills in the meantime.
If you’re particularly bad at interview style problems, you might need a full year to get into the big leagues.
Most importantly, don’t limit yourself to a single company. Remember that most of the top companies are basically the same. Whether you work for Facebook, Apple, or Google the benefits and the prestige are similar. They have to be because they’re all competing for the same talent.
The engineers at these companies might argue differently, but for an outsider currently at a mid-tier company or for a student fresh out of school, they’re all the same. It’d be a great opportunity to get a job at any of the major companies.
So don’t shoot yourself in the foot and make your goal to get a job only at Google or Facebook or whatever. The interview process is highly variable, and the companies throw out a bunch of false negatives. You might have a bad day or you might wind up with an interviewer who hates you, and you’re likely to be disappointed if you have such a limited view.
2) Interviewing Skills
This is going to be your ticket into the companies. You need to be prepared to complete basic, programming competition style questions in a live setting in front of a whiteboard with an interviewer.
Personally, this has always been challenging for me. When I got my job at Google, I sat in my apartment all summer re-reading my algorithms book and working problems. It took me 3 months of hard work to get to a passable state in the interviewing game.
A lot of the people I’ve worked with could pass without any effort. They just knew how to solve these problems, and they didn’t seem to have many of the mental blocks I did when it came to this subject.
Such is life.
Anyway, the good news is that this skill can be learned. You just have to be willing to sit there solving problems for long periods of time, and you’ll slowly see yourself improve. You’ll still get interview questions that completely screw you up, but on a good day, with a little luck, you’ll have an interview loop where you do quite well.
What sorts of problems should you work?
I would highly recommend Gayle Mcdowell’s book: Cracking the Coding Interview. It helped me immensely, and she covers everything you need to know.
Ironically when I was working through that book the first time, I skipped the section on recursion and dynamic programming. I then proceeded to get nailed by that topic in an interview a few days later.
If you need help with runtime analysis, crack open your old algorithms book. You’ll be able to pick up the basics of “big O notation” in a few days.
I also started a side project to help myself stay sharp with interviews. Check it out if you want. I send out coding problems and their solutions a few days a week. I wouldn’t recommend relying completely on it if you’re in an interview prepping crunch, but it could be a nice supplement.
3) Self Image Work
Never estimate how much your self image matters when completing tasks. Check it out: students told stereotypes about their gender or race before standardized tests fare worse than those told nothing. Even reminding someone of what their self image is ‘supposed’ to be is enough to screw up someone’s test taking ability.
Now imagine how powerful your own inner voice is in shaping your performance. What if you have a particularly harsh, inner critic that won’t leave you alone when you’re in stressful situations, or ones where you’ve failed in the past?
What if you feel like you’re not good enough to work at a place like Apple, Facebook, Google, etc.
Believe me, I know. I felt that way all during college, having only started programming when I started school. I was competing with programmers who had been writing code since they were 12 and 13 years old, or even younger. Needless to say, it was intimidating, and I had a massive case of imposter’s syndrome for a long time.
So what can we do about these problems? Unfortunately, the science for self-image work is finicky. Some studies say it works, others claim it’s all a bunch of crap.
So like anything, my suggestion would be to try some of this stuff out, see what works for you, and drop it if it doesn’t seem to make any difference.
My biggest recommendation would be to pick up a copy of With Winning in Mind by Lanny Bassham.
Lanny was a shooter in the olympics, one of the most mentally challenging sports out there. He eventually went on to win several gold medals, and he describes in detail the mental program he used to get there.
Essentially, it boils down to building your self-image using affirmations and visualization. If you believe in that stuff, then go for it. Otherwise, you should pass.
Personally, I’ve used his techniques to go after several goals, and it worked for me to great effect. Writing out a directive affirmation and reciting it is time consuming, but ultimately worth it.
Considering that you’re probably going to double or triple your salary by getting into a top tier company, efforts like these are well worth your time and energy.
Any other suggestions for getting through these interviews?
Photo Credit: Martin Deutsch