I have decided to write this blog post because recently I have moved jobs and went through the process of interviewing for different companies, so I want to take advantage of the current knowledge and go through the main observations I have done during my process, and hope that can be useful for others.
Technical interviews can be very challenging, and we must be prepared to face them in the best way possible.
The process of interviews can be different depending on the position you are applying and the company culture, but generally, it will be composed of the following phases.
The recruiter will contact you to have a quick chat and know more about you and your application, questions about your experience may be asked and also they will verify if you have the right to work in the UK (visa status).
If they are happy about your skills and experience, they will send your CV
through the technical person that will review your skills and experience, and if they are satisfied with your CV, a phone interview will be scheduling.
Generally, you will be contacted for a 30 to 45 minutes interview with an engineer or engineer manager that will ask you technical questions around your programming language and experiences, more on that bellow.
You may be given a coding test, it generally around the area which you will be working, like front end or backend.
From my experience, you usually will have lots of freedom on how to approach the problem but keep in mind that you may have a set of rules that are not flexible so I will advise you to read well your test instructions and ask questions about it if you have any.
Face to face interview.
Here is where I have seen lots of variations for the process, but in general it would be composed of a technical interview and competency-based questions interview, the order may vary so be ready to it.
The technical interview is where I have noticed different approaches depending on the seniority of the position and the company culture.
On my experiences, I have done lots of pair programming sessions, generally with a TDD ( Test Driven Development ) approach.
I also have done some whiteboard exercises, so please remember to be calm and asks lots of questions.
I would advise that on the technical interview, the interviewer is trying to understand how you solve problems, how your thinking process is and how do you handle the pressure.
Having excellent communication with the interviewer is critical to be successful, so keep in mind to engage and talk out and loud your solutions.
Remember also to show confidence in your solutions, be firm, and you will be all right but please do your homework and study for this because it can be very stressful and is crucial to be calm.
Two interviewers generally hold the competency-based interview, and the approaches may vary.
Here they will be asking specific questions about your experience, programming language questions, cultural questions and they may ask you some design questions so be ready to draw a diagram.
There are many ways to prepare for technical interviews, and I will be suggesting what did work for me.
Let’s start with the base, making sure we do cover our primary programming language skills, go through the foundations do your homework and make sure you include it.
Data Structure and Algorithm are a big part of technical interviews so I would advise you to cover it as much as you can, some useful websites to test your data structure and algorithm skills are Hackerrank, CodeWars and CoderByte.
If you are looking to joining big organisations such as Google, Facebook, Microsoft, Amazon and others, I would advise you to buy a small whiteboard and practice on it because it feels a bit weird to write code like that, but it would be helpful to you I promise you.
I would recommend you to buy the Cracking the Coding Interview with Author Gayle Laakmann McDowell
The book is incredible, and it will help you to land your dream job.
This interview example is handy, and it will help you to have a better understanding of how is a whiteboard interview.
I will not be touching much here, but I found this handy material made by Patrick Shyu (Ex-Google Tech Lead) - @techlead at twitter
You can access it clicking here.
Plan for interviews, take some time off and do your homework, schedule as many interviews as you can for the same week and go for it.
Remember that the experience of the interviews will provide you with lots of learning, and there is no better way to improve on it than going to many interviews as possible.
Keep your most desired companies for last as you can fail and learn from it many times before land your dream job, so take the learnings of other interviews and go for it.
Remember that it is ok to fail, I have failed interviews, and I am sure many of my colleagues failed interviews before.
I hope you have enjoyed this post and please let me know if you have any feedback.