Software development requires complex technologies and processes. But at the end of the day, it’s the people that matter the most when building great products. After all, they’re the ones creating and maintaining the process, and selecting and using the tools.
Senior developers are valued for their ability to write exceptional code, mentor junior engineers, work through organizational issues, and implement and manage technologies. And while they are crucial to a company’s success, it’s challenging to hire the right candidates.
So how can you create an interview process to assess and hire these coveted veteran developers?
Understand what it means to be “senior”
Data from our Developer Report suggest that being a senior developer is a wide concept. The majority of developers who identify as senior have 5 years of professional coding experience or more.
When interviewing experienced engineers, it’s expected that they’re able to not only figure out what the problem is, but also provide solutions with refactored code. For entry-level roles, we expect them to just be able to solve the problem. Remember that experience teaches you what problems to solve.
Ask senior developers what kind of work they do to sell new ideas to management and how they go through the software development process. It should also be clear that they keep up with the latest developments in the market.
Start thinking about the necessary skills and core values that you’re looking for in senior candidates. Encourage your team to create a document that details the “job ladder” — be sure to explain what characteristics matter and the difference between levels.
D25 of #100DaysofCode— Indra Lukmana (@IndraL_DEV) June 16, 2019
Completed some coding challenges. Tried Hackerrank and Codility. I enjoyed the codility platform more than Hackerrank. Planning to try Codewars tomorrow as part of chingu pre-work.
*Posted by a developer on Twitter.
Prepare the right interview questions
Remote or not, the face-to-face interview should feel like a conversation for senior developers. Be transparent about what the process looks like and don’t let interviews drag on. Ask questions about software design, architecture, and behavior. Here are some examples:
- When would you use a NoSQL solution instead of SQL?
- How would you deal with scaling a monolithic web service such as a Django or Ruby on Rails app?
- How do you stay up-to-date on new technologies related to full stack web development?
- What technologies, programming languages, and frameworks would you use if you had to develop a project from scratch in only one month?
- What are the benefits and drawbacks of working in an Agile environment?
- For a public facing application, what security concerns would you have? And how would you address them?
- How would you document your work on an application so that others coming after you can understand why the system is the way it is?
Remember that it’s pointless to ask senior engineers to complete a simple algorithm or data structure test — some haven’t dealt with that stuff for years. Instead, ask them to share a few work samples or other documentation that can speak to their technical skills.
Also be wary of whiteboard testing — this should really only happen if you’re expecting senior developers to do this in their day-to-day work.
The whiteboard coding is now a bane of contention for me. If a company asked me to code on anything bar a laptop with a properly tooled IDE id just say no. If you don't expect it of me in the day to day, don't expect it of me in interview— James Woodley 🇬🇧 (@WooderzJames) June 19, 2019
*Posted by a CTO on Twitter.
Collaboration is key
Coordinate with the hiring team, especially other senior engineers on the team who will work with the potential candidate once they are hired. A panel that represents the team and company will also give the candidate a better feel for the work environment. Try to limit the panel to five people at a time as to not overwhelm them.
You could also leverage collaboration in the assessment itself. A common way to assess hard skills is to code with your candidates, commonly known as paired programming. Use a platform that has a video feature like CodeLive so you can see how an applicant thinks in real-time.
The technical interview
This can take a couple of different forms. Nowadays many companies ask candidates to complete a take-home coding assessment. The value in this type of test is that candidates can work from the comfort of their own laptop and equipment. Senior developers tend to have plenty of other responsibilities — so allowing them to take a coding test on their own time is valuable.
In the absence of a take-home coding test, spend an hour and ask the senior developer how to improve upon existing code — this shows that you really care about code quality and collaborative programming.
Remember that a skills assessment test shouldn't feel like a homework assignment. This is your chance to build a collaborative relationship with the senior developer — you might even learn a thing or two.
Need some inspiration for running better technical interviews? Download our eBook for more hiring strategies.