How can engineers ensure they're competitive when applying for selective companies? originally appeared on Quora - the knowledge sharing network where compelling questions are answered by people with unique insights.
You need to excel in two areas to have a good chance of success when applying to selective companies: Technical Proficiency and Culture Fit. A few tips on how to do well in those:
Practice technical interview questions heavily, using either a whiteboard or notebook. Fullstack students do this every morning during the second half of the immersive portion, and I can't overemphasize how often we've heard back from graduates that they aced their technical job interviews because they felt so comfortable in whiteboarding sessions. If you're aiming for a very selective engineering job (e.g. Facebook, Google, Amazon, etc), then you'll probably want to dedicate a few weeks (or more) just to fine-tuning your technical interview skills. Don't get caught up in the argument that whiteboard interviews aren't effective or are wasting people's time; lots of companies still do them and it really is something you have to practice separately from just coding.
Have impressive programming related projects (either personal or professional) that you can speak intelligently about. Talk about an interesting technical challenge you encountered and how you solved it. Bonus points if you can relate it back to a challenge you think the hiring company might be facing.
Research the specific company and what types of questions they focus on. Some companies exclusively grill candidates on algorithms, others focus on system design, while another might give you a broad range. While you should be trying to learn all the main areas (see CTCI book), if you're able to find a specific area they commonly focus on, that can help for final prep.
(Maybe) - Build a project specifically for the interview. This one is a little out there and takes a fair amount of extra work, but will really impress if done well. Take a look at the company's product (or one of their products), and try to think about how it can be improved. Additional feature? New product altogether? Then, build that idea yourself (ideally using the tech stack the company has or their specific API). Now you've demonstrated to the company that you're a skilled programmer, that you're very interested in them, and you've thought about their product. Even if this fails, you have a new project for your portfolio, and will have learned something new.
Soft skills are a hard topic "study for". My best advice here is to get practice talking to people in the industry in a low-pressure environment, like meetup events focussed on technical areas (e.g. AngularJS meetup). That has a bonus of potentially meeting people in the industry and getting referred to jobs.
Do a lot of research on the company before the interview. Mission, Tech Stack, challenges you think they're facing, company culture, your interviewers' backgrounds, recent news, competitors, products, etc. With all that information, you should be able to clearly articulate why you want to work there. You should have a very well thought out and compelling answer to "Why do you want to work here?". This will impress the interviewer in two ways because it shows 1) You have a real reason why you want the job, it's not just for the money 2) You're a diligent, hard-working person. Emphasis on show, because it's easy for anyone to say they want a job and they're hard-working. This actually demonstrates it.
Companies aren't bringing people in to interviews to waste your time or make themselves feel superior to you, if you get an on-site (or even a phone screen) then they want to hire you, give them a few good reasons why and avoid areas where you might be a risk.
This question originally appeared on Quora. - the knowledge sharing network where compelling questions are answered by people with unique insights. You can follow Quora on Twitter, Facebook, and Google+.