I’ve been working in IT for 10 years, and for the past 5 years as a Lead Developer. I’ve conducted over 100 technical interviews for various projects and technologies. I think, that Interviews often says more about the interviewer than about the actual project and what tasks you would be assigned. It’s frustrating when interviewers ask questions like “How do you handle memory leaks in a browser?” or “What project metrics should be tracked?” Then, for a long time, you working on building web forms and changing button colors 🙃
I do not recommend this article for people who are preparing for interviews, because most interviews focus on a lot of theory that doesn’t really relate to the project or work you’ll actually do. I hope this will be interesting for those looking for an optimal way to conduct interviews and find the best candidates in the market. This rules and questions were defined after a big amount of hiring bad specialists, that perform really bad on the project. As for now, I can be sure that using this questions, even if candidate know before interview them, I will understand if I can work with this person and will the candidate be able to handle the project tasks.
Make the PLAN! You should understand why you hire someone and what this person would do on project.
If you’re hiring someone just to write HTML/CSS, ask relevant questions. You probably expect them to analyse requirements before implementation. Your goal is to hire someone who can work independently, so don’t waste time explaining every detail of what they need to do.
If you need a candidate that will change the build process on you project and split application into microfrontends, then it ok if candidate has some gaps in css, when specific tasks would be ended you can hire a new one or upskill your teammate.
It’s strange to hear questions like “What does function X do?” or “How many JavaScript types are there?” If the candidate doesn’t know the latest features like private methods or symbols in JS, it’s usually not a reason to reject them, until you are banned in google or ChatGPT and all your teammates are junior developers.
Sometimes it’s critical, like if you’re hiring a backend developer for a project with a SQL database but no ORM. In that case, SQL knowledge is essential. However, if you’re using Firebase, SQL might not matter. If a candidate has some backend experience, give them 1-2 days to learn Firebase. It hard to find candidate that will match all your project skill set, especially when project exists for more then 5 years.
Nobody knows everything, but some people are quick learners and adaptable. I prefer hiring people who show a willingness to learn and grow. It better to understand if candidate can solve complicated tasks or will rather give up on easy one. If their knowledge covers at least 70% of what you need, check if they can learn new tools, solve complex problems, and apply their skills.
It not relevant to ask junior developer: how to setup datadog dashboard and what metrics to collect.
As for me, I have following expectations from candidates level:
I’m not a fan of theory, but I do ask basic questions to ensure candidates understand the main tech stack. For example:
For a React position:
• How does change detection work in React?
• How do you use useState and useEffect?
• What’s the difference between props and state?
For an Angular position:
• How does change detection work, and what strategy do you use?
• Can you explain the component lifecycle?
• What is two-way data binding, and what is @Input?
Once candidates show a basic understanding, I might ask more advanced questions based on the project’s specific needs.
I’ve heard complaints about coding during interviews, but I’ve found it helpful.
Remember to help candidate to keep calm if candidate got too nervous!
I often start by asking the candidate to download a project from GitHub. This helps me understand how they navigate the console, switch between screens, and more. Here’s what I look for:
• How they download the code – do they use an efficient method?
• Do they check the README file for setup instructions?
The first task might be to create a simple blog.
• How many questions the candidate asks – are they relevant?
• Do they prioritize tasks effectively?
• How is the CSS structured, and are they using best practices?
• How do they approach the task? Do they start with a basic structure and then refine it?
I also give a task to fix unit tests, which helps me see how candidates handle difficulties and work with legacy code.
• How they debug and use the console.
• Their approach to writing unit tests.
With these tasks, I get a good understanding of how candidates think and how they use tools like the code editor, console, JavaScript, frameworks. Based on this, I decide if they’re a good fit for the team, the project and for me as a lead.