Skip to content
Journal

Business · Hiring

Writing a Technical Job Description That Attracts Senior Developers

Most technical job descriptions repel the people they are trying to hire. Here is what senior developers actually look for, and how to write a posting that gets responses from the right people.

Anurag Verma

Anurag Verma

6 min read

Writing a technical job description that attracts senior developers

Sponsored

Share

Senior developers do not read job descriptions to get excited. They read them to find reasons to move on. By the time someone with 8 years of production experience opens your posting, they have read hundreds of others, and they can clock a generic description in about 30 seconds.

Most technical job descriptions fail for the same reasons: they are written by HR from a template, contain requirements that are obviously a wishlist rather than a real list, say nothing specific about what the developer will actually do, and bury the salary three clicks deep in an application form if they include it at all.

Here is what to do instead.

Start with what you are building, not who you are

The instinct is to open with a company description. “We are a fast-growing SaaS company on a mission to…” This is the part senior developers skip. They can read that later.

Open with the problem:

“We’re rebuilding our data pipeline from a fragile Python monolith into a service architecture. You’d own the migration plan and most of the implementation, working directly with our data team and one other backend engineer.”

That is a sentence a developer can evaluate. They know immediately whether this is a problem they find interesting, whether they have done something like it before, and whether the scope sounds right.

Compare it to: “We are looking for a passionate backend engineer to join our growing team and help us scale our platform.”

The second version is not wrong. It is just useless.

The technology section should be honest, not aspirational

Requirements lists are where job descriptions become fiction. A team that uses TypeScript, Postgres, and Docker will write a requirements list that also includes Kubernetes, Kafka, Redis, Elasticsearch, and strong familiarity with GraphQL. Those may be things you want to adopt someday. They are not what the developer will touch in their first year.

Senior developers know the difference between a real requirement and a wishlist. The wishlist is a signal that the role is not thought through, or that the team is fishing for a unicorn rather than a capable engineer who can learn what they do not know.

Write what they will actually work with on week one. Note what is planned or preferred but not required. Note what you are willing to teach.

You will work with: TypeScript, Postgres, Node.js, Docker, GitHub Actions Nice to have: Kubernetes, Redis, familiarity with stream processing

That is more useful than a 20-bullet requirements list and signals that you are serious about finding someone who fits, not someone who checked every box.

Five to seven requirements, maximum

Any requirements list past seven items is telling candidates something you probably do not mean to tell them: that the role is sprawling, the team has not decided what they actually need, or the hiring manager wrote the list without thinking about whether any one person could plausibly have all of it.

Five specific requirements that match the actual job beats fifteen generic requirements every time. “3+ years with React and strong understanding of rendering performance” is more useful to a candidate than “Strong experience with modern JavaScript frameworks.” The first one they can evaluate themselves. The second one means nothing.

On years-of-experience requirements: be careful. “10+ years of React experience” is a phrase that appeared in real postings in 2023 for a framework that shipped in 2013. Senior developers notice this. It signals either careless copy-paste or a genuine misunderstanding of the landscape. If you want someone with deep expertise, say what the expertise looks like, not how many calendar years it covers.

The 90-day question

One paragraph that describes what the developer will own in the first 90 days is worth more than a full “responsibilities” section of generic bullets.

“In the first three months, you would take over ownership of our authentication service — it needs a security audit, some performance work on the session management, and better test coverage before we expand it to support multi-tenancy. After that, you’d roll into our main roadmap, which for Q3 is focused on the API that our mobile clients use.”

A developer reading that knows what they are walking into. They can calibrate whether they have done something like it. They can ask specific questions in an interview. They cannot do any of that from “responsible for maintaining and improving our backend systems.”

What not to waste words on

Perks sections. “We offer unlimited PTO, a pet-friendly office, team lunches, and a $500 home office stipend.” These are not wrong, but they are not differentiating. Every tech company offers some version of this. Experienced candidates know perks lists do not tell you what it is actually like to work there.

Mission statements. One sentence is enough. More than that is the company’s marketing copy inserted into a document where someone is trying to make a practical decision.

“Team player” and similar. Any phrase that means “we want someone who does not cause problems” is not useful information. Everyone says this. If there is something specific about collaboration style that matters for the role, say that specifically.

The compensation question

Include it. A range is better than nothing. A specific number is better than a range if you actually have a budget in mind.

The argument against including it is usually about “flexibility” — you want to hire the right person regardless of where they land in a range. The argument for including it is that everyone is going to find out what the number is anyway, and filtering out candidates whose expectations are far outside your range is better done at the posting stage than after three interview rounds.

A developer who would have been excited about a $160,000 role but discovers in week four that the budget is $120,000 is now a developer who feels their time was wasted. That candidate tells other developers. Do not optimize the posting for candidates you cannot close.

The process section

One paragraph at the bottom describing the hiring process takes two minutes to write and reduces a lot of candidate anxiety. What are the stages? Who will they talk to? How long does it typically take? Is there a take-home?

Candidates who do not know what to expect will either drop off or spend interview energy on “what is going to happen next” instead of on the actual conversation. Transparency about process is also a real signal about the team’s organization.


For the screening and evaluation side of the process — how to run a technical screen that actually predicts job performance — we have written specific guides for hiring a React developer and the general framework for vetting any software developer. The job description is the first filter. The screen is what you learn after they apply.

Frequently asked questions

What should be in a technical job description?
The essential elements are: what the team builds and why it matters, the specific technologies in use (not a wishlist), what the developer will own in the first 90 days, who they will work with, what the hiring process looks like, and compensation or a range. Everything else is secondary.
How long should a job description be?
Short enough that a senior developer reads it in under 3 minutes. That is roughly 400 to 600 words. Beyond that, signal-to-noise drops and the people you most want to hire stop reading. If you feel like you need 1,200 words, the role is probably not scoped well enough to write clearly about.
Why do senior developers ignore most job postings?
Because most postings read like a copy-paste of every other posting, use vague language like 'fast-paced environment' and 'team player,' list technology requirements that are clearly a wishlist rather than actual needs, hide the compensation, and spend more words on perks than on what the job actually involves.
Should I include salary in a job description?
Yes. Candidates who find out the salary during offer stage are candidates who wasted your time (and theirs) if the number is wrong. Compensation transparency also signals confidence in your offer. Pay bands are fine if you genuinely have flexibility — a specific number is better if you do not.

Sponsored

Sponsored

Discussion

Join the conversation.

Comments are powered by GitHub Discussions. Sign in with your GitHub account to leave a comment.

Sponsored