The tech interview can be a daunting experience. It’s probably the least fun part about being an engineer.
The tech interview can be a daunting experience. It’s probably the least fun part about being an engineer. Nobody likes to have someone staring over their shoulder while they code and interviewing is definitely not the exception to that rule. But if you can ace the technical interview, you’ll be able to get more offers, command a higher paying job, and have more flexibility.
And with the right preparation, you can pass the technical interview! In this post, I’ll share tips on how to prepare for a technical interview and boost your chances of landing the job.
For better or worse, the interview process is very different from company to company. There’s no set standard for how to give a technical interview. Companies are figuring it out as they go along!
Sometimes a lot of luck is involved in the interview process for landing a job as a software developer. At one company, you might be expected to invert a binary tree. At another, you might be given a quick coding take-home with concepts you already know.
But if you don’t start interviewing, you won’t know how prepared you really are to pass the coding interview. Try to aim for one or two interviews each month even before you’re ready.
Interviewing can be scary on your own. The interview process can be demoralizing, and exhausting. Find a friend who is on the same path as you and be accountable to each other in the process.
In my course, we have a Discord channel where engineers post standup updates on what they’re working on today to move their job search along.
Research the company for at least 15-20 minutes before your interview. Find their mission statement, try out the product, look at their past successes, find out what tech stack they use. Did you find a bug when you used their product? Or do you think a certain feature could be implemented to improve their app? Mention that in the interview!
All of these things will help you to be prepared when the company asks questions such as “Why do you want to work here?”
So many times we think that a company is only assessing our technical skills but they’re assessing so much more than that. And that takes me to my next point.
Your interviewer isn’t singularly focused on your coding skills. I’ve seen candidates that did incredible on the technical side but failed the communication side end up not landing the job. While I’ve seen candidates that didn’t do as well on the technical side land the job because they were excited about the company and had great answers as to why they wanted to work there.
Interviewers are looking for a number of things.
Working as an engineer requires a lot of problem solving all the time. Your interviewer will want to check that you’re able to confidently work through a problem.
Can you do what you say you can do? I’ve interviewed candidates before that were unable to write a simple function in the language they said they were an expert in.
Whether it’s a coding take-home challenge, or an onsite interview, the company wants to verify that you’ll be able to do the work you say you can. Unless it’s at Facebook, of course, and in that case, they want you to be able to invert a binary tree for your job as a frontend developer creating banners.
If you interrupt your interviewer, you’re rude or you ask your interviewer on a date (that actually happened to me once!), you most likely won’t get the job even if you do well on the technical portion.
We often prepare for the technical interview but forget the job requires working on a team. Here’s a great article with a list of culture fit questions.
If you want to pass the coding interview, practice answering common culture fit questions and ask friends to give you feedback. And don’t ask your interviewer out to dinner as a bonus.
If you feel yourself getting stuck during the coding interview, ask for help. Remember that your interviewer is a person and they want you to succeed.
Ask if you can Google before you get started as well. Everyone Googles! And if they say they don’t, they’re lying!
And remember to listen attentively. Once I was interviewing someone and they were stuck. I saw the issue in the code and kept mentioning what they should look at and why it was an issue. They completely ignored what I was saying and they were unable to get to a working solution
It’s never a bad time to brush up on the fundamentals. Some companies now will have a friendly interviewing process that is more similar to what you’d be doing on the job and that will require less preparation time. However, knowing the basic concepts in your chosen language and framework is always required.
Study common interview questions and practice answering them. Often, applicants get nervous and forget the answers to basic questions. It’s super common. Spending more time feeling confident with the basics will help you ace the interview.
Quick hack if you don’t want to spend too much time preparing? Ask for an overview of the interview process in the first recruiter call or over email. If the companies process would require a herculean amount of studying to pass the technical interview? Skip it! Pass on that company and move on. Generally, if we spend weeks on one companies interview process, that is all time we could be spending on several interview processes instead.
If your interview is remote, make sure your microphone and camera are ready to go. Put your phone on do not disturb and make sure you don’t have any loud background noise. Put a sign on your door if you must!
If your interview is onsite, be on time for the interview, and dress appropriately. Bring your laptop (it’s always more comfortable to work on a laptop that you’re comfortable with) and bring a notepad and pen to take notes with during the interview. Again, make sure your cell phone is switched off.
I once had a very exciting engineering interview as a junior developer and I was so nervous that I left an hour ahead of time. Yet, I hit a huge amount of bay area traffic so I was only a half hour early. And once I arrived? Nobody had given me directions or told me what building to go to so I actually had the perfect amount of time to walk through the campus and figure out where I was supposed to go!
Much like going to the airport early, you’ll never regret being a few minutes early. You’ll feel less stressed as well!
Listen attentively and don’t interrupt your interviewer. Spend a few minutes at first getting to know your interviewer. Ask them about a project they’re working on at the company, why they’re passionate about their company, or how long they’ve been at the company.
Remember that your interviewer is a person as well. If you feel nervous and uncomfortable? Chances are, they do as well. They are not trying to trick you (if they are, that’s a red flag!) and they want you to succeed. Trust me, interviewing a candidate is tiring and expensive for companies as well so they want to find that perfect fit quickly.
Thank the interviewer for their time at the end of the interview. Email a follow up thank you note if you can.
And remember to stay engaged. What do I mean by that?
Never forget that a company isn’t just interviewing you – you’re interviewing them! This might be your place of employment for the next year or several years so you want to make sure you find a great fit.
As a bonus, asking a company a bunch of thoughtful questions shows them that you’ve done your research and you’re excited about that particular company.
Which scenario sounds better?
At the end of your interview, the hiring manager has left fifteen minutes at the end of the interview for questions. They ask “Do you have any questions for us?” And you respond “Nah, I don’t really have any questions.”
Or scenario two:
“Great. Now do you have any questions for us?” And you reply “I do actually! Do engineers pair pretty regularly on the team?” And the hiring manager responds enthusiastically about their mentorship program, the companies best practices for pairing, and how teammates support each other at work.
Which candidate do you think is more serious about the job?
Not sure about questions you should be asking? Here’s an article I wrote about questions to ask your interviewer. You can find a list of questions at the bottom.
And a last parting note…
Interviewing can have a lot of luck involved. Often, we fail one interview and think we should spend months preparing for the next one but that’s not true.
Be confident in your abilities and keep interviewing. Just because one job isn’t a fit doesn’t mean the next one won’t be! Interviews vary from company to company so while you might not be ready to spend six months preparing for an interview with Google, that small startup down the street is ready to hire you today (with a much friendlier interview process).
Are you looking to ace your next technical interview? Check out my Hack the Technical Interview course, which helps developers pass the technical interview. Sign up for the launch in fall and get an early access coupon!
It’s always best to write some pseudocode first in a coding interview so you can collect your thoughts and see if your potenti
Let's tackle a new coding challenge today - finding the missing number in a sequence.