Dedicated Teams

How to Hire a Software Engineer: A Practical Guide for Startup Founders

A practical, step-by-step guide to hiring software engineers and growing software engineering teams effectively

Hiring software engineers is hard work. Whichever way you look at it, hiring the right person for your team — in terms of hard skills as well as culture — is complicated, time-consuming, and expensive. Throw in the fact that demand for engineers is at an all-time high, and your budget as a startup is small... and you have a recipe for a nightmare.

I get it. I’ve been there, and I made plenty of mistakes before learning how to source the right people effectively. I wrote this article to help you if you’re a startup looking to hire developers on a budget. In it, I’ll outline the approach I’ve developed that’s helped me hire engineers twice as fast as I used to and cut my hiring costs by 30%. There will also be many examples throughout the article so that you can better fit this guide to your particular case.

In this article, you’ll learn a whole lot of “how-tos”:

But let’s start at the beginning.

Who do you want to hire?

Step 1: Identify your hiring requirements and candidate profile

The more time you give to prepare for your hire, the higher your chances of success. The first step is to build a candidate profile. So you’ll have to clearly outline the skills, knowledge, and experience needed from your candidate. For example, think about:

At this stage, let’s focus on hard skills. For example, let’s say your goal as a startup is to build an MVP for a web project. This will require both backend and frontend development.

Since this is a web project, you can use one of the popular technologies such as Angular, React.js, or Vue.js for frontend development. For the backend, any of the popular languages and frameworks such as Node.js, Django, Ruby on Rails, or even Golang will work. This means that you have two options: hire one backend and one frontend engineer, or hire a full-stack engineer who can do both front and backend development.

Hiring two engineers to build a small MVP might be overkill because a frontend engineer might get stuck waiting for a backend engineer to produce an API. Believe me, at this stage, it’s more reasonable to have one person who can do both.

You also want to hire a senior engineer. Why senior? First, because you want to build a product fast, you'll need someone who knows how to build end-to-end solutions. Second, you expect them to be proactive and comfortable at suggesting technologies and architecture. Finally — and most importantly — they need to have knowledge of cloud services like AWS or GCP, where you will be hosting your web app.

Once you’ve established a basic profile like this, think about the successful outcomes you expect from the position. This will help you define additional skills needed to achieve that outcome.

To determine successful project outcomes and requirements for the role, ask yourself:

Step 1 wrap-up

The outcome of this step will be a detailed picture of the candidate you want to hire in terms of tech competencies, experience, and responsibilities. You’ll also be clearer on the concrete goals you aim to achieve through the hire. The more time and effort you put into this stage, the better your chances of getting a good hire.

Once you’re done, it’s time to see how the software engineer job market looks.

Step 2: Analyze the engineering landscape

As long as finding a good engineer is as hard as finding a good pizza, the next step will help you at least to decide which part of the haystack you’ll focus on. Our goal at this stage is to analyze the job market and levels of technology adoption to get a better idea of market demand, how many engineers are available, and how hard it will be to hire.

Study market trends

An overview of market trends will key you into the demand for specific technologies. The greater the demand, the more competition there is for candidates, which pushes up salary levels.


The best place to get started with studying the software engineer job market is to review some recent research. Most big tech industry players put out research and reports like this each year. For example, here are some insights from the 2021 State of Software Engineers report from hiring platform Hired.com:

Recent reports on diversity in tech hiring, such as this data, show that men represent 91.5% of the software development community, while women make up just 8.5% of IT staff.

Job sites such as Glassdoor and LinkedIn, as well as business reviews, also publish overviews of market data, such as this Glassdoor report on how more than three in four people consider diversity important when deciding where to work. This Forbes article also reports that diversity can drive growth.

Based on this analysis, we can see that

Compare technology adoption levels

Technology adoption levels give you an idea of how difficult it will be to find a software developer with experience in a particular technology. This can influence the tech decisions you make for your hiring project based on your budget.

Here again, industry reports are a great resource. Let’s use the 2020 Developer Survey from Stack Overflow as an example. In our hypothetical hiring case, you’ve decided that you could go with Angular, React.js, or Vue.js for your frontend.

Popular web frameworks

From this chart, we can see that finding a Vue.js engineer will be twice as difficult as finding a React.js engineer and 1.5 times more difficult than finding an engineer with knowledge of Angular.

Now let’s look at the trends for specific technologies and levels of technology adoption.

According to the report, the demand for specific frontend engineers is growing. For example, the demand for React.js, Express.js, Angular, and Typescript has more than doubled. The same goes for DevOps engineers, which have seen a 2.7x growth in demand for Google Cloud and AWS, and 2.2x for Terraform. This indicates that the competition for engineers with frontend and DevOps skills is higher. As a result, it will be harder to find a software developer with these skills, and salaries will be higher.

Given all this, it makes sense to go for React.js for your frontend, as it fits your project goals, and skills are more available than others, so it will be easier and cheaper to find a React engineer. As for the backend, Node.js makes sense as it’s widely adopted.

In general, aim to avoid new or trendy technologies, especially if you’re building an MVP. This is good practice because:

Step 2 wrap-up

A bit of market research can go a long way to narrowing down your candidate profile. By now, you have a better idea of what your hiring approach could be and how hard it will be to hire for different skills. Stats show that the demand for skills we are looking for has more than doubled, so we should expect higher competition this year.

Step 3: Compare salaries

Steps 1 and 2 have narrowed down your search to a developer with React.js and Node.js skills. Market research shows a general trend toward hiring remote workers outside the main tech hubs, though you might not be sure yet that it’s the right choice for you. The next step aims to scope salary expectations in different locations to find out where your ideal candidate could be located.

The annual Hired State of Software Engineers report we saw in Step 2 includes an overview of salaries offered to top talent in different roles and markets, based on data from hundreds of thousands of interview requests and job offers. The 2021 report also reveals the impacts of the COVID-19 pandemic on the engineering community and analyses which skills and roles have seen higher demand as a result.

In this hiring example, you’re looking for a senior full-stack software engineer with five or more years of experience. Here’s what the report has to say about the average salaries in the most popular tech hubs:

What’s more, in 2020, average payrolls for software engineers rose by 5-7% in major IT hubs like the Bay Area, Boston, New York, and London, making hiring software developers even harder there.

Let’s say that hiring at these prices is beyond your budget, and you need another option. A quick internet search will show several destination options like South America, Europe, India, and Southeast Asia. India and Southeast Asia won’t suit because of the time zone. Let’s have a closer look at remaining South America and Europe and analyze the salaries on the market.

For country-specific searches, local job portals are a good place to start. Let’s take Ukraine, Poland, and Argentina as an example:

The same salary in Warsaw, Poland, is $56,000 based on results from nofluffjobs.

With this data in mind, hiring a remote senior engineer in Eastern Europe is a cost-efficient option. Working with a full-stack software engineer in Eastern Europe will cost you between $40,000 and $56,000 per year.

Lower software developer salaries in Eastern Europe can be particularly attractive if you’re a startup founder looking for specialists to build your first MVP on a limited budget. And Eastern Europe is a proven destination with highly skilled experts.

Step 3 wrap-up

Researching current salary offers will help you decide whether your budget is reasonable and how many developers you can afford to hire. Talent outside the major hubs is obviously cheaper. When considering alternatives, look at country-specific hiring portals to better understand what expectations could be. This is tedious, so I’ll save you some time by listing the most trusted resources for each country respectively.

You can read our detailed guides on developers salary in the US, the UK, and Europe.

Step 4: Check talent availability

So let’s imagine you’ve opted for a remote hire in Eastern Europe and have narrowed down your search to Ukraine and Poland as possible choices. Which country should you choose?

One way to decide is just to find the biggest talent pool for your job profile, which means looking at the number of engineers available in each location. You can do this by researching market reports and statistics or using a general recruitment resource like LinkedIn.

Searching for “software developer” in People on LinkedIn and using a country filter gives some rough statistics:

Next, let’s see the availability of engineers with specific skills using LinkedIn. This tells us:

One more thing before making a final decision is to look at the level of competition for talent. It’s better to hire in locations with more talents as this increases your chances of hiring. If you want to hire in locations where there’s a high demand for engineering roles and not enough talent available, you’ll most likely have to offer a bigger salary. For example, in places like San Francisco, there’s a huge demand for engineers from startups. You’ll also have to compete with big players like FAANG, which provide high salaries and benefits.

Based on this data, both countries have a large pool of tech talent, which will allow us to hire fast and grow the team in the specific location later. In this case, our choice will come down to Ukraine because of the large number of React.js developers to select from.

Step 4 wrap-up

This step helped you decide where to hire an engineer based on the number of workers available, competition for talent, and expected salary level. This is also the time to factor in any other things that could be important for you, such as time difference and cultural fit.

By now, it should be clear where you’ll be focusing your job search, and you’ll be ready to post your job. Once you’ve done that, the next step is to outline your hiring process.

Step 5: Build your hiring funnel

It’s time to look at what the hiring process looks like. We know how badly you want all your hiring efforts to be rewarded by success. But there is no other way than to take your time and use a comprehensive approach to build this process correctly.

At this stage, we’ll show you how to determine your hiring funnel, what are the main elements of the hiring process, and how to measure their effectiveness.

A basic hiring funnel

A hiring funnel represents the hiring process in the form of the series of stages through which your candidates pass as the employment progresses.

basic hiring funnel

The funnel might look different from company to company and even candidate to candidate, but generally, there are five main stages:

  1. Sourcing and selecting. Once the job requirements are settled, and the vacancy is published on job portals, you can form a list of potential fits and select the most promising ones from the pool of applicants.
  2. Screening. This is an initial assessment on a call with the recruitment or HR specialist to see which candidates meet the role requirements well.
  3. Interviewing. This is usually carried out by HR and an in-house field expert to further evaluate the personality and technical background of a candidate. Depending on the job, it might include a test assignment.

Tip: Many companies do a technical assessment first and then a culture fit interview at the end. I would recommend to do a general screening first to assess if there’s a mutual fit with the company and set up a technical interview if it is. This is because a technical interview is the most complex part and usually takes up valuable engineer’s time. General screening, on the other hand, can be done by HR.

  1. Making an offer… or not. Based on the outcomes of the interview and the test task, you might decide to offer the candidate to join your team — or part ways.
  2. Negotiating the deal. Sometimes, a candidate might want to reconsider the paycheck or ask for extra benefits — or you might decide to add some sweeteners to seal the deal.

Once you have an understanding of your funnel, it’s a good idea to add information on who is responsible for each stage or decision and how long you expect each stage to take. Anyone on your team looking at this funnel should understand how your recruitment process works. This helps to align your team on the hiring process.

Recruitment metrics

Now you’ve created your funnel, the question becomes: does it work? In other words, how can you know that your hiring process is effective?

There are several important metrics you can track:

You can calculate the cost per hire with some simple math. Imagine you’ve calculated the following time estimates for your funnel:

Step 5 wrap-up

A basic recruitment funnel monitored with some simple metrics saves you time and gets you clear on whether your recruitment process is working efficiently. Formalizing your funnel as a roadmap with clear responsibilities and time/cost expectations will keep everyone in your company on the same page when it comes to hiring processes and success.

Once your funnel is in place, you can look at optimizing it to get even more cost and time savings.

Step 6: Optimize your hiring process

This step aims to discover how to hire effectively and optimize hiring costs, which often appear to be too heavy.

As a general rule, unless you’re Google and have the luxury of developing a long and multi-step hiring process, short and simple is best. If your recruitment process is slow, you risk losing candidates, as the demand for engineers is always high, and candidates usually have multiple interviews on the go.

Ask yourself:

Factor in that a longer process creates more hours of work for your engineers and people ops — and therefore costs you more — and you can see why a shorter process makes sense.

Here are some tips to optimize your recruitment funnel and keep things on track:

Have a clear budget with a contingency plan for over-the-budget hire.

I recommend you plan for one over-the-budget hire and decide how much you’re prepared to spend. For example, if your budget is $4000-5000/month, you could allow for one engineer to go over that up to an extra $1000 a month.

Alternatively, you can distribute any over-the-budget hires between the remaining hires. As an example, imagine you’re recruiting a team of five engineers with the same budget as above. If you hire one engineer for $6000, you’ll need to spread the extra $1000 expense between the other four hires. $1000/4 = $250, so the budget for the other four hires becomes $3750-$4750.

Timebox the interview session and prepare questions in advance.

Don’t spend two hours talking when 30 minutes is enough to evaluate your candidate. Be consistent with your recruitment process and avoid creating extra steps or sessions.

Decide quickly.

I recommend to decide on the next steps within a day. This is not just about giving candidates a quick response: as time passes, memories of the interview fade, and you become less able to make a confident decision. It’s also important for the next point.

Close fast.

If all goes well and you think the engineer would be a great fit, send an offer as quickly as possible. Always remember that the candidate is probably going through other interviews, and while you’re thinking about things, another company may be making a better offer. Expect a reasonably fast decision time from your candidate too: state that the offer is valid for 1-2 days if you haven’t already done so.

Step 6 wrap-up

The basic strategy is to keep things short, know who is responsible for each step, have a budget, and a well-defined plan for acting in exceptional situations, like going over the budget. If you do go over budget, plan how you’ll compensate in the budget for any other hires.

Avoid common pitfalls

These six steps are the basic process I use for efficient hiring. This process didn’t come about without a lot of mistakes and scraped knees along the way. Here are some common recruitment pitfalls, along with how to avoid them.

Trying to find the perfect candidate

Don’t try to get a 100% match with your candidate profile, as this can really slow you down, and the perfect candidate may not even exist. What’s more, by focusing on getting a perfect match, you might be passing over relatively good matches that would become a great fit with time.

Decide which skills are critical from day one and which skills could probably be learned fast on the job.

Not assessing for culture fit and motivation

To become a valuable member of your team, the candidate has to share your company’s philosophy, and your goals must align. During the hiring process, make sure that you have a conversation with the candidate to check for culture and company fit.

Basically, you need to consider candidate motivators such as challenges, growth opportunities, and status alongside your company’s motivators, such as what you’re building and what you need. A good starting point is the list of hiring outcomes you outlined in Step 1.

Candidate company fit

If you do end up hiring someone with great technical skills but poor culture fit, consider saying goodbye to them pretty fast. A proper fit will get you a lot further as a company.

Focusing on years of experience

Just because a candidate has many years of experience doesn’t mean that those years are particularly rich. For example, a candidate with ten years of experience in working with Python on a single project might have been doing support and minor bug fixes with little skills development, while on the other hand, a candidate with just three years of experience might have worked on multiple projects and gained a broader and deeper skill set.

Hiring only by reference

It's a mistake to only hire people who are referred to you. It might feel safer, but it can create problems down the line if the person doesn’t fit. It may be difficult to let the person go because you risk damaging a relationship with the person who gave you this reference. By focusing only on referrals, you also miss the opportunity to see what others can offer you, and you aren’t able to see the bigger picture.

Review of the hiring process

This article looked at six steps to hiring a software developer effectively. These are:

  1. Establish the candidate profile: who you need to hire, and the necessary skills.
  2. Scope market trends to get an idea of hiring difficulty and see where your efforts will be best focused.
  3. Compare salaries for similar positions to establish a realistic hiring budget.
  4. Look at viable locations based on your budget and the availability of tech talent.
  5. Build an effective hiring funnel that outlines the stages of your hiring process.
  6. Optimize your funnel to keep costs down and your hiring on track.
Review of the hiring process

If that seems like a lot of work… well, it is. If you’re a startup founder or CTO, CPO, or engineering manager focused on building a product, it’s normal if you don’t have time to cover all the bases. This is where outsourcing some or all of the steps can make sense.

There are basically three alternatives to doing all the work yourself:

  1. Hiring a recruiter to help you source candidates that you can interview yourself.
  2. Hiring a recruitment agency to help you close vacancies.
  3. Working with a local hiring partner. I think it’s the best option, and below I’ll explain myself.

The benefits of working with a local hiring partner

I recommend working with a local hiring partner as the best way to mitigate the risks and overcome the challenges of hiring a software engineer. Call me biased — obviously, I am! —

but this is exactly what we are doing at Altigee, helping startups and companies with their hiring needs.

Just think about how a local partner can help you with:

At Altigee, we specialize in extending in-house teams with remote talent or building an engineering team from scratch. We have the power and daring to take on your next project fast.

Sounds good? Let’s talk!

Share:

Read Next

Written By

Altigee helps startups and tech companies build remote engineering teams or extend their existing teams with senior tech talent. For the past 4 years, we helped our clients to hire 200+ engineers.

More from
This Topic

Related read
How to Build and Structure a Great Product Team