Developer Resume Structure

The below sections are part of Chapter 5: Resume Structure in The Tech Resume Inside Out book.

Structure with Work Experience

When you are no longer freshly out of school, follow this structure to make your resume easy to review.

  • Work Experience at or near the top of the page. Your current title, company, and past few years of work experience is something the recruiter and hiring manager will want to glance at. Make it easy by adding it to the top, or close to it.
  • Have a Languages and Technologies section on the first page that lists the relevant technologies. List things which you are an expert or, at the very least, proficient at. They could be domains, languages, or frameworks that the job description mentions. Don’t bother listing non-relevant technologies, or listing your skill level.
  • If you have spent a long time at one workplace, list out the key projects you shipped and the titles you’ve held there. Have you been promoted? Treat it as a new “sub-work” section, listing the projects you did at that point.
  • Education details become less important with seniority. For education, slowly reduce the length of this section, as you have more work experience. With 1-3 years’ experience, it's fine to have details on it, but with 5+ years, you'll likely just want to have your degree, date of graduation, and no more than one standout achievement, if it's still relevant. Summa cum laude can probably stay. GPA, courses, activities should all disappear.
  • Spend less space on old positions. For people with 10+ years of experience, your work experience beyond 10 years is less interesting. What you did then is not representative of what you do now, and there's little point in listing obsolete technologies. Shorten these sections, and consider removing or skipping ones that are not relevant—especially if you were job-hopping a decade back. The resume should sell you, not show every place you ever worked at.
  • Extracurricular. Add patents, publications, talks, standout open source projects, published projects, and other areas that could grab attention. In the case of open source and published projects, aim to be specific on why they are important. Close with hobbies and interests to make it personal. Keep the list of hobbies and interests short.
  • Certifications. If you have certifications relevant to the job or the industry, list them below your work experience. Companies that work with governments that require certain professional certifications might place more focus on these areas. Also, be wary of the potential negative perception from listing a trivial-to-get certification—such as a LinkedIn programming language certification, which is a series of a dozen questions that can be repeated at any time.
  • Projects: the more work experience you have, the less relevant outside-work projects tend to become. If you have something that really stands out, consider listing it under extracurricular, linking so that people reading the resume can inspect it. Use the results, impact, and your contribution format to explain why the project was relevant and impactful.
  • Interests: depending on the length of your CV, you can add a few fun things to make your CV more “human”. If you stick with a one-page format and you’re short on space, you can skip this.

From the inside out: what recruiters typically look for in a resume

Victoria Farelly, who recruited for Uber, Booking.com, and ING explains how what recruiters typically look for in a resume is usually an extension of what the hiring manager asked them to screen for:

A hiring manager will often say to you, as a recruiter: ‘I want these five things, and if a person doesn’t have these five things, I’m not hiring them.’ If you’re a good recruiter, you’re there to advise them on the market and advise them that we have enough resources to take someone who only has three or four of those five things. Perhaps we have the resources to train or mentor them. Or perhaps they'll just pick it up in the first month.

When the hiring manager is more flexible on the “must-have things”, you then look at if people have worked in similar environments, or on similar problems. For example, when hiring for Uber, you might look for signs that this person worked on something at scale. Did they work in multidisciplinary teams? What technologies have they been working with? And I’d look at not just your work projects, but also your personal ones. For example, if you’ve worked extensively with .NET at work, and knowing Java or Go is a must-have for the role, I’d expect to see some of those languages somewhere else, like in the projects or technologies section.

And I’d stress how what really makes you stand out is having a tailored CV for the position. If you are applying for 20 different jobs, you should have 20 different CVs. Each one should be different and specific for that role. And while this might sound a “bad” thing to do, it’s not. It’s a necessary thing to do.

For an actionable way to tailor your resume for a position, see the Keyword Check for That Position section within the Exercises to Polish your Resume section.

Languages and Technologies

“What languages and technologies is this person hands-on with?” This is one of the first questions recruiters and hiring managers have when they look at your resume. The easier it is to answer this question, looking at your resume, the better. There are a few common approaches in making this information clear— we’ll look at three different ones.

Approach #1: Separate Languages and Technologies Section

The most common approach is listing relevant technologies for the position that you are proficient in a separate section. People tend to give this section various titles: Skills, Tech, Tools, and many others. The name is less important; the contents are more so.

By moving the languages and technologies you use to a separate section, you make it easy for the recruiter and hiring manager to verify what overlaps you have with the role. You shouldn’t only list the technologies on the job advert, of course: but you shouldn’t go overboard, either. Only list areas where you do have enough knowledge to do work day-to-day. I usually advise against listing the level of expertise, unless you have extremely deep knowledge of a relevant technology. I advise against using a points system as well. Also, avoid listing trivial technologies or ones that are niche, and have nothing to do with the job. Same goes with applications that are trivial to learn. As always, use good judgment.

Even when having a separate section to call out relevant languages and technologies, do mention key technologies in your work experience when you talk about specifics. This information will reinforce that you have had hands-on experience with a specific language or a given framework.

Before and after: languages and technologies

This resume is sent for a job advert for a full stack position. The job advert listed that knowledge of at least one OO language is a must, ideally between JavaScript, Go, or Java. Experience with a popular frontend framework, ideally, React.js, is an advantage, as well as having designed APIs. While not in the job description, the engineering blog describes how this company runs most of its infrastructure off AWS.

Before:

Relevant Skills

  • Programming languages: Perl, C++, Java (expert), HTML5, CSS3, Bootstrap, JavaScript(ES6—proficient), React.js (expert), PHP
  • Databases: MySQL (expert), Oracle SQL, MSSQL (proficient)
  • Technologies: AWS, Bitbucket, GitHub, Visual Studio, MATLAB, Eclipse, Android Studio, phpMyAdmin, Adobe Photoshop, Oracle Fusion, Rational Rose, Sublime, Trello, Word

This section is a dump of all the technologies this person has touched in the past. Some of the listed ones include ones that are implicitly assumed—if you’ve used Java, you likely know how to use an IDE like Eclipse. And some technologies have no relevance: Rational Rose is a tool rarely used outside academia, and phpMyAdmin as a skill raises the question if you can manage PHP without a GUI interface. For Trello and Word: is there anyone who doesn’t know how to use these?

The person is also using terms like “expert” and “proficient”. This is a double-edged sword, as it implies that the person is not an expert in other languages. Also, talking with recruiters, the self-evaluation of people means little: several technical recruiters mentioned that people who rated themselves as an expert in a specific language would often get rejected based on not having enough depth, after being grilled in the depths of that language.

As a rule of thumb, avoid listing your expertise level. Instead, list only languages that you feel proficient with, and list your strongest languages and technologies first.

Improvement areas visualized:

Relevant Skills

  • Programming languages: Perl, C++, Java (expert), HTML5, CSS3, Bootstrap, JavaScript(ES6—proficient), React.js (expert), PHP
  • Databases: MySQL (expert), Oracle SQL, MSSQL (proficient)
  • Technologies: Trello, Word, AWS, Bitbucket, GitHub, Visual Studio, MATLAB, Eclipse, Android Studio, phpMyAdmin, Adobe Photoshop, Oracle Fusion, Rational Rose, Sublime, Trello, Word (either trivial or overly specific technologies)

After

Languages and Technologies

  • Languages: JavaScript, Java, HTML/CSS, PHP, SQL
  • Technologies: React.js, Bootstrap, AWS
  • Other: API design, relational databases, unit, integration & E2E testing (adding skills relevant for the job listing)

The revised version is far cleaner. The formatting uses tabs, making it easier to scan. The tools and applications that anyone can pick up in a matter of hours are removed. The list is more relevant for the job description, and the languages that this person was actually hands-on with.

After talking with the person, it turned out that they have not used C++ or Perl in years, and they rated themselves as very rusty in these. Removing “old” languages makes sense both because they are not relevant. Also, languages that are no longer used can contribute to age bias - recruiters subconsciously assuming the person applying must either be old, or reluctant to pick up new languages.

Approach #2: work experience conveying languages and technologies

Another approach is to explicitly call out languages and technologies used at each of your positions, and not have a separate section for this. This approach helps convey the recency of the technologies you used, as opposed to having a big list of technologies—some of which you might not have used in a while.

This approach helps convey the recency of knowledge in a particular technology. Hiring managers and technical recruiters will have a better understanding of how up-to-date you likely are with certain stacks. This approach can work better when applying for tech companies hiring generalist software engineers, where it can be an advantage to show that you have moved between languages and stacks in the past.

Software Engineer—Tax Returns
  • Led development of two separate third party interface development projects for two of our biggest clients with Microsoft and EPAM, which were completed on time with 45% cost reduction.
  • Automated error handling process of our restful API services that reduced one of our clients’ support ticket rate by 80%.
  • Technologies: Java, Swing, AWS, MSSQL
Software Engineer – Customer Happiness
  • Created troubleshooting tools that improved the support team’s efficiency by more than 30%.
  • Designed and developed the data receiving module of the mass transaction uploader platform, which is used to pre-process and clean data before generating transaction files.
  • Technologies: JavaScript, React, AWS, MongoDB

Weaving in the technologies into the descriptions is an approach that can also work well. It makes for a more natural reading experience. I would suggest to be consistent in where you mention the technologies, to make these easy to spot. Here is an example of this approach:

Software Engineer—Tax Returns
  • Led development of two separate third party interface development projects for two of our biggest clients with Microsoft and EPAM, which were completed on time with 45% cost reduction. I build the system using Java and Swing.
  • Automated error handling process of our restful API services that reduced one of our clients’ support ticket rate by 80%. Used Java and MSSQL, deploying on an AWS stack.
Software Engineer – Customer Happiness
  • Created troubleshooting tools that improved the support team’s efficiency by more than 30%. Built the tools with React and MongoDB.
  • Designed and developed the data receiving module of the mass transaction uploader platform, which is used to pre-process and clean data before generating transaction files. Used JavaScript / Node.js, deploying on AWS.

Approach #3: splitting out not-so-hands-on languages and technologies

The downside of having a list of languages and technologies is that it does not differentiate between ones that you are hands-on with, and ones where you would need a refresher. In this case, adding technologies that you are a bit more rusty with—but differentiating these—can be an option.

Here’s an example of this, where a person is applying for a position for a company that is heavy on Ruby. They’ve done this in the past and wouldn’t mind picking it up again, but their Ruby knowledge is not on the same level as JavaScript and Java, which they both use day-to-day.

Languages and Technologies
  • Languages: JavaScript, Java, HTML/CSS, SQL
  • Technologies: React.js, Bootstrap, AWS
  • Working knowledge of: Ruby, Rails, PHP

The chapter continues...

Get The Tech Resume Inside Out and carry on reading this chapter, with the sections:

  • Structure for Interns, New Grads and Bootcamp Grads: the experiences that catch the eyes of people reviewing CVs the most, in priority order.
  • Tell a Story: how to show progression and clarity in your resume.
  • The Summary Section this is a section rectuiters and hiring managers rarely read. There are some cases, where it's still worth adding it, though.
  • Structure for Senior and Above People: when you have several years of experience, there are a few ways you could consider “breaking” the previously suggested principles, to play to your strengths.
  • Recap: Actions to Improve Your Resume: Activities you can do to further improve your resume.

Get Your Copy Today
Book Readers work at