Software developers are key hires. You need outstanding technical talent on your team, but it’s tough to find the right candidates. In a survey of HR professionals, CodinGame found that 43% expect to have trouble recruiting DevOps positions and 41% have trouble finding back-end and full-stack developers.\nTech jobs, especially software positions, are increasingly in demand. As of December 2020, CompTIA reported 207,000 open information technology positions. Of those, 62,900 were developer job openings.\nIn this competitive job market, it’s tough to find an experienced developer with the skills and experience you need.\n\nWhat are a software developer’s job responsibilities?\nA developer is responsible for creating and maintaining software, which includes research, design, and testing applications. They should be able to write and understand specific coding languages. Developers are expected to consistently find ways to make software operate more efficiently, whether they or someone else wrote the code.\nIf that sounds like someone you’re looking for, a great job posting is vital.\nThe best developers have their pick of opportunities. As a hiring manager, you should know how to write a job posting that gets the right kind of attention.\nSoftware developer job description example\nGood developer job posting follow this basic template:\n \nJob description\nWe’re looking for a software developer to join our team. Our company makes cool products and does specific things, and you’ll be part of the driving force behind our mission to do stuff.\nAs part of our team, you’ll do super interesting work with minimal supervision. We’re looking for someone who’s passionate about this very important thing our company does. This role is full-time, which means 40 hours per week.\nAbout Our Company\nWe are Company Name, and we believe in things. Our offices are located in these places and cities, and our team either works remotely or it doesn’t. Our culture is important to us because of reasons. We have a mission to do things.\nOur company history is interesting. We started in Year to do very important things, and now we’ve grown according to these milestones and have accomplished some of our very important things.\nWhen you join our team, you can expect to be challenged to think in new ways and try new things. You want to work with us because we do awesome stuff.\nResponsibilities and duties\nYour day-to-day job looks like this:\n\nDevelop things in these coding languages\nLook for ways to make these kinds of products better\nWork with these teams in these ways\nStay on delivery schedules\n\nIn addition to these daily responsibilities, you can expect to do these things sometimes:\n\nTalk to clients or stakeholders about the things you work on\nAttend meetings and talk about these data points\nDo these things that everyone at our company has to do\n\nWe measure success in ways. Here are any other things you need to know about what we expect you to do at this job.\nRequirements\nThese are the things we need to know about you to consider you for this position.\nOur must-have requirements are:\n\nYou have experience in these coding languages\nYou have this kind of work experience\nYou know how to do this specific thing\nYou have these important qualities and characteristics that will help you do this job well\n\nThese things aren’t requirements, but they are valuable. If you meet these criteria in addition to the list above, you will probably be one of our top candidates.\n\nYou are good at using these less common tools\nYou know these obscure coding languages\nYou have experience with this specific use case\nYou have worked in our industry\nYou have worked with companies that are structured like ours\n\nPerks\nThese are the reasons you want to work for us. You’re obviously great at your job, so we know that you have a lot of choices about where to work. These are the things that you won’t find at other companies. We will pay you a fair amount. Our company culture has cool attributes that fit your personality. These are the things in our benefits package.\n\nUsing this template makes it easier to hit all the right points in your job posting.\nFeel free to tweak it and make it your own. For example, if you want to talk a little bit about your company in the introduction, that’s fine. You can also use a bulleted list to talk about the perks you offer for this position.\nKeep in mind that your posting should look different for each position and seniority level.\nA senior software developer job description might include a section about direct reports, management responsibilities, or key performance indicators.\nFor an entry-level software developer job description, you should be especially careful not to use acronyms or jargon that your candidates might not know yet\nHere’s an example of a job posting we used to find a QA engineer.\n \nDescription\nWe are looking for a Quality Assurance Engineer who will influence our engineering teams to deliver a high-quality product. You’ll be working closely with our engineers and product managers to write acceptance scenarios, create tooling and test cases.\nHubstaff is a time tracking, project management, and proof of work SaaS solution. We are on a mission to accelerate the digital transition of work and make it possible for even more kinds of work to be efficiently performed in a remote environment.\nYou’ll work 100% remotely. This is a long-term (years, our hope is forever) full-time (40 hrs\/wk) 1099 (hourly) contract role. We care about job security for our team and we’re looking for people who can grow with our products for years to come.\nOur tech stack:\n\nRuby on Rails\nRust\nAWS, Heroku\nPostgreSQL, Memcached, Redis, Solr\nGit\n\nWhat You’ll Do:\n\nProvide quality and usability feedback to the engineering teams.\nHelp to discover issues and monitor fixes, and perform regression testing.\nDesign test cases and write automated tests.\nMaintain and improve our automated test suites.\nHelp teams with test ownership, provide knowledge, explain best practices, and educate developers on using QA tools effectively.\n\nRequirements\nWhat You Should Have:\n\nExperience with test automation frameworks like Cypress.\nHands-on experience with Web and API test automation.\nAttention to detail and user experience.\nAbility to dive into exploratory testing and get a deep understanding of the product.\nHigh quality standards, but can balance quality, flexibility, and timely delivery.\nStrong experience using Git and Github.\n\nNice to Have:\n\nExperience working remotely.\nExperience with Ruby on Rails.\nExperience in testing mobile applications on iOS and Android.\nExperience with CI\/CD pipelines.\n\nBenefits\nDisillusioned with the grind of daily commutes and mindless work, our co-founder Dave Nevogt started his own business with a remote team. Yet managing this global team quickly became a challenge. He knew there had to be a better way to track hours, pay contractors, send invoices, and manage projects — and that’s how Hubstaff started.\nToday, our team runs on the Hubstaff platform, so we know what it takes to collaborate effectively with colleagues on the other side of the globe. It’s how we’ve continued to grow since 2012, and how we’ve helped customers do the same.\nNow Hubstaff is a remote-first team that consists of over 80 wonderful people representing over 18 countries. We are not afraid of sharing our KPIs: right now Hubstaff’s revenue is growing about 2% monthly.\nWe know the benefits of working from home and flexibly arranging work around our lives. Hubstaff is proud of its mission: help other people experience the same freedom and still effectively organize their work and reach business goals.\nWe also like to have fun while we work and our annual retreats are a big highlight of our year (when traveling is allowed…). Here’s a video from our last retreat: https:\/\/hubstaff.wistia.com\/medias\/9pyt01aemt\n\nNotice that we didn’t include a section just to talk about our company, but we did talk about our story in other sections. We highlighted our culture and work environment as the main benefit of working with us.\nWe also added a section about our tech stack. This is important information for a new developer on our team, and they’ll want to know that before they apply.\nWhat you should know before you start\nAn effective job posting follows these three rules:\n\nIt acts as an advertisement. A candidate should feel a strong sense of desire. They want to get this job.\nThe details speak directly to your ideal candidate. Try to speak their language and answer all of their most important questions.\nIt paints a clear picture. Top candidates must be able to picture themselves in this role. People who aren’t a great fit should have enough information to rule themselves out.\n\nYour goal is to attract the right developers while filtering out people who don’t have the necessary skills.\nExcellent developers won’t give your position a second thought if it doesn’t pique their interest and include the correct information. Remember that software professionals are in high demand, so the best have their pick of jobs.\nFor highly qualified candidates, your job description must give them a solid reason to leave a current position. Assume that they’re already working for a great company with competitive pay. What can you offer that’s better than what they’ve already got?\nNo pressure.\n “If the job post is not able to make the position seem like a great career move for candidates, they simply won’t apply.”\n\nMiguel Marques \/ Founder, Remote Crew \n\nLet’s break it down step-by-step. Here’s how to write a job posting that gets results.\nHow to write a winning software developer job description\nAs you write your job posting, think about the kind of team member you want to attract. What do they care about? It’s not all about you and what you want. They’re looking for something, too.\nDevelopers care about their work-life balance. They want to do interesting work and get paid well for it. Be sure to highlight these things in your posting.\nWhen you’re ready, start writing your web developer job description.\n1. Get organized with a solid outline\nBefore you outline your developer job description, write down your answers to these two questions.\n\nWho are you trying to attract?\nWhat do they need to know before they apply?\n\nMake a short list of things that the right candidate will want to know right away.\nCover technical answers that tell developers whether or not they can do a job, and include background information so they know if they want to do the job.\n\nYou’ll get more detailed in a few minutes. For now, jot down these high-level answers to help you focus on the most important things. Your list might look like this:\n\nWe use these tools regularly\nOur software is built with these coding languages and on this platform\nOur benefits package is more generous than other companies in our industry\nThe developer we hire will be responsible for a single product and will not do client work\nDevelopers at our company can work remotely with flexible hours\n\nNow, create the sections for your job posting. We recommend using this layout:\n\nSummary – This is a short description of the role. It should be informative and appealing enough to grab attention, but you don’t need to pack every detail into this section.\nWho we are – Tell potential applicants what you do and why. Talk about your history, culture, and mission. This is a great place to give more context about your industry and share details that make your open position more appealing.\nWhat you will do in this job – This section is your developer job description. What will your developer do at work every day? What do they need to accomplish to succeed? The details in this section should tell potential applicants why you are hiring for this position.\nRequirements and things you should know – Each of the things in this section tell a candidate whether or not they should apply. Explain what requirements a person must meet in order to be considered for this job.\nWhy you want to work for us – This is your chance to talk about all the perks and benefits you offer. Give the best candidates even more reasons to apply.\n\nYou don’t have to follow this order exactly. If you offer great perks, for example, consider moving that section to the top just after the summary.\nNow, go back to your first list of things a great candidate needs to know. Organize those points under the appropriate headings, and try to keep them close to the top. The things you included on that list are more likely to get someone’s attention.\nWith those pieces added to your outline, you’re ready to add the rest. Jot down some rough notes in each section to remind yourself what to include.\nIt’s okay if your outline looks a little rough right now. We’ll clean it up in the next steps.\n2. Write an attention-grabbing summary\nAn effective summary stops your top candidates from hitting the back button. It’s the first thing they see, so get to the point quickly.\nInstead of trying to write something catchy, focus on including all the right information. Share the most important details. If you’re looking to outsource rather than hire a full-time employee, mention that here.\nIt’s also a good idea to avoid jargon, acronyms, and overly formal language. There are two good reasons behind this.\nFirst, people should be able to find your posting.\nIf you use too much jargon or get too creative, it will be harder for the developers to find an opening like yours. Few people go to a job board and search “Multi-talented technical professional” or “Coding Ninja” to find a full-stack developer position. They search for a “full stack developer” posting.\n\nSecond, your candidate wants to know what it’s like to do that job.\nIf you use confusing language, it takes too much effort to figure out what you’re trying to say. They can’t picture themselves doing that work, and they won’t stick around trying to puzzle through your posting.\n\nThis description might confuse a potential applicant. Do they need a data analyst, a marketing specialist, or a junior developer?\nHere’s one last tip to make your summary stand out:\nLots of job postings talk about “the candidate.” For example, you might see a description that says “The developer will be responsible for our mobile application.” This is okay, but it dehumanizes your posting a little bit.\nTalk directly to the candidate. Instead of saying “he or she” or “the right candidate,” say “you.” This small change makes your posting more welcoming and relatable.\n3. Describe the job with a list of responsibilities\nWhen a candidate reads a job posting, they should be able to tell what the job is and whether or not they can do it. In this section, you’ll answer the first part of that question.\nMost of the time, this section is a list of bullet points that describe software developer’s day-to-day duties and responsibilities.\nYou don’t have to include most routine administrative tasks like filing timesheets. Just talk about the specific things you want someone in this role to do. Include relevant information about your tech stack, programming languages, and your work style. If you’re Agile, mention that.\nThe clearer your job description is, the more likely you are to attract quality candidates.\nWhat do developers want to know about a job? Miguel Marques from Remote Crew says that developers always ask these questions in interviews:\n\nDo you use Scrum? If so, how long are Sprints?\nWhat are your development practices?\nDoes your company have legacy code?\nWhat tech stack does your company use?\nWhat’s your company’s code coverage like?\nCan developers contribute to open-source projects?\nWhat environments are you using (testing, staging, beta)?\nWill your developer solve bugs or work on new features?\nIs your company using automated tests or continuous integration?\nWhat version is your control system (Git, SVN, Perforce, Mercurial)?\nAre there Sprint planning sessions and retrospectives? How long are sprints?\nDo you use Agile, Scrum, or another effective development methodology? If so, which Agile project management software do you have?\n\nYou don’t have to include all of this information in your job posting. It’s okay to save a few answers for the interview, but keep in mind that many developers will skip your opportunity if there’s not enough detail.\nHere’s an example of a responsibilities section that hits the right notes in a few bullet points:\n\nWith details like “the DevOps pipelines are created to run nightly automated builds\/deployments,” this description answers a lot of important questions that a developer wants to know.\nIn other words, the developer knows what they’ll do and how they’ll do it.\n4. Set realistic requirements\nIt’s tempting to exaggerate your requirements to increase candidate quality.\nUnfortunately, that tends to backfire. Instead of attracting overqualified candidates, you scare away the people who would be the best fit for your open position.\n\nGood developers know what it takes to do a job. If your requirements are over the top, that sends a message. They assume you are an overly demanding employer who probably won’t pay a fair price for good work.\nEven if you are willing to pay a competitive salary for a top-tier developer, you might have trouble finding someone with the exact set of skills and experience you want.\nIf you’re looking for someone with specific experience, but willing to work with someone who can learn on the job, make that clear.\nOne way to let potential candidates know the difference between your minimum requirements and your ideal is to add a “nice to have” section.\nHere’s an example of solid requirements and a “nice to have” section that isn’t over the top:\n\nThe priorities in this section are clear. The most important qualification is at least 5 years of C++ experience, and someone who satisfies the requirements in both lists knows that they are a top candidate.\n5. Present your company and its culture\nCompany culture is one of the top concerns when developers evaluate a new position. Before they apply, they want to know that a company is a good place to work.\nIn this section, prove that you’re worth the effort to apply. Talk about what you do, why you do it, and who you are. Share your mission; you might find people who are just as excited about it as you are.\nHighlight the best things about your culture. At Hubstaff, we talk about our virtual retreat. If your company is close-knit and often goes out for lunch or cooks together virtually, that might be something to mention.\n\nThis is a cooking class from our 2020 Virtual Retreat.\nGive specific, concrete details. Add more context by linking to articles on your blog so candidates can dig deeper into your company’s vibe.\nIf you’re not sure what to talk about, use these questions as a guide to help you get started:\n\nHow big is your team?\nHow formal or casual is your company?\nWhat’s important to your company? What does it stand for?\nWhy was this company founded?\nWhat cool things has your team accomplished?\n\nIf your company supports remote work, this is another place to emphasize that. Flexible working options are popular, especially for developers and other people who do focused individual work.\nHere’s a great example of a company showing off who they are:\n\n6. Showcase your perks\nA 2018 study by Appcast found that 70% of job seekers immediately look for salary information in a job posting. Money is the main reason that people are willing to leave their current position, and it’s the top motivator to apply for a specific position.\nIf you offer a competitive salary, mention it.\nBut don’t worry if you can’t compete with the most extravagant salaries at bigger companies. The study also found that postings that listed at least four non-cash benefits received 20% more applications.\nHere are some other perks that software developers want to see:\n\nRemote work opportunities\nTop-notch hardware and software\nBudget for industry events, workshops, or training\nFree or subsidized meals\nHealth and wellness benefits like insurance or gym memberships\nFlexible schedules\nAbove-average vacation or paid time off days\n\nHere’s an example of the perks section we use in our postings, just like the one at the beginning of this article.\n \nHubstaff is a remote-first team that consists of over 80 wonderful people representing over 18 countries. We are not afraid of sharing our KPIs: right now Hubstaff’s revenue is growing about 2% monthly.\nWe know the benefits of working from home and flexibly arranging work around our lives. Hubstaff is proud of its mission: help other people experience the same freedom and still effectively organize their work and reach business goals.\nEach year, our team members earn an annual Freedom Stipend. We encourage you to use your stipend to upgrade your equipment, take time off, or do whatever else is right for you.\nWe also like to have fun while we work and our annual retreats are a big highlight of our year (when travelling is allowed…). Here’s a video from our last retreat.\n\nRemember, this job posting is an advertisement. Every section should be packed with information that makes a developer want to click the Apply button.\nOnce you’ve written your perks section, go back through the rest of your posting and add details that you missed before.\n7. Get a senior developer to do a final review\nCongratulations! The hardest part is over.\nIf you’re not a technical person, this step is very important. Developers have little patience for slip-ups like this:\n\nOops.\nTalk to the most senior developers on your team to make sure you have included enough information about the technical requirements. They can help you to determine whether your position is realistic or if you’re asking for too much.\nIf you don’t have a developer on your team already, get an opinion from someone else in your network with technical knowledge.\nYou may be able to find help in a professional group on social media if you really don’t know anyone who can help.\nWhile you’re at it, proofread your posting. A typo can be the difference between “running a large team” and “ruining a large team.”\nWhile typos and little errors might not seem like a big deal, they can subtly hint that you’re not concerned about professionalism or attention to detail.\nNext steps\nYour job posting is ready. Congratulations! Here’s what you should do next:\n\nSave your template. You can reuse some of these sections later. For example, your company information can be the same in every job posting. Bookmark this article if you think you might hire more developers in the near future.\nLeverage LinkedIn. Since most developers know that their skills are in high demand, they’re less likely to frequent job boards. LinkedIn is a popular resource for developers who are open to new opportunities.\nGet ready to hire remotely. Remote hiring can be tricky. Check out our comprehensive remote hiring guide for help.\n\nWant more great advice like this? Subscribe to the Hubstaff Blog.\n\nDon’t miss out!\nGet the best leadership advice sent to your inbox.\n\n\n\n\nThis post was originally published in July 2019. It was updated in May 2021.