Looking back, I have no idea how I passed my first interview. I remember I did alright but definitely failed one or two portions of it. I also did it completely over Skype which made the whole process way more painful. Definitely not a performance I can look back on and be proud of but it did land me my first internship.
Back then, I had no idea what companies were looking for. I thought that finishing most of a problem would be enough. Or showing that I somewhat understood what the solution might be might get me through. I thought that was all I needed for a company to give me a chance. I was naive. Companies are taking a huge risk whenever they hire a new employee. You need to make sure that the company you are interviewing for will be excited to have you onboard. If you’ve achieved that, then you’ve nailed the interview.
Looking back, I have no idea how I passed my first interview.
First things first, highlight your strengths. What makes you a strong candidate? What will set you apart? I knew my background in teaching gave me a unique perspective and skill set. Regularly presenting in front of a lot of people allowed me to bring something extra to the table. And I’d much rather speak in front of an unimpressed software engineer over a group of pissed off teenagers any day. I made sure to take advantage of this skill during the interview. It especially became useful when chatting with the CEO of the small company I was interviewing for.
You may find that you are stretching your resume to meet the requirements of a job. If you find yourself in this situation, then consider doing some open source work or applying for an internship. Both of these experiences will give you the valuable opportunity to contributed to a larger codebase. It also shows that you can collaborate with other people in a codebase. This is a skill most companies look for when hiring since it is vital for thriving in most modern tech companies.
The second thing I would recommend is reading up on the company that you are applying for. What would a hiring committee for that company look for in a good candidate? Maybe some companies want a candidate that writes a lot of code quickly. They may want a quick learner that they can put on a project right away. Other companies may want a deep thinker that can plan out architecture and write comprehensive tests for code in production. It all depends on the kinds of projects that the company is working on. Sending a rocket to Mars requires much different code and processes than sending a tweet. Sometimes employees and ex-employees at companies will list projects that they’ve been apart of on their LinkedIn. This can give you a better idea of what kind of skills and the type of employee the company values.
You can also ask someone directly involved in the hiring process about the current projects the company is working on. Don’t be afraid to ask questions about the company and the interview process itself. This is a two way street, and companies want to take on people that are excited to work for them. This can also lead to some insights on how the interview process will be structured. In general, I tend to ask if the interview will be more algorithms and data structures based or more domain knowledge based (in my case I ask if I can expect mostly questions around iOS).
The last thing I recommend, is to practice. It sounds lame, but practicing with a friend in person does wonders for getting used to the interview environment. At first it might feel strange, but try to take it seriously. And always put on a timer for each question. You will have a limited amount of time to solve a problem during an interview, so getting used to tracking time is a good habit to get into. After you get the hang of solving questions on a computer, move on to a whiteboard. A lot of tech companies still force the use of whiteboards during interviews so having some practice with them can be helpful.
Once you’re ready, go in with confidence. You can breath easy knowing that you’ve prepped and put some effort into getting ready. If you fail, no biggie. There are a ton of companies out there looking for candidates. You will have gained some knowledge on that particular company’s interview process. You will have also hopefully taken something away from the interview that you can go home and improve on. I’ve failed over 30 interviews in the past 4 years. We all fail. But as long as we’re picking ourselves up again and learning something from our failure, then we can treat each failure as a little badge of honor.