You’ve been charged with finding a back-end software engineer, pronto, but it’s been a while since you had to seek out candidates for the role, and the client was short on details. Perhaps it’s time for a refresher course on what the role does, and what kind of candidates you should be looking for.
You already know that a system’s architecture has a whole lot of layers between the hardware at the back of the ecosystem, and the end-users at the front. So, if you break those layers into two parts, you have a literal front end and a back end. And, the back is all about business logic of the system (e.g., the components of the software that most often live on the server).
Since back-end engineers are software engineers who specialize in the server-side components, they’ll likely have experience with C++, Java, Scala and Ruby, as well as a depth of knowledge of basic algorithms and data structures. Depending upon the industry and specifics of the role, an employer’s needs can be quite specialized, and a variety of responsibilities and skills beyond fundamentals would be required.
The job outlook for software developers in general, is excellent, with growth projected at 24 percent through 2026. More specifically, Dice currently lists more than 50,000 open positions across the U.S., for back-end software engineers and roles that are equivalent. According to In Dice’s 2019 Tech Salary Report, depending upon the city you’re hiring in, a candidate with five years of experience can expect a salary between $59,000 and $77,000 per year.
Introducing the Role to Candidates
First, speak directly to your back-end software engineer’s interests and position this job as the solution they’ve been looking for.
You could begin with: “You have a keen interest in system architecture, and a detective’s passion for investigating problems. You approach challenges and resolve them using best practices. With the goal of finding an integrated solution for any substantive complications that may arise, you utilize strong communication skills to engage the team, so you can work together to understand the root cause of an issue, and how it impacts the whole system.”
Present the challenge. For example: “On any given day you might be architecting new features for our customers, refactoring existing code to be more scalable, and seeing the changes through to completion in a live environment.” List the technologies the candidate will engage with on a daily basis.
Provide specifics about the company, e.g. what the critical mission is, what the environment is like, and what the employer cares about most.
For example: “We are looking for a back-end software engineer who is ready to join a stellar team working on (product area). You’re excited about launching our industry leading products and features, and want to contribute meaningfully to core systems, from design through implementation, helping us get to the next level of scalability and performance. You can also work autonomously, are excited by new technologies, and will never back down from the challenges of scale.”
Be methodical when listing the immediate duties and responsibilities of the back-end software engineer role, as well as its broader, long term ones. Begin this section with what is most important and continue the list in descending order.
- Build robust and scalable software in C++, Ruby, Scala and/or Java
- Design and create services and system architecture for your projects, and contribute and provide feedback to other team members
- Help improve our code quality through writing unit tests, automation and performing code reviews
- Participate in brainstorming sessions and contribute ideas to our technology, algorithms and products
- Work with the product and design teams to understand end-user requirements, formulate use cases, and then translate that into a pragmatic and effective technical solution
- Dive into difficult problems and successfully deliver results on schedule
Attracting the Right Back-End Software Engineer
What you bring to the table:
- 2-7 years of recent hands-on coding and software design
- Bachelor degree or more in Computer Science or a related field
- A track record of projects completed on time – you are a flawless executor, not a procrastinator
- You find satisfaction in a job well done and want to solve head-scratching challenges
- Solid OOP and software design knowledge – you should know how to create software that’s extensible, reusable and meets desired architectural objectives
- Experience with Java or Ruby, and the willingness to learn new technologies (experience with other object-oriented languages is okay too, but our code is Java, Ruby and Scala, so you should be able to get up-to-speed on at least one of them quickly.
- Experience with Linux/Unix and scripting languages like Python, Perl, shell scripting, etc.
Finish by peaking your back-end software engineer candidate’s interest in the company. List in-office perks, e.g. lunches, etc., educational opportunities, health and wellness benefits, time-off schedule and general compensation package.
For example: “Collectively, we’ve attended top schools like Stanford and Harvard, speak 10 languages (not including programming languages, of course), and are located in eight different locations (we have a distributed team). Of course, what is impressive isn’t where we are from or where we are now, but what we’ve accomplished. In the last year, we’ve shipped [insert your product here], which has garnered $[insert revenue generated] in revenue (or include some other metric, like how many customers use your product).”
To give you an idea of job titles in back-end’s arena, here are a few that cover the same or similar skill sets:
While the challenge to find and hire top level back-end software engineers will remain, your odds of successfully filling the role will increase if you know who to look for and how to attract them. By posting the position on Dice and using this template to start the process, you’ll go a long way toward reaching your hiring goals.
Return to Job Description Do’s and Don’ts or get great examples for other tech positions below: