Skills

The Best Skills to Put on a Software Engineer Resume

The best skills to put on a resume are the hard skills the job posting asks for that you can back up with real work. For software engineers, that means named languages, frameworks, databases, cloud tools and testing tools, grouped into a few labeled lines. Soft skills like communication or leadership belong in your bullet points, where you can show them instead of claiming them.

Markus Fink

Reviewed by Markus Fink

Senior Technical Recruiter · Formerly Google & Airbnb

Last updated: October 2026 • 17 min read

What are the best skills to put on a resume?

Put the skills that show up in the job description and that you could talk about for ten minutes in an interview. Everything else is noise. For engineers that almost always means specific technologies, not general traits.

Most software engineer resumes need skills from these groups:

  • Programming languages: Python, Java, TypeScript, Go, C++, C#, Kotlin, Swift, Rust, SQL
  • Frameworks and libraries: React, Next.js, Node.js, Spring Boot, Django, FastAPI, .NET, Rails
  • Databases and data stores: PostgreSQL, MySQL, MongoDB, Redis, DynamoDB, Elasticsearch
  • Cloud and infrastructure: AWS, GCP, Azure, Docker, Kubernetes, Terraform, Linux
  • Delivery and tooling: Git, GitHub Actions, CI/CD, monitoring tools like Datadog or Prometheus
  • Testing: pytest, JUnit, Jest, Playwright, Cypress

You do not need every group. A frontend engineer can skip infrastructure. A data engineer probably has no use for a UI framework. Pick the groups that match the job, then pick the specific tools inside each group that you have actually used.

Here is what that looks like on a real resume for a backend engineer with three or four years of experience:

Technical Skills

Languages: Go, Python, SQL, TypeScript
Backend: gRPC, REST APIs, Kafka, PostgreSQL, Redis
Cloud and infra: AWS (ECS, Lambda, S3, RDS), Docker, Terraform, GitHub Actions
Testing and observability: Go testing, pytest, Datadog, OpenTelemetry

Four lines, about 20 items, and a recruiter can tell in a few seconds what kind of engineer this is. The rest of this guide covers how to build that list for your own role, how to match it to a posting, and what to do with soft skills. If your bullets don't mention these tools yet, fix that too: our software engineer resume bullet points guide shows how.

The best hard skills to put on a resume, by category

Hard skills are the teachable, checkable ones: you either know PostgreSQL or you don't, and an interviewer can find out quickly. For a technical resume they are what the skills section is for. This table is a starting list of common examples to pick from, plus what tends to go wrong in each category.

CategoryExamplesCommon mistake
LanguagesPython, Java, TypeScript, JavaScript, Go, C++, C#, Kotlin, Swift, Rust, Ruby, SQLListing eight languages when you write two of them every day. Put your strongest first.
FrontendReact, Next.js, Vue, Angular, HTML, CSS, Tailwind CSS, Redux, ViteListing React, Vue and Angular together with no project using two of them.
BackendNode.js, Express, Spring Boot, Django, FastAPI, .NET, Rails, gRPC, GraphQL, RESTWriting backend development instead of naming the framework.
DatabasesPostgreSQL, MySQL, SQL Server, MongoDB, Redis, DynamoDB, Cassandra, ElasticsearchListing databases as a skill. Name the engine.
CloudAWS (EC2, S3, Lambda, ECS, RDS), GCP (BigQuery, GKE, Cloud Run), AzureWriting AWS when you used S3 once. Name the services you actually ran.
Infrastructure and DevOpsDocker, Kubernetes, Terraform, Helm, GitHub Actions, Jenkins, Argo CD, Linux, BashClaiming Kubernetes because a platform team ran it for you.
Data and messagingKafka, RabbitMQ, SQS, Spark, Airflow, dbt, Snowflake, pandasMixing analysis tools (Excel, Tableau) into an engineering list without a reason.
Testingpytest, JUnit, Jest, Vitest, Playwright, Cypress, Selenium, k6Leaving testing out entirely. Many postings ask for it by name.
ObservabilityDatadog, Prometheus, Grafana, OpenTelemetry, Sentry, SplunkSkipping it at mid and senior level, where on-call and debugging production matter.
ConceptsDistributed systems, system design, data structures and algorithms, concurrency, cachingUsing concepts to pad the list. Add one or two only if the posting asks for them.

A few hard skills are assumed and rarely worth a slot: Git (unless the posting names it), Microsoft Office, VS Code, Jira, Slack, and "operating systems" as a general claim. They don't hurt much, but they push more useful items further down the line.

For deeper advice on specific technologies, see our guides on listing Python, AWS, Docker, Kubernetes, React and TypeScript.

Skills to put on a resume by engineering role

The best skills list depends heavily on which job you're applying for. These are example skills sections for common engineering roles. Treat them as templates: swap in your own stack and remove anything you haven't used.

Backend engineer

Languages: Java, Kotlin, SQL, Python
Frameworks: Spring Boot, gRPC, Hibernate
Data: PostgreSQL, Redis, Kafka, Elasticsearch
Infra: AWS (EKS, RDS, SQS), Docker, Kubernetes, Terraform

More in the backend engineer resume guide.

Frontend engineer

Languages: TypeScript, JavaScript, HTML, CSS
Frameworks: React, Next.js, Redux Toolkit, Tailwind CSS
Testing: Jest, React Testing Library, Playwright
Tooling: Vite, Storybook, Lighthouse, Figma (handoff)

More in the frontend engineer resume guide.

Full-stack engineer

Languages: TypeScript, Python, SQL
Frontend: React, Next.js
Backend: Node.js, NestJS, FastAPI
Data and cloud: PostgreSQL, Prisma, Redis, Docker, AWS, Vercel

More in the full-stack engineer resume guide.

Mobile engineer (iOS or Android)

iOS: Swift, SwiftUI, UIKit, Combine, Core Data, XCTest
Android: Kotlin, Jetpack Compose, Coroutines, Room, Espresso
Tooling: Fastlane, Firebase Crashlytics, GitHub Actions

Most mobile engineers lead with one platform. List the second only if you've shipped on it. More in the mobile engineer resume guide.

Data engineer

Languages: SQL, Python, Scala
Processing: Spark, Airflow, dbt, Kafka
Warehouses: Snowflake, BigQuery, Redshift
Formats and infra: Parquet, Delta Lake, AWS (S3, Glue, EMR), Terraform

More in the data engineer resume guide.

ML or AI engineer

Languages: Python, SQL, C++
ML: PyTorch, scikit-learn, pandas, NumPy, Hugging Face Transformers
LLM work: OpenAI and Anthropic APIs, retrieval-augmented generation, embeddings, pgvector, evaluation harnesses
MLOps: MLflow, Ray, SageMaker or Vertex AI, Docker

Split classic ML and LLM work into separate lines so the reader can see which one you've done. More in the ML engineer and AI engineer guides.

DevOps, platform or SRE

Languages: Go, Python, Bash
Infra: Kubernetes, Helm, Terraform, Argo CD, Linux, Nginx
Cloud: AWS (EKS, IAM, VPC, CloudFront), GCP
Reliability: Prometheus, Grafana, PagerDuty, OpenTelemetry, SLOs and incident response

More in the DevOps and SRE resume guides.

Security engineer

Languages: Python, Go, Bash
AppSec: threat modeling, OWASP Top 10, Burp Suite, Semgrep, dependency scanning
Cloud security: AWS IAM, GuardDuty, KMS, Kubernetes security
Detection: Splunk, SIEM rules, incident response

More in the security engineer resume guide.

QA automation engineer

Languages: TypeScript, Python, Java
Test frameworks: Playwright, Cypress, Selenium, pytest, JUnit
API and load: Postman, REST Assured, k6
CI: GitHub Actions, Jenkins, Docker

More in the QA automation engineer resume guide.

Student or new grad

Languages: Java, Python, JavaScript, SQL, C
Frameworks: React, Spring Boot, Flask
Tools: Git, Docker, PostgreSQL, Linux, JUnit

A new-grad list can be a little broader because coursework touches more languages. Every item should still appear in a project, internship or class project on the page. See the new grad resume guide and projects guide.

How to match your skills to the job description (and ATS)

The fastest way to find the right skills to put on a resume is to read the posting and copy its vocabulary, limited to what you can honestly claim.

  1. Collect three to five postings for the role you want. Highlight every named technology.
  2. Count repeats. If PostgreSQL appears in four of five postings and Cassandra in one, PostgreSQL earns the spot.
  3. Check the required section first. Required skills you have should all be on the page. Preferred skills are a bonus.
  4. Cross off anything you can't defend. If you would struggle to explain how you used it and why, leave it off.
  5. Use the posting's spelling. If it says Amazon Web Services, Node.js or CI/CD, write it that way.
  6. Repeat the top skills in your bullets. A skill that appears in the list and in an experience bullet reads as real.

Why the spelling matters: many companies run applications through an applicant tracking system (ATS). In Greenhouse, one of the common ones, recruiters can search resumes for keywords and run Boolean queries across candidates. A recruiter searching for Kubernetes is typing that word, so a resume that only says K8s may not come up. Writing the full term once, with the short form in parentheses if you like, covers both: Kubernetes (K8s).

This is also why keyword stuffing backfires. Getting past a search only gets your resume in front of a person, and that person will notice twenty tools with no evidence behind them.

Check it against a real posting

Paste a job description into our free resume keyword analyzer to see which skills and terms from the posting are missing from your resume. If you want a view of what to learn next for a target role, try the skills gap analyzer.

Tailoring doesn't mean rewriting your resume for every application. Most engineers keep one base version per role type (say, backend and platform) and adjust the skills order and two or three bullets per posting.

How to put skills on your resume: formatting the section

Group skills into labeled lines

Use three to five lines, each with a short label and a comma-separated list. Labels like Languages, Frameworks, Cloud and infra, Data or Testing are fine. Use whatever split makes your stack obvious. One long paragraph of 30 tools is much harder to scan.

Order by relevance

Put the line the job cares about most at the top, and the strongest item first within each line. For a Go backend role, Go comes before Python even if you've written more Python.

Keep it to what fits in a few lines

There is no correct number. For reference, Simplify counted skills on 75,308 resumes edited on its platform (users skew toward students and early-career technical candidates): the median was 15, the mean was 19.4, and 40% listed more than 20. In practice, 12 to 25 items across three to five lines works for most engineers. If you need a sixth line, some of those items probably don't belong.

Decide where it goes

  • Students and new grads: near the top, after education, because skills and projects carry most of the page.
  • Experienced engineers: either a short block near the top or at the bottom after experience. In the popular Jake's resume template, Technical Skills sits at the bottom, and that works fine when your experience bullets already name the stack.
  • Career changers: near the top, so the reader sees the technical skills before an unrelated job title.

Skip ratings, bars and logos

Star ratings, progress bars and percentages ("Python 90%") mean nothing to a reader and can confuse a parser. Logos and icons often don't come through as text at all. If you want to show depth, split into Proficient and Familiar lines, or let your bullets do it.

Keep the formatting plain

Use a single-column layout with real text, standard section names (Skills or Technical Skills) and the same font as the rest of the page. Our ATS-friendly tech resume template already does this, and the resume format checker will flag layout problems.

Hard skills vs soft skills on a tech resume

Hard skills are specific and checkable: Python, Terraform, SQL query tuning, iOS development. Soft skills are about how you work: communication, collaboration, mentoring, ownership, handling ambiguity.

Both matter to engineering teams, and soft skills carry more weight the more senior the role. The difference is where they go on the page. Writing Communication, Leadership, Team Player in a skills list tells the reader nothing, because every candidate can type those words. A bullet that shows you doing the thing is evidence.

Here is how common soft skills translate into engineering bullets. The numbers are illustrative; use your own.

Instead of listingShow it with a bullet like
CommunicationWrote the design doc for moving billing events from cron jobs to Kafka and walked four consuming teams through the cutover plan; all four migrated within the quarter.
Leadership, mentoringMentored two new-grad engineers through onboarding and their first on-call rotation; both were handling pages on their own within six weeks.
CollaborationWorked with product and support to rank the top 20 customer-reported bugs, then shipped fixes for 14 of them over two sprints.
Problem solvingTraced intermittent checkout timeouts to an exhausted Postgres connection pool; resizing the pool and adding a circuit breaker cut p99 latency from 2.1s to 380ms.
OwnershipTook over the search service after a reorg, set up its first SLOs and alerting, and cut the monthly page count from about 30 to 6.
AdaptabilityPicked up Kotlin to unblock the Android team during a launch freeze and shipped the offline sync feature in three weeks.

If a posting leans hard on a soft skill, say "strong written communication" for a remote role, make sure at least one bullet clearly shows it. That covers the reader and the keyword at the same time.

For the full method behind bullets like these, see the XYZ method and our resume bullet generator.

Weak vs strong skills sections

Weak

Skills: Java, Python, C++, JavaScript, React, Angular, Vue, AWS, Azure, GCP, Docker, Kubernetes, Jenkins, Git, Linux, MongoDB, MySQL, PostgreSQL, Redis, REST, GraphQL, Agile, Scrum, Microsoft Office, leadership, communication, problem solving, fast learner

What's wrong with it

  • No grouping, so the reader can't tell what this person mainly does.
  • Three cloud providers and three frontend frameworks, with nothing suggesting real depth in any of them.
  • Soft skills and Microsoft Office take up space that a real tool could use.
  • It invites the interview question "tell me about your Angular work", which may not go well.

Stronger (same person, applying for a backend role)

Languages: Java, Python, SQL
Backend: Spring Boot, REST, GraphQL
Data: PostgreSQL, Redis, MongoDB
Cloud and infra: AWS (ECS, S3, RDS), Docker, Jenkins, Linux

Stronger (same person, applying for a frontend role)

Languages: JavaScript, TypeScript, HTML, CSS
Frontend: React, Redux, Jest
Backend familiarity: Node.js, REST, GraphQL, PostgreSQL

Both stronger versions are shorter, but length isn't the point. Each one tells the reader what job this person is going for, and the leadership and communication claims move into bullets where they can be backed up.

Skills to leave off a software engineer resume

  • Anything you couldn't discuss in an interview. If a tutorial is your only experience with it, it doesn't belong in the list.
  • Generic soft skills like hardworking, detail-oriented, team player or fast learner. Show them in bullets instead.
  • Assumed tools: Microsoft Word, Google Docs, Slack, Zoom, VS Code, and usually Jira.
  • Stale tech that points away from the role: jQuery, AngularJS, SVN or Flash on a modern frontend application, unless the posting mentions maintaining them.
  • Vague categories: web development, cloud, databases, coding. Name the actual tools.
  • Skills added only for ATS that you've never used. You might match a search, but the first technical screen will expose it.
  • AI coding assistants as a headline skill. GitHub Copilot or Cursor on their own say little. If you built something with LLMs, list the APIs and techniques (RAG, embeddings, evals) and describe the project.

A shorter, focused list usually reads as more senior. It shows you know what matters for the job.

Make every listed skill show up in your experience

Recruiters use the skills section to check fit quickly. Hiring managers and interviewers use it differently: they look for each listed skill in your bullets and projects, and ask about it when they find a gap.

A quick check before you send the resume: take your top five or six skills and find each one in an experience or project bullet. If you can't find one, either add a bullet that uses it or move it lower in the list.

Listed but not shown

Skills line says Kafka, Kubernetes, Terraform. Bullets only mention "built REST endpoints" and "fixed bugs."

Listed and shown

Moved order events from nightly batch jobs to a Kafka pipeline consumed by three services, cutting the delay before inventory updates from hours to under a minute.

Wrote the Terraform modules for the team's EKS clusters and moved four services off hand-built EC2 instances.

If your resume already has the right skills but isn't getting responses, the problem may be the bullets or the layout rather than the keywords. Our guide to what technical recruiters look for and the common resume mistakes list are good next stops.

Check Whether Your Skills Section Holds Up

Upload your resume and see whether your skills are relevant to the role, grouped clearly, and backed up by your bullets and projects.

Drop your resume here

or click to upload (PDF only, max 10MB)

We'll analyze your resume and show you how to improve it

Frequently Asked Questions

Common questions about which skills to put on a resume as a software engineer

What are the best skills to put on a resume?

The hard skills the job posting asks for that you can back up with real work. For software engineers, that means specific languages, frameworks, databases, cloud tools and testing tools, such as Python, React, PostgreSQL, AWS and Playwright. Show soft skills through your experience bullets rather than listing them.

How many skills should I put on my resume?

There is no fixed number. For most engineers, 12 to 25 items grouped into three to five labeled lines is enough to show fit without turning into a keyword dump. Cut anything you haven't used or that doesn't relate to the role.

How do I put skills on a resume?

Make a section called Skills or Technical Skills and group items into short labeled lines such as Languages, Frameworks, Cloud and Testing. Put the most relevant line first and the strongest skill first within each line. Then make sure your top skills also appear in your experience or project bullets.

Should I list soft skills on a software engineer resume?

Usually not as a list. Words like communication or leadership are easy to claim and hard to believe on their own. Show them in bullets instead, for example by describing a design doc you wrote, engineers you mentored, or a cross-team migration you ran.

Where should the skills section go on a resume?

Students, new grads and career changers usually put it near the top, after education or a short summary. Experienced engineers can put a short block near the top or place it at the bottom after experience, as many tech templates do. Either works if the experience bullets already name the stack.

Can I list skills I only used in personal projects?

Yes, especially early in your career. Make sure a project on the page actually uses the skill, so an interviewer can ask about something concrete.

Should I rate my skill level on a resume?

No. Star ratings, bars and percentages are subjective and don't tell the reader much. If you want to show depth, split skills into Proficient and Familiar lines, or let your bullets show how much you've used each one.

How do I match my skills to ATS keywords?

Read the job description, note every named technology, and use the same spelling on your resume for the ones you actually have. Recruiters often search their applicant tracking system by keyword, so a resume that only says K8s may be missed by a search for Kubernetes. A keyword analyzer can compare your resume to a posting and show what is missing.

Should I put Git or Microsoft Office on a software engineer resume?

Microsoft Office, no. Git is assumed for most engineering jobs, so include it only if the posting names it or you have space to spare. Use the space for skills that tell the reader something about you.

Build a Skills Section That Matches the Job

Our builder helps you turn a long keyword list into a focused, role-specific skills section, with bullets that back each skill up.

Build Your Resume Now

Free to start • Built for technical resumes

See plans from $5/month
</> SWE Resume
Or continue with email