Hey, all.
I hope the job hunt is going well. If you are in your first role I pray it is everything you wished for!
It would really help and be appreciated if you could share this article on your socials if you feel it brought you some value.
Today, we are covering interview questions!
I am going to focus on one specific question, which often catches junior and senior engineers out. Over the years doing many interviews it is the ONE question that came up in every single one I have taken and I am going to teach you how to give a perfect answer.
Just before that, though.
Let’s cover three types of interviews you will face in your career from a junior to beyond and I am going to give you a few actionable tips on each to give you the best chances of success!
Hey, just a quick update. My CV course for aspiring and junior engineers is almost complete. I am recording the last few sections before I edit and upload. I appreciate your patience!
Pair programming
My first experience with pair programming for a technical interview was with a very popular car manufacturer. It involved writing a few simple functions. Nothing too scary. However, I flopped hard.
The interview was 45 minutes and I was sharing my screen with THREE people watching me. I was nervous. It was nerve-racking. My mind went completely blank.
The interview ended after 20 minutes and after a few smug smirks, I was left feeling broken and embarrassed. It took every ounce of fight in me to continue on and still want to be a software engineer.
Now, there are five things I am going to share with you so you do not ever have to be in that position or feel that way.
Do not overthink what they ask you to do
Speak out loud with what you are thinking
Do not be afraid to ask questions
Try to lead with a test-first mindset
These interviews depend on the interviewer just as much as you
The worst thing you can do is try to overthink or over-engineer a solution. For those of you who have been to any of my CV workshops or events you will know my favourite acronym has always been KISS - Keep It Simple Stupid.
These tests are not designed to catch you out, but to assess how you work and think. So, talk through what you are doing and why you are doing it. If you don’t quite understand the task at hand then always ask questions to clarify.
You do not need to follow TDD …but! Having a test-first or test-aware mindset will always leave them with a good impression of you.
And finally, you may do everything right but still not get the job. The person interviewing you could have their own interpretation of how a technical interview should go. Do not be disheartened. I promise you, the more you do them - the easier they become.
2. Take Home Test.
Takes home tests are one of my favourite exercises. Especially when they are actually related to the job. Like building a component in React for an application. Often the issue with these is you do not have the experience to know what good code should look like. So, here are 5 great tips:
If you call any function twice - put it in a folder called Utils and wherever you need it, call it.
Always write tests
Use Git - even though it is only you working on it. Show some effort. Create branches to work on and push to main for each feature or component.
Do not rush it and always ask for clarification if you cannot run it locally or you do not understand what it is asking you to do.
Finally, if you do not complete it - write a short paragraph on why and what you would have done had you more time. Use bullet points and explain clearly. If you did complete it, you should still do this but explain what you would do to make it better, i.e. thinking about how it would handle 1000s more users in the future.
Pro tip - you can use ChatGPT but make sure you use it as a guide not to do the work and most definitely know what it has done and is doing!
3. Algorithm tests like Hackerrank
These tests were never actually meant for self-taught or bootcamp devs but they are being used. They were originally designed for grads, who do a lot more CS fundamentals.
The honest advice here is just practice. Nothing can make you understand algorithms and data structures better than studying them and doing them.
Now, I was going to tell you about my favourite interview answer to a specific question that will leave a really good impression.
The question usually goes something like this ‘I see you mentioned TDD in your CV, what does TDD mean to you?’
This is a fantastic question as you can ALWAYS turn this into a fun little conversation and get the interviewer on your side.
Here are three things you may have not known about TDD:
TDD is not just about unit testing
TDD is not followed by everyone
Refactoring can also be a part of the TDD process
Here is one of my go-to answers:
“I will be honest, a lot of companies state TDD but when I start working for them not all of them strictly follow it. I love using it, I try to use it as often as I can. I always find writing a test first helps me plan out my code and think about possible failure points before committing.
I enjoy writing tests as I often get to refactor a lot of code and in my view, A lot of people only think of unit testing as TDD but integration testing, and end-to-end tests are a huge part of a total TDD strategy, I have used Playwright and Cypress before.
Tests, especially end to end are vital when developing with a team so any faults can be caught before deploying.”
This answer never fails me and quite often the person doing the interview will have a little giggle about how everyone states TDD but when tickets are coming in hot and fast it is the first thing that gets overlooked.
The other thing, you are showing a wider understanding of testing as a whole. Not a narrow view of what you have read or been told.
You are explaining the potential benefits in terms of bug catching, integrating into the wider app or codebase and sharing your experience of a tool you have used.
In my experience, this has been a game changer in technical interviews with a question that has been asked of me more times than my name.
If you have enjoyed this newsletter, again, I would appreciate a share.
I am also inviting you to reply to this email or message me on Linkedin to let me know about other topics you would like me to cover, from my experiences and others.
Catch you all next week,
Ishaq
P.S. You can book a 1-1 CV review with me, here.