11 must-haves in your vacancy for software engineers

Dmytro Striletskyi
5 min readFeb 6, 2021

There are many vacancies for software engineers that are unsuccessful. The right information is missing and job seekers sometimes don’t see a good company, interesting projects, and employee benefits.

I am a software engineer and team leader. Furthermore, I have experience with creating vacancies and hiring software engineers. I just want to share my opinion about how a vacancy for a software engineer should look.

Mostly, it’s applied to start-ups and product companies. It’s not applied to big tech companies because with zero words in their vacancies they will have thousands of applications.

Bad Vacancies

A bad vacancy does not contain information that helps a software engineer to understand if a job fits them. Also, there is a lot of «noise» in its text.

What it brings to a company:

  1. A part of potential candidates just ignores these types of vacancies. Even if their values and desires match what a company offers. The company loses candidates.
  2. If a candidate’s values and desires do not match what a company offers, they should know about this at the moment they read a vacancy. If a candidate stops the interview process because of the information that could be mentioned in a vacancy, the company loses resources.
  3. A bad vacancy is placed on the paid job-seeking websites for the longest time. A company loses resources.

Good Vacancies

A good vacancy contains information that helps a software engineer to understand if a job fits them. A good vacancy is like a film where you get to know a company, its product, and empathize with its achievements and goals. A good vacancy is like a story where you meet a job-seeker who is going to apply to the vacancy, embracing their new opportunities and progress.

Vacancy Structure

Below, the difference between bad and good vacancy based on examples is present.

A product. Talk about a product like a candidate is five years old. Especially, when a product is something hard to understand such as cryptocurrencies or a specific B2B field.

Bad vacancy example: the world’s leading deliverer of groceries.

Good vacancy example: EasyFood — the mobile application where a person can order a delivery of groceries from a favorite shop to their home. The person chooses certain products, the order is picked up by a courier who goes to the shop to collect the order and deliver it to an address. Our end users are both people who want delivery and couriers who handle it. We have a partnership with Walmart, Spar, Lidl, Auchan, and much more. Our goal is to make the delivery of groceries fast and accessible.

Achievements, numbers. Show what a company has already achieved and what its future goals are.

Bad vacancy example: unspecific.

Good vacancy example: we have 2 million users, and we had 15 million deliveries last month. The next quarter goals are: decrease time to a house by 20% to 40 minutes and have 20 million deliveries per month.

A team. Say who else is working in a company.

Bad vacancy example: talented and friendly colleagues.

Good vacancy example: the product has been done by a few teams (50 employees in total): front-end team, back-end team, business analytics, data scientists, mobile software engineers for iOS and Android, product and project managers, founders actively participate in all processes. You will be involved in data science development among 4 team members. Daily communication with the other teams is also a part of the role.

A culture of a technology stack. Each vacancy contains a list of technologies used in development but by looking through this kind of list you cannot understand the technical culture of a company.

Bad vacancy example: unspecific.

Good vacancy example: we do 100% coverage of our code with pytest; we develop 25 microservices written in Go, Python, and Java running in GCP with Kubernetes; we host code with GitHub.

Requirements. Specify clear and real requirements for a candidate.

Bad vacancy example: write code with Python, Django, PostgreSQL; develop microservices; be responsible.

Good vacancy example: know Python (not just frameworks), have experience writing web-services and RESTful API; have experience scaling databases; have experience monitoring and profiling SQL queries; understand pros and cons of a microservice architecture; can solve a problem from collecting requirements to running in production.

Will be a plus. Mention what skill sets you value besides the main requirements for the case that a candidate doesn’t fit some of them.

Bad vacancy example: unspecific.

Good vacancy example: experience in product companies; have open source projects or contributions; have at least an Advanced (C1) English level.

Goals, tasks, responsibilities. Don’t forget to include the goals, tasks, and responsibilities of a role.

Bad vacancy example: interesting projects.

Good vacancy example: develop an algorithm for searching nearest couriers to pick up an order; implement grocery recommendation system; support AWS (ECR, EKS, Lambda) infrastructure; participate in technical discussions (feature kick-offs, design, and architecture).

Conditions. Show your care for employees.

Bad vacancy example: talented team, flat organization structure.

Good vacancy example: you can choose technologies and methodologies on your own, we don’t have managers on top of developer teams.

Salary. Let your candidate know about a company’s budget for a role. Save their time as they can already have a bigger salary than you might propose. Furthermore, if a salary is lower for a probation period, don’t forget to mention this.

Bad vacancy example: not specified or specified with huge range (such as $2–6K monthly). This is a signal to a candidate that a company may not be fairly valuing its employees.

Good vacancy example: always specified, not a huge range (such as $2.5–3.3K monthly).

Steps after an application. Tell a candidate what will happen after they apply for a job. Especially, when one of the interview process stages is a home task.

Bad vacancy example: unspecific.

Good vacancy example: you apply a resume; it will be checked by technical specialists; if your skills fit our needs, we will have a call clarifying expectations and values; if they match with companies expectations and values, you are invited to a few entry interviews checking your algorithms and data structures knowledge; the last stage is a behavioral interview with a product manager.

References. Introduce a candidate to the company and technical cultures.

Bad vacancy example: unspecific.

Good vacancy example: you can find an introduction to what we are running by the company’s CEO here (put a link); check out our Medium blog (put a link) where our software engineers write about engineering challenges in their daily work.

Conclusion

Writing a good vacancy is hard. It takes the time of software engineers, product and project managers, recruiters. It takes time to write text. Furthermore, it requires a certain openness, awareness, and company and engineering culture.

Thank you for your time. If you have any questions, suggestions, or topics to discuss, feel free to write a comment.

--

--