How to Prepare for Technical Interviews
Once you start applying for developer jobs, you need to start preparing for technical interviews. This is the most difficult type of interview and the one that people get the most nervous about.
What are technical interviews like? Well, every company does them a little differently: some will make you pair program with other people on the team, some will make you solve problems on a whiteboard, and some will drill you with deep technical questions. You also might get some combination of these three.
When you make it to the technical interview, the company should let you know the details about what they are going to ask you to do. If they don't for whatever reason, be sure to ask or email them for clarification.
Preparation Steps
Your preparation steps should include algorithm challenges, pair programming, and learning about the latest updates of the technologies that you use.
#1 - Algorithms
To prepare for algorightm challenges, I recommend using HackerRank, Project Euler, freeCodeCamp, and Coderbyte. Try all of these platforms and pick one or two to use for your training. The challenges start off from the very basics and get increasingly more difficult. You should plan to spend a few hours every week just working on these types of challenges to get your chops ready. When you feel comfortable doing the basic algorithm challenges on these sites, I also recommend that you take a look at Khan Academy’s course on algorithms under their Computer Science curriculum. This will help you understand the best approaches for solving these problems.
At your level, you should expect to be given beginner or intermediate challenges in a technical interview. If they throw something advanced at you, they are probably not expecting you to be able to solve it, but rather seeing how you think. You should research the company’s tech stack enough to be able to talk about it in the interview. When it comes to solving challenges, however, many companies will let you solve challenges in the language you know best, not just the ones they use.
If they are asking you to whiteboard a solution, then you will be expected to write out your steps and talk them through it as you go along. It is difficult to write code with a marker, instead of a keyboard, not to mention explaining everything you are doing along the way. Some companies have told me that they don’t care if you answer the problem fully, they just want to see your thought process, so that is what you should practice for. If you are a beginner, I recommend starting with doing some research on whiteboarding interview examples on YouTube and your regular search engine.
If you have worked as a software professional in some capacity already, then I highly recommend that you read, Cracking the Coding Interview by Gayle McDowell to prepare for the interview. This book really breaks down how to think about the different types of technical interview challenges for software developers. I do think it's too advanced for most people looking for their first jobs, but it can't hurt to check it out anyway; just don't feel bad if the content is beyond your level right now.
#2 - Pair Programming
Pair programming interviews are getting increasingly more common. They are in many ways a more accurate measure of what you can do as a candidate because they are seeing you code live in your regular development environment. The best ways to prepare for these are to practice the algorithm challenges I mentioned earlier and practice pair programming with a partner as much as you can. Again, they are not just looking for correct solutions in these interviews; they want to see how you solve problems on the fly and how you work with other people.
#3 - Current Knowledge
Interviewers will expect you to be up to date with news and information about the tech stack you are working in. You should know about the current versions, features, and related news. If there is a really big development that has to do with your tech stack, and it's been talked about for a while, it might make you look bad if you haven't heard of it. On the other hand, it's very impressive if you, as a new developer, know all about what's current and how new changes could potentially affect your work.
Make sure you are following influencers, listening to podcasts, watching conference talks, and attending meetups from time to time to stay up to date with current events.
#4 - Q&A
In most interviews you will need to have a list of questions, prepared in advance, to ask the interviewer. Of course, in technical interviews, the questions should focus on technical topics.
Here is my go to list of questions to ask Technical Interviewers:
▪ How do you manage your projects?
▪ Do you work in sprints? What does a sprint look like? What sprint ceremonies do you perform?
▪ What does the development process look like?
▪ How long do developers normally stay at your company? Why do(n’t) they stay?
▪ How does the team get along? If I asked any of the team members, would they have concerns about the cohesiveness of the team?
▪ When there is a problem, how is it addressed?
▪ What is the work-life balance like? How many hours do employees usually work? Overtime?
▪ Are there opportunities for me to be mentored and learn from senior developers? (Especially important if this is your first developer role.)
▪ What kinds of ongoing training opportunities do you provide?
▪ Can I speak privately with at least one developer on the team?
▪ Ask them some questions related to their tech stack based off of the research that you have done.
Conclusion
Technical interviews are challenging and stressful. With some preparation, you should be able to anticipate 95% of anything they will throw at you and be much more confident.
Subscribe to my newsletter in the box below if you want to get weekly updates about any new content I release.
Have a great week!