Whitepaper

The new developer and technologist candidate journey

Recruiting technical talent in today’s competitive landscape is challenging—particularly now that many companies have shifted to remote workforces, so you’re as likely to be competing against Google or Amazon as the startup down the street.

In order to stand the best shot of attracting top talent to your team, you need to focus on more than salary and benefits: You need to think about what the candidate’s motivations are in their job search. By taking the time to understand a developer or technologist’s pain points, and addressing them throughout your recruiting process, you’ll be able to build an empathetic approach that helps candidates build a stronger, more meaningful connection to your company. In order to do this, it’s helpful to look at the recruiting process through the same “Jobs to Be Done” methodology that developers often use for designing products.

Simply put, “Jobs to Be Done” refers to the process of uncovering unmet user needs and designing a candidate experience that meets those needs. This framework can be translated to the recruiting process by understanding the flaws that typically surround the job seeking process, and building an optimized experience that eliminates those problems.

Think of it this way, what someone wants is different than the tool or path they select to get what they want. 

"People don’t want a quarter-inch drill, they want a quarter-inch hole."

“People don’t want a toothbrush, they want healthy teeth.”

Stack Overflow conducted intensive research to understand the phases of the job searching journey, including a survey of 550 developers to understand their pain points along the way. Here’s a brief overview of our findings and how to use JTBD as a framework to inform your own recruiting strategy.

First, let’s understand the job stages 

A candidate goes through five stages during their journey. 

  1. Assess the market and find jobs
  2. Decide which jobs to apply for
  3. Interview for jobs
  4. Decide if this is a company they want to work for
  5. Decide if this is a role they want to take

Within each of these are multiple actions that take time and effort. When it’s broken down into all the various actions, it’s easy to empathize with the candidate’s desire to have a better experience. Job seeking is time consuming and often developers and technologists are left to navigate these actions on their own which can be frustrating.

When trying to ‘assess the market and find jobs’, developers and technologists need to:

  • Figure out what compensation is standard in the industry for their role
  • Figure out what the most effective way to apply to companies will be (e.g. recruiters, job boards, direct applications, etc.)
  • Share that they are looking for jobs (e.g. with companies, recruiters, friends, etc.)
  • Figure out what roles are available in the location they want
  • Find open roles at companies that interest them
  • Prepare for job applications (e.g. prepare a resume, prepare a cover letter, etc.)

When trying to ‘decide which jobs to apply for’, developers and technologists need to:

  • Decide if their skills match what the job listing is asking for
  • Understand the potential compensation offered (e.g. salary, equity, benefits, etc.)
  • Figure out if they can do the job remotely
  • Decide if the commute would be worthwhile.
  • Figure out if they know anyone connected to the company
  • Keep track of their job applications
  • Prepare for job interviews

When trying to ‘interview for jobs’, developers and technologists need to:

  • Find a compatible time to interview with a company
  • Understand how long the interview process will be
  • Communicate their expectations with regard to compensation (e.g. salary, equity, benefits, etc.)
  • Effectively communicate their skills
  • Ask questions about the company and role
  • Get feedback during the application/interview process
  • Understand how far along they are in the application/interview process

When trying to ‘decide if this is a company they want to work for’, developers and technologists need to:

  • Decide if they align with the company from an ethical and moral standpoint
  • Decide if the company is diverse and inclusive enough for them
  • Decide if they like the company culture (e.g. flexible hours, remote work, social events, etc.)
  • Decide if they like the tech culture at the company (e.g. tools, technologies, processes, problems, etc.)
  • Decide if the company is the right size for them
  • Decide if the company will be financially stable enough for them
  • Decide whether the company offers enough learning opportunities for them
  • Decide if they think there will be enough room for career progression within the company

When trying to ‘decide if this is a role they want to take’, developers and technologists need to:

  • Decide if they will have enough influence over the tools and technologies they will use
  • Decide if they want to work with the team
  • Decide whether they have the skills required for the job
  • Decide whether the role will be good for their career long term
  • Decide whether the role will offer the right work-life balance for them
  • Negotiate the compensation offered (e.g. salary, equity, benefits, etc.)
  • Evaluate the experiences others have had with the company (e.g. interviewers, ex-employees, their network, etc.)
  • Evaluate what others would think of their career move

Now that we know all the actions that developers and technologists go through during their journey, let’s focus on what you can do to improve your candidate journey.

Start by understanding job seekers’ motivations

Before designing a strategy to attract them, it’s important to know why a developer might start looking for a new job. 

Asking the question “what prompted you to start looking for a new role?” can reveal more about the candidates underlying motivations and desires than what appears on the surface.

Our research found that these were the key motivators for seeking a new role:

  • Better compensation
  • A better title
  • More professional development
  • More autonomy and leadership
  • More job stability
  • More interesting work
  • A different location
  • A better company culture

Let’s break these down into what could be the underlying motivation and how you can create a strategy to attract them to your company and improve their candidate journey.

Better compensation

Look at these two quotes - one person’s motivation is about being able to support a new family while the others is about a feeling of accomplishment and growth. 

“I recently got married, so we were really thinking about our future. Number one priority was finding something that could financially support a couple. But it wasn't just money, it was money and job stability.”

“Earlier in my career it was more about having fun and learning new things. And like learning as part of the job. But after doing it for over 10 years, it's now more how do I step up and climb the ladder and make some real money.”

You might not always need to offer the highest salary if you are able to meet the candidates other needs (e.g., stability, growth).

THINK ABOUT:

  • When someone replies to your question that they want to earn a higher salary, a good follow up question can be “What would make you switch roles, even if the salary was the same?” so you can understand the secondary motivation.
  • In your job descriptions, talk about softer benefits besides compensation. Things like a family friendly culture or set paths for career growth and promotions.

  

IMPROVE THEIR JOURNEY BY:

  • Being transparent about salary up front. If you can’t post it in your job listing, then definitely cover it in the initial screening.

Better job title

When someone is motivated to start looking for another role in order to get a better job title, they are focused on their future.

“My goal is basically to be a CTO.”

“I was looking for career advancement. A more senior role. And I didn't get that at all. I've just started a job hunt again.”

“I'm not actively looking for a new job right now, but I'm always thinking about the future, about climbing up the ladder.”

 

These forward thinkers will be evaluating any new career opportunity against their future plans and goals.

THINK ABOUT:

  • In your job descriptions, describe any growth opportunities that come with this role. Is it a new role where they can define it? Is it part of a team that partners with many other groups within the organization, giving them the opportunity to build relationships?
  • In your employer branding or company blogs, share stories of developers and technologists growth path in the company. Help the candidate see what’s possible.

IMPROVE THEIR JOURNEY BY:

  • Having them speak to a peer or teammate who has been promoted so they can hear about the process and experience.  

Looking For Professional Development

This is particularly important for more junior developers and technologists, they want a role that gives them a chance to learn and grow.

“For me the first motivation is professional development, and second to that is wanting more money.”

“I really didn't care about location or pay, really I just wanted to learn and land my first chance to get industry experience. And after four years of school, it's like, I want a job where I'll just use my knowledge and apply it every day, and work on interesting things.”

THINK ABOUT:

  • As you are working with your hiring managers, have them give you a brief description of the projects that candidates will be working on - and, most importantly, what is the interesting challenge that this project presents. If they are struggling with giving you an interesting challenge, have them look at it from when they were early in their career - what would have been new and different at that point in their career.
  • In your employer branding or company blogs, share stories of the projects in development and all the people who are contributing. Help the candidate see that even if they are early or late in their career, the projects are still giving them a chance to grow and do new things.

IMPROVE THEIR JOURNEY BY:

  • Prepping the hiring manager and others on the interview loop to talk about the skills they’ve developed while working at your company.
  • Sharing details on any professional education opportunities that are available.  

Wanting More Autonomy & Leadership

Many developers and technologists saw their current role as limited in terms of decision making power and many want a role that would allow them to operate with more autonomy.

“Oftentimes, when you're the technical person in the room and there's a decision to be made, it's not your job to make it. It's your job to give the technical background for all of the different options, and then let the decision maker decide. But I'm looking to be more in the decision maker’s seat.”

“One day I would love to lead a decent sized team of engineers. That's been a goal of mine for quite some time. Still being able to code but also leading a team.”

THINK ABOUT:

  • As you are writing your job descriptions, mention the opportunity to learn leadership skills and/or business decision making skills. For example, building businesses cases for infrastructure or software purchases that show the positive business impact these purchases will have on revenue or profit margins. 
  • Just like what we saw in the quotes about wanting a better job title, people are looking to the future and giving them the ability to build those skills as part of a new role can be appealing.

IMPROVE THEIR JOURNEY BY:

  • Have the hiring manager prepare examples of when the candidate’s peers have made recommendations or influenced decisions. Even if it’s as small as recommending a tool, it will show candidate’s that they have a voice. 

Wanting Job Stability

Job stability isn’t a given, even for developers and technologists who are often in high demand. We all know the feeling of uncertainty that comes when our roles are in question. For people who have recently had a period of unemployment or a history of contractor roles, job stability is often at the forefront of their minds.

“I really wanted a role that would provide security. I was working for the government before this and the contracts are always 14 months and that feels very shaky.”

“It's actually been my intention to stay somewhere longer. But I've ended up actually moving around a lot. And in fact, in my last job, I was really hoping to stay for the long haul, and didn't realise until I had been there a little while that things were bad. So I'm hoping to stay in my current role for at least a few years, if not longer, depending on how things go.”

THINK ABOUT:

  • If your company hasn’t been stable, be prepared to address questions about this. Perhaps ask senior leadership to help you craft a response.
  • Job stability and employees with long tenure is a benefit. But coming into a company as the “new person” where most teammates have a long tenure can be intimidating. If possible, get details from the hiring manager about plans for onboarding the new developer or technologist so that you can alleviate their concerns.    

IMPROVE THEIR JOURNEY BY:

  • Being upfront about any challenges that your company has faced regarding job stability.

Wanting More Interesting Work

Interesting tech challenges are a big attractor and go along with professional development. Not feeling as though work was interesting was a driver for developers and technologists to start job searching.

“I joined because I liked the transparency of the people. Also I would be starting a new department altogether, and I would have a lot of leeway deciding the tools and technologies. The whole onus is on me, and I haven't done that in a very, very long time. So it's a challenging role. I'll either succeed like anything, or fail miserably. Either way, I will get to learn a lot so that is a major motivation.”

THINK ABOUT:

  • As you are writing your job descriptions, think beyond just listing the core technologies and more about how the developer or technologist applies those technologies to solve problems. This will show them that the work has interesting opportunities.

IMPROVE THEIR JOURNEY BY:

  • Share, share, and share more about all the projects that the team is working on. Developers and technologists want to see examples of cool ways that technologies are being applied to solve problems.

Looking for a Different Location

Perhaps not as important as before we all had a shift to remote work, but if developers were looking for a shorter commute or to move to a different location, this was an obvious motivation to start job searching. 

“I wanted to work somewhere that had a bit of a shorter commute than I used to have.”

“I'm from Maryland and I really wanted to move back to where I'm from. So my kids could be close to their grandmother, aunts, uncles...“

THINK ABOUT:

  • Remote work can be a benefit to many developers or technologists but don’t assume that this appeal is universal. We know that everyone’s work preference is different and people do enjoy going into an office. If there is  As you are writing your job descriptions, if remote work is possible in the future, make sure to call this out. 

IMPROVE THEIR JOURNEY BY:

  • If there are other work locations or if remote work is a possibility, let candidates know.  

Wanting A Better Company Culture

Poor culture was one of the strongest motivators mentioned to start looking for new work. This was something that made developers and technologists not just want to leave a job but leave ASAP.

“I was trying to get away from a toxic work culture.”

“I just felt like the company was in complete disarray and I wanted to leave as quickly as possible. I actually really liked the role, it was something that I wanted to do, but the company was such a toxic environment. I knew there were plenty of other options out there and it just didn't make sense to stay in that situation.”

THINK ABOUT:

  • It’s easy to say that a company has a great culture, but people want to know more than just words. The easiest way to do this is to feature stories from your developers and technologists on your blog where they talk about their experiences with their teammates. How they solved a small or large problem together, what their day-to-day interactions are like, etc. 

IMPROVE THEIR JOURNEY BY:

  • Being empathetic for the uncomfortable situation they are in right now. Give candidates the opportunity to speak with teammates on an informal basis to get a sense of the culture from people who are experiencing it everyday.   

Learn what their pain points are

As developer candidates navigate the job-searching process, they often come up against a number of hurdles or areas where reality falls short of their expectations. Being aware of these pain points and having strategies to either avoid them or make them less painful will result in a better candidate experience.

The most common issues that arose were:    

A lack of entry level roles for newer candidates

Finding entry level positions was something that junior developers obviously struggled with, but also something we heard from developers looking to start managing a team.

“A lot of the job ads were very discouraging to be honest. A lot of them said they were asking for a junior developer, but they were really asking for a mid-level developer. A lot of the positions that were popping up for junior developers were very discouraging, because I don't have five years of experience, I don't even have three years of experience.“

THINK ABOUT:

  • Is years of experience really something that you need or would having experience with specific aspects of the role be more appropriate? According to our Developer Survey, about 50% of developers and technologists have been coding for 5-14 years but 65% have less than 10 years professional coding experience. Just because someone is early in their career doesn’t mean they aren’t experienced coders.  

IMPROVE THEIR JOURNEY BY:

  • Removing the number of years of experience requirement in your job descriptions. Rely on the job title and the description of the role and responsibilities to convey what you need.

Poor interview processes

While regular interviews were often labelled easy, coding challenges weren’t considered the same. When well made, developers had no issues, but badly designed coding challenges were considered a massive pain point. 

“Coding challenges are just unpaid work in some ways. When they'd want you to spend your whole weekend on something and then barely even give you any feedback.”

“When it comes to coding tests, it's like Russian Roulette - it depends so much on whether who set the task and who is looking at your submission are decent.”

THINK ABOUT:

  • Do coding challenges really give candidates a way to show off their experience and skills? Consider what Ben Matthews, Engineering Manager at Stack Overflow, learned after a candidate didn’t complete a coding challenge.   

The one that stood out

After talking with a recruiter who introduced us to a particular candidate, it became obvious that it might be tough for this applicant to move forward with the coding test. The person was very busy at work and was worried they couldn’t do a code submission in time. I let them know there was no time limit or minimum for how many hours they had to work on it; we wanted to make a decision in about two weeks, so that would work for us if it would for them. Everyone gave a thumbs-up, and we were hopeful for a good submission.

What more am I trying to learn?

At two weeks minus a day, we got a pull request and an email. We looked at the PR first, and, sadly, there was little to go on. The structure of the app was well-organized, and we could see the path they would have taken — commits were frequent and with good messages — but the meat of the app was missing. Sadly, we couldn’t even run it, and we were pretty sure that time just ran out on them. I read the email, and they were very apologetic. They explained that they didn’t have time due to work and personal issues, so their submission was incomplete. But then over the next three paragraphs, they explained what they would have done.

  • They linked to articles on Minimax that they were going to take as inspiration. They wondered if Negamax may be faster and would have tried to find out.
  • They listed parts they thought would be tough to deal with based on experience and listed some things they would try if plan A failed.
  • They wrote how they would add tests for certain sections but wouldn’t for others and gave a quick explanation on what they called “test bloat” and why they tried to avoid it.

The points were concise, but still very clear. Normally, I would have replied with well wishes on their challenges and mention that I would reach out if we start another round. But after thinking about it, I wondered: what more am I hoping to learn?

We had a few early pieces of their code to see a little style and their thought process on how they would move forward to address pitfalls. Even the commit messages, as few as they were, showed clarity and consideration for the reader. I compared the factors that became clear on this submission to other more finished examples and noticed that I got just as much of a view into the candidate in this submission with an explanation as I did in others with unanimous approvals. So I copied the three paragraphs from the candidate with my thoughts, a link to the PR, and emailed it to the pool of reviewers before I went to my next meeting. When I came back, I had three replies in the email chain that just said, “Ship it.”

IMPROVE THEIR JOURNEY BY:

  • Making the activity portion of the interview process relevant to the role. Will this be a collaborative role that requires working with a wider team on a project? Then set up the activity to show their soft skills and technical skills at the same time.

A lack of feedback

Lack of feedback was something that developers very much struggled with. They were adamant that they always wanted to hear back from companies, even if it was with bad news.

“Some companies took a very long time to give feedback, and that was one of the most frustrating parts of my job search process. One company went a month with no feedback. I would really appreciate it If I had got to know what's going on, even if they didn't want to hire me.”

“This is extremely difficult. I normally never know why they did or didn’t like me. I’ve tried to ask but never got anywhere.”

“This is very difficult. I track the hell out of my applications through a spreadsheet, and I would say, probably 60% didn't even send a response email beyond ‘we received your application’. It can be very hard to get a hold of anyone or know who to contact for feedback.”

“I never hear anything beyond ‘we’ve decided to move ahead with other candidates’. It’s always the same standard answer.”

THINK ABOUT:

  • If a developer or technologist wants feedback and to actively engage with a recruiter, that shows initiative and drive - two strong soft skills. While you may not have time to engage with every candidate, a little effort can make the candidate feel heard and they may be more likely to apply in the future because of this positive experience.     

IMPROVE THEIR JOURNEY BY:

  • Communicating where the candidate is in the process eliminates the uncertainty they may feel. Hearing that they aren’t being considered any longer allows them to focus their efforts on other opportunities. 

Long notice periods

While not a commonly mentioned pain point, long notice periods were something that some of our participants struggled with. This impacted knowing when to start a job search, and timing insurance between jobs.

“I lost some really good opportunities - which was a fight between like an ethical, moral kind of thing vs. career. I didn't want to start job searching too early because I owed it to my last company to work a longer notice period. They had done a lot for me, so it was a difficult choice.”

THINK ABOUT:

  • A candidate that wants to give longer notice is demonstrating their professionalism and empathy to their previous company and teammates.     

IMPROVE THEIR JOURNEY BY:

  • Managing their expectations around the start date schedule - if you only do a few days a month, make sure you are telling them that upfront so they can plan for when they need to turn in their notice. 

No understanding of the company culture

We have heard that culture is critical when finding a job, but all sources to assess culture have been labelled as unreliable. Interviews are biased in one way, while many feel that sites like Glassdoor are biased the other way, making it impossible to reach a genuine assessment.

“I think one of the hard things about finding any job when you are trying to consider work culture, is that it is very difficult to get any sort of real sense of work culture from an interview. Because you don't know what is put on versus what is real.”

“Yeah I did look at Glassdoor, but I have a hard time relying on it. You have to be a little bit careful. I feel like people just really post on Glassdoor when they're angry.”

THINK ABOUT:

  • What you can have on hand to give them more details about the company culture outside of interviews and their own research on employer review sites.     

IMPROVE THEIR JOURNEY BY:

  • Consider having a web page that’s behind a log in to provide answers to common company culture questions that you receive. For example:
  • Is risk-taking encouraged, and what happens when people fail?
  • How are decisions made when there’s disagreement?
  • What are some of the ways the company celebrates success?

Vague role descriptions

Inaccurate titles, inconsistent job requirements, and unrealistic asks when it came to years of experience were just some of the issues developers had with poorly written job descriptions. This trend of poor job descriptions was called ‘an epidemic’ by some we spoke with.

“I knew what kind of role I wanted, but there is no solid language that you would use like on LinkedIn, for example. Because I mean, if you think about the term 'cyber security', some companies use that term and some don't. So it was 'cyber security' for some, 'information security' or 'threat intelligence' for others. It's really up in the air, so you kind of have to manually go through and dig through every application and see who's looking for what. It's a very manual process.”

THINK ABOUT:

  • Interviewing a few new hires to understand how they found their roles and what they wish was explained better in the job description.    

IMPROVE THEIR JOURNEY BY:

  • Optimizing your job descriptions to appear more reliably when candidates search. Think of including alternate descriptions of job titles, technologies, anything that could have different descriptions between companies.

Difficulties in the negotiation process

This is something that developers and technologists deeply struggled with. From being able to assess their market value, to knowing what the company is offering, they found this whole process to be ‘unpleasant’, at best.

“I might have been able to negotiate a little higher than I did, but I thought maybe instead of negotiating, what I'm going to do is just come in and show them that I'm valuable and get a raise when I can.”

“Sometimes it’s just a fixed salary and you can’t negotiate. What’s difficult is when they don’t give you a benchmark for the position. So you don’t know - should the salary be 25k, should it be 50k?”

THINK ABOUT:

  • Being transparent with the salary ranges for a role.    

IMPROVE THEIR JOURNEY BY:

  • Telling candidates the salary range for the role and asking for their salary expectations up front.

By taking the steps to address each of these pain points in your recruiting process, you can better serve your candidates and make your company a more attractive place for them to work.

Using JTBD to improve your recruiting process

So, armed with data that showcases what jobseekers are looking for and the challenges they face, how can we use it to create a better solution to the job-hunting challenge? 

  • Help them find the right jobs easily
    Start by making it easy for jobseekers to find the right employment opportunities for their particular skill sets. Use job boards that enable developers to drill down by framework or languages used, location, years of experience, compensation, benefits, and other important factors. In addition to asking developers which tech they want to use, it can be helpful to use a tool that rules out developers who do not want to use specific technologies, too.

  • Give insight into what it’s like to work at your company
    They’ve also communicated that they want to gain a better understanding of both your company’s work-life balance and its overall culture. While encouraging employees to anonymously review your company on public forums like Glassdoor is a good starting point, it will also be valuable to create your own talent brand content including videos and blog posts from diverse employees’ perspectives that showcase what it’s like to work at your office.

  • Provide opportunities to communicate their skill sets
    Developers also want opportunities to showcase their abilities during the job search. Beyond simply asking them what technologies they’re familiar with, consider conducting coding challenges during the interview process that give them the chance to showcase their abilities, and include interview questions that give them time to talk through how they solved a particular coding challenge in detail in a previous job.

  • Give feedback, whether positive or negative
    After investing weeks or months into the job application process, developers find it frustrating when they get radio silence. Take the time to follow up with all of the candidates that you’ve interviewed and give them details on what you liked about them as a candidate, as well as the reasons why another candidate was a better fit.

  • Provide context to help them negotiate the right compensation
    Jobseekers are often frustrated with the process of determining salary, and failure to effectively negotiate can have major setbacks. Women tend to negotiate less frequently: A study found that women negotiated only 7% of the time, while men did 57% of the time. Providing salary transparency throughout the organization, with salaries based on a combination of skills and career stage, can help to level the playing field. 

What does success look like?

Our research found that success in the job search doesn’t simply come down to whether the candidate gets the job or not. If a job seeker feels like they are able to successfully navigate job boards to identify the right jobs for them at a company, understand the company culture, navigate the application process effectively, and receive clear feedback at every stage of the process, the job search is successful regardless of the ultimate outcome.

To ensure a successful recruiting process with a diverse and highly qualified applicant pool, it’s important to take a deep look at what’s broken in your current strategy. You may be losing out on strong initial applicants because they can’t find the right open role, or because they don’t have enough information about the company culture. Others may be dropping out along the way if they don’t receive enough feedback or are struggling with the negotiation process. In order to make sure that you can build a strong candidate pipeline that helps your company find the best possible candidate for each role, look for opportunities to optimize your hiring process at every step of the way.

Sign up to receive helpful content and resources from Stack Overflow