Every interview process is different and often it is difficult to imagine what one can expect, especially if you are a beginner or generally don't go through interviews very often. I decided to share my experiences with technical interviews.
All of the interviews except the first one happened in Finland.
A talk over a cup of coffee.
I told a few things I was doing in uni and got a part-time job without a contract. Shortest and easiest interview, the worst job which drove me out of the industry for years.
Whiteboard interview.
This one was for a summer internship at a university. I was asked about a few simple algorithms and I had to come up with some data structure for the base of the future project (building animations in javascript).
Paper programming.
It is almost like a whiteboard interview but messier. I was asked to write a function to calculate Fibonacci numbers and that was it for this part.
Home tasks.
I was going to be a graduate with little experience and a desperate need for a job, so I gladly took every opportunity to show I have some skills. I got my first full-time dev contract this way.
The best thing is when you get good feedback on your work. The worst is when the feedback is simply "you are too junior" or "your code quality is below our standards". Or even simple "sorry, but we decided not to continue with the process". I understand it might be taking some time to write feedback, but so does the homework (and a lot more).
Technical discussions.
Usually, all technical interviews have this in one way or another but sometimes it is just that and nothing else. No tasks and problem solving questions.
This type, if you are a junior, can be a bit stressful. I was bombarded with all kinds of questions from different areas, to probe my knowledge. It is easy to lose confidence in yourself when you answer "I don't know" too many times. It is nicer when you actually know some things well and have at least heard about many other things.
One, recent, was a bit weird. Most of the time I was listening about their system and asking questions about it. No one tried to specifically test my knowledge of anything.
Code challenges / pair programming.
This is the most challenging but also the most fun, in my opinion. I had this type of tech interview twice, but in the same company. I had to write code in a shared environment with some scaffolding for the task and tests needed to be passed while thinking out loud and asking questions if necessary. Tip: it is much better to bring your own laptop to avoid additional stress because of unfamiliar layout/OS.
I failed the first one because of little experience with modern javascript and also because I was very nervous and uncomfortable with this format. Thinking out loud is tough if your head is full of doubts of yourself and you have no idea where the curly braces are hiding.
The second one went a lot better even if the tasks I was given were a bit harder. I knew what to expect and did not feel like I must be perfect on every step of solving the problem. Console-logging is okay.
Showing your own code.
I asked for some advice about this in a recent post. For some reason, I expected scrutiny and going through most of the project (at least structure and tech stack) but ended up showing one component and one test suit, and one part of the backend. It was nice because I could show my latest code which was better than the rest of the app. :D
Doing a code review.
This one was the most fun and my favorite so far! I was left alone with some really bad javascript code for 10 minutes. After that, I told everything I thought was wrong with it.
I think this is a lot better than a "code on demand with somebody over your shoulder" way of testing a potential candidate. Also, less stressful because of the perceived role switch: now you are the one who evaluates somebody else.
What about you?
Which are your most and least favorite tech interviews of those you had?