How To Prepare For a Technical Interview
On the 19th of June 2020, Anthony D. Mays a technical coach and founder at Morgan Latimerco came on Facebook Developer Circles Benin live session and talked about How to prepare for a technical interview. During the live session, he said that “Helping people to digest what you learn from me today and sharing with your network is a good thing”. When you learn a particular thing from someone, it is a good thing to pass the knowledge out there and if you look at it closely, it's a good way of learning. So, I decided to put into writing what was discussed during the live session alongside my own personal experience. At the end of this article you will become familiar with the following:
- Things you need to do to get the attention of top companies
- What happens when you have the attention
- The type of interview you will likely be faced with
- Framework for problem-solving (6 steps to use in a technical Interview)
In 2018, My friend and I had this big dream of interning at big tech companies and It was pretty cool to have such big dreams but the question here was “am I prepared for the task ahead of me?” I remember joining LinkedIn for the first time and I didn't even know how to find my way around it and I kept sending messages to different recruiters at big tech companies to refer me for a role that I didn't even have the kind of experience they were looking for. Do you know the funny thing? A lot of people make this same mistake. Before trying to get the attention of big tech companies you need to at least have the following:
- Have a wide range of experience
- Be seen as someone innovative, you can show this in several ways either by building something and publishing, maybe by starting your own company or working with a startup.
- One way you can show you are a problem solver is being able to discuss your impact.
After having all these qualifications, how do I get the attention of top tech companies?
Have an awesome resume - Some people may be smart but their resume is horrible. My first resume was horrible, each time I reflect, I start laughing. I sought ways to improve my resume by doing research, reaching out to some people on LinkedIn to help review my resume and I even get to change my resume up to twice a day. I wouldn't say I am the best at writing a resume but right now if I compare my before and after, I have improved. When writing your resume, use a lot of numbers, how many bugs did you fix, how much did you raise, is the project on Github, what impact was made, etc. Please note: Your resume includes your Linkedin profile, make your LinkedIn profile look like your resume because when you have an amazing profile you can get contacted through Linkedin. If you don't have a Linkedin profile, you should open one here and start building your profile.
Getting Referrals: Your referral should be someone who knows you and he is familiar with your work. If you don't know anyone, you can start building a relationship with these people. Please note: A referral doesn't get you the job but helps you get to cut the line so you get contacted.
What happens when you get the attention?
Getting the attention of the company allows you to get to talk to the recruiter about your background and if the position might be a great fit for you and If it is a great fit then you will go through several interview processes and below is an example of some technical interviews you might come across.
- Phone screen: You may be contacted by an engineer to do a phone screen where you work through a technical question. For a phone screen? you’d have to prepare well enough for it, you could have one or two phone screen interviews and if passed well, you will be invited for an onsite or virtual interview depending on the company.
- Onsite/Virtual Interview: If you’re applying for a software development position, you’ve got a special set of skills to prepare. Yes, you’ll be asked to code. No, you don’t get a computer, just a whiteboard. Whiteboard and interviewing coding requires a special set of skills. Even the best coders can get nailed on coding questions. In a whiteboard interview, you might have to go through four or five onsite or virtual Interviews with different engineers. The reason for different interviews is because the company wants to see how you work with different engineers who are very likely working on different kinds of problems and to see if you are well-rounded. If you do well in all interviews, that is good but if you do great in some and not too good in another, then this is a confusing signal to those looking at your performance. Try as much as possible to do well as you can in all. This process is the same as a virtual interview. The only difference here is, instead of a whiteboard, you will be asked to share your screen while they watch your code.
- Knowledge-based interview: This is where your knowledge is being tested and you are asked things like how the framework you're using works, why make use of if-else statements, etc.
- Behavioral Interview: Smaller tech companies are kind of different but one similar thing is the behavioral interview and this is more like knowing how you solved a problem in a particular situation, how you work under pressure, etc. It is also good to know your resume well so you will be able to talk about the details on it.
- Project-based interview: You will be given a project to work on and you're to return it in hours or even days it depends on the company.
Framework for problem-solving
Software companies are looking for good problem solvers and the question is: Who is a problem solver?
- They ask questions
- They know how to think up multiple solutions.
6 steps to use in a technical interview:
- Repeat the question out loud
- Follow up by asking questions to help understand the problem
- Use an example to know what the input looks like, you can draw it.
- Brainstorm, stop and think about one or two ways you can solve the problem. This is where Big O comes into play.
- Implement the technical solution
- Test to be sure no errors in your code.
These steps can also be applied to your day to day work and also, doing a mock interview with another engineer is a good way to prepare for an interview.
Success requires a lot of hard work and time, if you have been wondering how to get started with your tech career then what you've just read is enough to get you started.
You can follow my blog here
Great tips worth following.
There’s one thing I’d like to add. First I’ll start with a disclaimer: I interview many candidates, and I also hear this from many other interviewers, but all companies are different and I don’t have any data to back how widespread my point is. But even if it’s not an official criteria for your target company, it’ll always help ;)
The more senior the position, the more important communication skills become. It’s always important, even for interns or beginners. But as we climb the ladder, we have to share our analysis, our recommendations more and more often, and/or they become more and more complex and therefore we need to make them easy to digest.
So the recommendation I’d like to add to this list is this: Make sure you are articulate, you express yourself clearly and demonstrate you are thoughtful, able to explain complex things clearly. And it’s a skill which requires practices. Some are more gifted than others, but we all have to train. Some talk too much without transmitting a lot of information, or with many breaks in their train of thought. Some don’t talk enough and the interviewers will wonder if the candidate will cause communication challenges if they join the team.
In all the tasks presented in the list, try to keep this in mind. Truth be told, when I interview candidates, the pure skills give fewer points than the potential for growth and their articulated communication skills. Potential for growth can be demonstrated by curiosity, past initiatives to learn/try things, and anything that proves they haven’t yet reached a plateau. And the analytical communication skills is usually obvious when you ask them to present a past project/task/challenge and during any problem solving or system design task... as I wrote, communication is involved in pretty much all the tasks we’ll have to perform in our day to day job.
I wrote a lot for a single point, because I believe this one is truly very important at any seniority level. Thanks again for this great list (I wished I had such things decades ago when I started ;) and I hope my small addition will be helpful.