Assume a junior and a senior developer is given the exact same problem statement

Design the back-end database for an e-commerce website

You would be surprised by the difference in problem-solving approach employed by the junior and the senior developer

The junior developer – a recent college graduate or an entry-level engineer – would most probably devote all their attention to the verb – “Design the back-end database”. They would choose a framework, database and a programming language that they are well-versed. With these minimal resources at hand, they start working on the solution.  They might be able to successfully get a solution that works “in most cases”

The senior developer – a person with years of industry experience – might approach the problem in a more holistic way. Instead of giving importance only to the “verb” in the problem statement, a senior developer would look at the e-commerce website as a whole. They would have a workflow similar to the below one

  1. Analyze the business goals of the website
  2. Take into consideration aspects like stability, performance, and scalability
  3. Keep in mind execution bottlenecks and budget constraints
  4. Come up with the blueprint for a set of possible solutions (each with their pros and cons)
  5. Start implementing a solution that is optimal and holistic

Our intention is not to put the junior developers in a bad light with the above example. We just want to point out the stark contrast in the thought process of junior and senior developers

Just as Sarah Mei, the chief consultant at DevMynd Software, finds:

Desired skill set for a developer

There are multiple areas in which a junior and senior developer differ in their skills.  In this insightful article, Sue Choe the Chief People Officer at Petal shares a comparative competency matrix for junior and senior developers. It is broadly divided into four different areas

  • Technical Expertise
  • Self Management / Project Delivery
  • Communication and Collaboration
  • People mentorship/ Management
  Technical Expertise

·         Skills

·         Knowledge

·         Quality

·         Design

·         Innovation/Vision

Self Management / Project Delivery

·         Execution

·         Productivity

·         Coordination

 

 

Communication and collaboration

·         Oral/Written

·         Influence

·         Feedback

People mentorship/Management

 

Junior developer ·         Demonstrates basic knowledge of core computer science fundamentals

·         Keen to acquire knowledge on the domain and existing architectures

·         Keen to build an understanding of the company’s products and businesses.

·         Delivers requested tasks on time

 

·         Potential to develop the ability to work as a part of the team

·         Capable of interfacing with other team members effectively

·         Absorbs feedback well

·         Keen on building functional working relationships on team

Senior developer ·         Create sweeping improvements in stability, performance, and scalability across major business-critical systems

·         Recognizes and makes appropriate trade-off with a vision of future flexibility

·         Foresee potential pitfalls and steers designs around danger and hidden costs

·         Anticipate broad technical changes and ensures the company is always ahead of the curve through cogent architecture and design decisions

·         ownership of large sections of the codebase – end to end SDC

·         Sets long term technical direction for multiple teams

·         Prolifically contributes to multiple problems and projects at once

·         Quickly breakdown complex problems into potential solutions

·         Consistently delivers large systems with the collaboration of one or more teams

·         Acts as a multiplier by building systems, authoring tools, introducing policies or patterns that raises the productivity of the entire organization

·         Effectively communicates scaling/reliability limits to products, design and other functions

·         Credibly lead conversations with senior leaders about the business direction

·         Corrals diverse opinions to arrive at the best decision for the company

·         Actively listens and guides internal debates

·         Provide constructive feedback and suggestions

·         Inspire engineers through communication and vision

Acts as a role model and mentor to every technical member of the team.

Is it sufficient to hire only senior developers?

We have already seen that senior developers approach a problem in a more holistic way. At first, it makes sense to hire only senior developers. You are not alone. Many companies ask themselves the same question

Why do we need junior developers when we can have all senior developers?

You might find several good reasons to hire only a set of senior developers:

  • The company is moving very quickly, we don’t have the time to hire junior developers or mentor them
  • We have a lot of money, we can afford all seniors, then why do we need juniors?
  • The company is at a critical point. We cannot experiment and definitely cannot afford mistakes
  • We need to get the first version of the product out – fast and foolproof – so we need all experienced hands

While all the above arguments seem logical, there is another side of the coin

As April Wesner, the founder of compassionate coding rightly points out:

In this thoughtful article, software developer Isaac Lyman lists out a comprehensive set of reasons why a company needs to hire junior developers

  1. Cost – According to the job site Indeed, the average salary of a senior developer is two times the average salary of a junior developer. The product might have a lot of entry-level work which a junior developer can handle just fine. By only hiring senior developers you are paying a premium charge for such work
  2. When you say you don’t hire juniors because they might make mistakes, you invariably send out the message that “Mistakes won’t be tolerated in this organization”. Don’t you think it will scare away even the senior developers?
  3. When you say “We don’t hire juniors” it indicates that you don’t care about the career progression of your employees
  4. A junior developer is eager to learn, they adapt quickly and gives a fresh perspective to every problem
  5. Junior developers are assets. If you hire them and mentor them well, they will add value to your company in the long run. As Reginald Reginald Braithwaite rightly put,

reginald braithwaite developer tweet

Hiring strategy for Junior and Senior developers

Why do you need a different strategy?

We have already seen how your organization could benefit from a good mix of junior and senior developers. However, there are multiple reasons why you need a different hiring strategy for junior and senior developers

Skillset differences

Your expectations from a senior developer are entirely different from a junior developer. Hence, the hiring process should be aligned accordingly

desirable skills for junior developer

Availability and Quality

In the case of junior developers, a large pool of candidates are available. According to an employability survey conducted by Aspiringminds – an AI-based Talent Evaluation Company – only 3.84% of fresh graduates out of college are employable. In contrary, the employability index of senior developers is much higher but there would be only a handful of senior developers who match your requirements and are ready to switch jobs

Cost of hiring

On-boarding a junior developer may not be expensive as it involves only a basic and standard set of the hiring process. Also, most of the junior developers are hired in mass recruitment events like campus placements or recruitment drives. The hiring process for a senior engineer is usually much more specialized. It could be costlier in terms of money, time of the interviewers and the business impact

What are the different strategies to be applied?

Alexander von Franqué, author of the upcoming book Hiring Engineers sums up the basic difference in strategy for recruiting junior and senior developers

When hiring senior engineers, you’re not buying, you’re selling

As we have seen in the previous section, a junior and a senior developer differ in skills, quality, and cost of hiring. Hence, it is important to follow a unique hiring strategy for junior and senior developers. Multiple critical points need to be customized when hiring a senior developer

Job descriptions

When a company hires junior developers, it is at the buying side. Hence the job description for junior positions could be more about the needs of the company and what it expects from the candidate. However, just like  Alexander von Franqué quoted, in the case of a senior developer, a company is not choosing the candidate, but a candidate is choosing the company. Hence the job descriptions should be more of what a company can offer a candidate rather than what the company wants

Sourcing

Sourcing of junior developer roles is pretty easy as there is a large talent pool available. The various methods include recruitment drives, walk-in interviews, hackathons, and coding challenges. However, when it comes to the sourcing of the senior developers, one of the most tried and tested method is referrals. Inbound mechanisms like a website and social media advertisements paired with an attractive job offer could be an efficient sourcing mechanism for senior developers

Interview process

Job profiles are often generic for junior positions. The interviews could be a standard test of engineering fundamentals and soft skills. Even though there might be multiple rounds of interviews, they could be generic.  The interview process for a senior developer needs to be carefully crafted. The interviewer must be thoroughly prepared with the resume of the candidate. They should be able to explain the details of the position to be filled and be ready to answer specific questions of the candidate

Technical assessment

For junior engineers, it might still be possible to assess technical skills with a snippet of code on the blackboard. However, this approach wouldn’t work for a senior developer. They are supposed to solve complicated problems in a real job environment.  Hence, a technical assessment that closely resembles the real work and in a real environment is necessary

Large organizations use many of the above-discussed techniques in hiring junior and senior developers

Keawe Block, the staffing lead at Google explains Google’s strategy of hiring junior developers. They prefer candidates who have experience in coding competitions and hackathons.  They also prefer candidates who have experience with coding assignments at work

According to Glassdoor’s senior developer interview experiences,  Target and Thoughtworks  challenge the candidates with a case study assignment. The senior developer candidate gets about a week to complete the assignment. This article on Wired describes Google’s hiring strategy for senior developers. They use work sample assessments and structured interviews

Spreedly the payment platform also uses work sample assessments as their preferred method for hiring senior developers as they quote in the company’s blog

“At Spreedly, work samples are our preferred method of measuring a candidate’s technical abilities. We think they address many of the shortcomings of generic programming puzzles, with minimal trade-off”

Work sample assessment to hire senior developers

We have seen that many top companies try to simulate the real job scenarios while hiring senior developers to fill specific positions. Our article on hiring 10x developers gives a comprehensive idea about work sample assessments and how it could help you hire top talent. It describes research conducted by Frank L Schmidt and John E Hunter which have identified work sample assessment as the best method for candidate evaluation

Work sample assessments closely reflect the challenges that a senior developer might have to solve every day. It also resembles the actual environment in which the work has to be done. How comfortable the candidate is in using frameworks and libraries that are already being used in your team. It also helps a candidate to experience the coding practices of the company. The effectiveness of work sample assessments according to  Ryan Daigle, VP of engineering at Speedly depends on how they are designed. They are as much about the candidate measuring the company as the company measuring the candidate

Key Takeaways

  • Junior and senior developers differ in their skill set and problem-solving strategies
  • A balanced organization needs both senior and junior developers
  • Hiring strategy for junior and senior developers differ significantly
  • A company is in a selling position when it is hiring a senior developer
  • Work sample assessments are a great way to assess the skills of a senior developer

 

Leave a Reply