For most people job interviews are scary. You never really know what to expect. You might feel like going to your own trial. Will this be a nice chat? Or will it be more a cross-examination-style of an interview?
Lots of unknowns, a lot can go wrong. Wouldn't it be great to feel well-prepared at least? But how can you prepare when there is so much stuff that the interviewers can ask about?
Preparing for these questions can be a lot of work, but it's simple. Just enter "interview questions React" in Google and you'll get lots of results. You probably already know a lot of the answers. Just look up the ones you don't. Here is one popular post on dev.to about JS questions. Here is another nice collection for web devs.
You might also want to prepare for algorithm questions 😱. Honestly, I'm very conflicted about advising you to grind LeetCode or HackerRank tests for days or weeks. Whether or not you'll be asked these kinds of questions highly depends on the location and size of the company and the experience of the interviewers. I personally had to solve an algorithm test once. I wasn't very good at it but, still, I got the job. Maybe solve some of the easier questions on one of the websites above just to get a feel of it.
Due to the anxiety about being grilled with technical questions candidates often forget about the most important parts of the interview: You should be interested in the job and the company. You should show willingness and ability to communicate and learn. And you should come along as someone the team wants to work and drink a coffee with. ☕️
In this post, you will learn what helped me when I was interviewed as well as insights that I gained when I was sitting on the other side of the table as an interviewer. Following are the topics that we will touch:
- Research the company and product
- Prepare a storyline
- Interview practice
- Prepare questions
- Review the interview
Before we start: Also have a look at my free course where you learn many more tips like this about your portfolio projects, your resume, and the hiring process.
Now let's have a detailed look at each of these topics.
🔬 Do your research.
Sometimes when people just want a job, need the money or send out tons of applications they don't really know what the company is doing. This can lead to embarrassing situations in the interview.
I experienced this myself when I was interviewed once. I was asked, "Do you know what our product is about?" I could barely remember its name. I was able to save the situation by telling them the few things I knew and asking for more details.
To be clear: as an interviewer, this doesn't feel very nice. The candidate doesn't seem very interested from the start.
When you research begin with broader information about the company and the product. Have a look at their website. Sometimes you can find pictures of their office. Smaller companies often have a team page where you can see how many and what kind of developers are working there. You'll also see if they have designers, product managers, marketing or QA people on board.
Study their marketing pages to find information about the product. This way you can gain insights even if access is restricted to paying customers.
Now you can dig a bit deeper. If the company offers an API you might be able to find technical documentation. That can give you valuable details about the inner workings of their systems. What kind of data models and entities do they have, how are they connected? This kind of knowledge can be great to show off during the interview.
What about the tech stack? Many organizations have a GitHub account. If they do investigate some of their open-source repositories.
Some companies also have technical blogs to attract talent. These are wonderful opportunities to get a step ahead of other candidates. You might gain insights into tools they use, the tech stack, or the reasoning behind technical decisions.
In some cases, the HR person or recruiter will tell you the names of the interviewers on the next stage. Make sure to note these names and research them. Do they have a LinkedIn or Twitter account? Maybe you can find their personal blog. Even simply familiarizing yourself with their picture will make you more comfortable during the first important moments of the interview.
📝 Prepare a storyline about your previous experience or personal projects.
If you have professional experience as a software developer prepare a short story about the most interesting projects you were working on. What technologies did you use there? How big was the team and how did it collaborate? Did you implement something or did something happen that you are especially proud of? What did you learn?
Regarding your personal projects: naturally, the interviewers will expect you to have deep knowledge. After all, you wrote the code. If it has been some time since you last touched your projects be sure to refresh your memory. Try to remember why you made a certain decision.
It can be especially helpful to find things that you would do differently from hindsight. This might even be a question in the interview. If they don’t ask for it you can still bring it up yourself. Being able to criticize yourself shows character, maturity and learning ability.
🏋️ Practice interviews. Especially if you're a nervous type of person.
Common advice is to practice writing (pseudo) code on a whiteboard or paper. You can find tons of coding interview questions online. While you’re thinking about the solution and writing down the code speak out loud and explain what you’re trying to achieve.
Speaking out loud is very important here. Mostly when we code we solve problems in our head. Especially, when we’re not used to pair-programming or talking to a rubber duck. Getting used to explaining our thought process to others will drastically increase your chances during interviews.
And, of course, some websites offer mock interviews. interviewing.io or pramp.com seem like good options. Also, have a look at codesignal.com since they have a lot of resources for interview practice. All these websites are free for developers since they make money by referring good candidates to companies.
🙋 Prepare questions.
The interview is mostly finished with the following sentence: “Are there any questions from your side?”
A candidate asking good questions after (or during) the interview seems so much more interested in the company and the job they’re applying to. But your brain is probably fried at this point. There might be no mental capacity left to think about anything interesting to ask.
That’s why you should prepare some questions upfront and memorize them. Maybe even write them down on a piece of paper. There is no shame in reading your questions from a paper. It just shows that you prepared for the interview.
Here are some suggestions. You can ask
about the company
about the development process
for a tour in the office
what kind of technical debt they have
for the best and worst things about working there
Especially the questions about the development process, technical debt, and best/worst things working there can be very conclusive.
Specific things to ask about the development process are if they use agile methodologies like Scrum, if they work in sprints, if they work in cross-functional teams, and if they make use of pair programming. This way you can check if they work in a modern development environment. This is especially important if you’re an entry-level developer and want to improve yourself.
The questions about technical debt and best/worst things are the counter-part to the famous question about the strength and weaknesses of a candidate. It can be very interesting to watch the interviewers when thinking about an answer.
🔎 Review the interview.
After the interview is before the interview.
Once you're done write down everything you can remember about the interview as soon as possible. It's important not to underestimate the effect of this exercise. It will be so much easier to identify your weak spots and be much more prepared for the next job interview.
Try to recreate the interview step by step. What were the questions and what did you answer? Try to reflect on your mood as well. When were you nervous, when confident?
I was sometimes asked by recruiters to tell them about my interview. They wanted to have as much detail as possible to prepare the next candidates they sent in. Often when I thought I did a great job I realized what kind of insecurities I had when systematically recreating the interview in my head.
Since you mostly won't get detailed feedback when being rejected this is the best way to improve your interview skills on your own.