Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Listing Technical Skills on Your Resume

Your technical skills section is a quick reference for recruiters and a keyword goldmine for ATS systems. Here’s how to get it right.

Structure Your Skills Section

Group skills into clear categories. Use horizontal lists separated by commas or vertical bars.

Languages:    Python, Java, C++, JavaScript, TypeScript, SQL, Go
Frameworks:   React, Node.js, Express, Django, Spring Boot, Next.js
Databases:    PostgreSQL, MongoDB, Redis, MySQL, DynamoDB
Cloud/DevOps: AWS (S3, EC2, Lambda, RDS), Docker, Kubernetes, CI/CD, Terraform
Tools:        Git, GitHub, Jira, Figma, Postman, Datadog
Concepts:     REST APIs, Microservices, System Design, TDD, Agile/Scrum

Category Naming

Use clear, standard category names:

  • ✅ “Languages” or “Programming Languages”
  • ❌ “Coding Skills” or “Things I Know”
  • ✅ “Frameworks & Libraries”
  • ❌ “Technologies” (too vague)
  • ✅ “Cloud & DevOps”
  • ❌ “Other Stuff”

What to Include

Programming Languages

List languages you can confidently use in an interview setting. The rule of thumb: if you can solve a LeetCode medium in it, list it.

Ordering: By proficiency (most comfortable first) or by relevance to the role.

Languages: Python, Java, C++, JavaScript, SQL

Proficiency tiers:

  • Proficient: Use daily, can debug complex issues, know idioms and best practices
  • Familiar: Can build projects with it, know the syntax and common patterns
  • Exposure: Used in coursework or small projects, understand basics

Only list “Proficient” and “Familiar” on your resume. “Exposure” can be mentioned in interviews if relevant.

Frameworks & Libraries

List frameworks you’ve used to build real projects (not just followed a tutorial).

Frameworks: React, Next.js, Node.js, Express, Django, Flask

Databases

Be specific about which databases and what you’ve done with them.

Databases: PostgreSQL (relational modeling, complex queries), MongoDB (document design, aggregation), Redis (caching, pub/sub)

Cloud & DevOps

Even basic cloud experience is valuable. Be specific about which services.

Cloud: AWS (S3, EC2, Lambda, RDS, CloudWatch), Docker, GitHub Actions, Vercel

Tools & Platforms

Developer tools, collaboration tools, monitoring, etc.

Tools: Git, GitHub, Jira, Figma, Postman, Datadog, Grafana

Concepts & Methodologies

High-level concepts that show your understanding of engineering practices.

Concepts: REST API Design, Microservices, CI/CD, TDD, Agile/Scrum, System Design

How to Decide What to Include

The Interview Test

For each skill you list, ask yourself:

  1. Can I discuss this in depth for 5+ minutes?
  2. Can I answer follow-up questions about internals/principles?
  3. Have I used this in a real project (not just coursework)?

If yes to all three → List it prominently If yes to one or two → List it, but be prepared to caveat If no to all → Don’t list it

The Relevance Test

Prioritize skills that match the job description:

  • Must-have skills → List prominently, first in category
  • Nice-to-have skills → Include if you have them
  • Unrelated skills → Omit unless they demonstrate breadth

The Recency Test

Skills you’ve used recently are stronger:

  • Used in last 6 months → Full confidence to list
  • Used 6-12 months ago → List, but brush up before interviews
  • Used 1+ years ago → Include only if you can quickly refresh
  • Used once in a class → Probably don’t list

Avoiding Skill Inflation

Skill inflation is when you list technologies you barely know. It backfires in interviews.

Common Inflation Patterns

❌ Listing a language after one course: “I took Intro to Python” → Listing “Python” as a skill

✅ Better approach: List Python if you’ve built projects with it. Otherwise, mention it under “Relevant Coursework.”

❌ Listing frameworks you’ve only seen in tutorials: Followed a React tutorial → Listing “React, Redux, React Router, React Query, Styled Components”

✅ Better approach: List only what you’ve used to build something: “React, Tailwind CSS”

❌ Listing “Machine Learning” broadly: Used scikit-learn once → Listing “Machine Learning, Deep Learning, NLP, Computer Vision”

✅ Better approach: “Python, scikit-learn, Pandas, NumPy” — list specific tools, not broad fields

❌ Listing every AWS service: Used S3 once → Listing “AWS (S3, EC2, Lambda, ECS, EKS, RDS, DynamoDB, SQS, SNS, CloudFront, Route53…)”

✅ Better approach: “AWS (S3, EC2, Lambda)” — only what you’ve actually used

What Happens When You Inflate

  1. Interviewer asks about it → You look unprepared
  2. You get asked system design questions at a level you can’t handle
  3. You lose credibility → Interviewers question your other skills too
  4. You might get down-leveled → If you can’t back up your claims

Tailoring for Different Roles

Frontend Engineer

Languages: TypeScript, JavaScript, HTML, CSS, Python
Frameworks: React, Next.js, Vue.js, Tailwind CSS, Jest, Cypress
Tools: Webpack, Vite, Storybook, Figma, Chrome DevTools
Concepts: Responsive Design, Accessibility (WCAG), Performance Optimization, Component Architecture

Backend Engineer

Languages: Java, Python, Go, SQL
Frameworks: Spring Boot, FastAPI, Express, gRPC
Databases: PostgreSQL, Redis, MongoDB, Kafka
Cloud: AWS (EC2, RDS, Lambda, SQS), Docker, Kubernetes
Concepts: API Design, Distributed Systems, Caching, Message Queues

Full-Stack Engineer

Languages: TypeScript, JavaScript, Python, SQL
Frontend: React, Next.js, Tailwind CSS, HTML/CSS
Backend: Node.js, Express, Django, REST APIs
Databases: PostgreSQL, MongoDB, Redis
Cloud: AWS, Docker, Vercel, GitHub Actions

ML Engineer

Languages: Python, C++, SQL
ML/AI: PyTorch, TensorFlow, scikit-learn, Hugging Face Transformers
Data: Pandas, NumPy, Spark, SQL
Cloud: AWS (SageMaker, S3, EC2), Docker, MLflow
Concepts: NLP, Computer Vision, MLOps, Model Optimization

DevOps/SRE

Languages: Python, Bash, Go
Cloud: AWS (EC2, EKS, RDS, CloudWatch), GCP, Azure
Tools: Docker, Kubernetes, Terraform, Ansible, Helm
CI/CD: GitHub Actions, Jenkins, ArgoCD, GitLab CI
Monitoring: Prometheus, Grafana, Datadog, PagerDuty

Formatting Tips

Keep It Scannable

Recruiters scan this section in 3-5 seconds. Make it easy:

✅ Clean:
Languages: Python, Java, C++, JavaScript, TypeScript, SQL

❌ Hard to scan:
Languages: Python (proficient), Java (proficient), C++ (intermediate),
JavaScript (proficient), TypeScript (intermediate), SQL (proficient)

Don’t Use Skill Bars or Ratings

❌ Don't do this:
Python: ██████████ 95%
Java:   ████████░░ 80%
C++:    ██████░░░░ 60%

These are subjective, meaningless to recruiters, and take up valuable space.

Don’t List Soft Skills Here

❌ Don't include:
"Leadership, Communication, Teamwork, Problem-solving, Time management"

These should be demonstrated through your bullet points, not listed as skills.

Don’t List Obvious Skills

❌ Don't include:
"Microsoft Word, Excel, PowerPoint, Email, Internet, Windows, macOS"

Unless the job specifically requires them, omit basic tools everyone knows.

Keyword Optimization

From Job Descriptions

Pull keywords directly from job postings:

Job says: “Experience with containerization and orchestration” You list: “Docker, Kubernetes”

Job says: “Familiarity with cloud services” You list: “AWS (S3, EC2, Lambda)”

Job says: “Strong SQL skills” You list: “SQL, PostgreSQL, MySQL” (don’t just say “SQL”)

Common ATS Keywords

These terms appear frequently in SWE job descriptions:

  • Languages: Python, Java, JavaScript, C++, Go, TypeScript, SQL
  • Concepts: REST, APIs, Microservices, CI/CD, Agile, OOP, Data Structures, Algorithms
  • Cloud: AWS, Azure, GCP, Docker, Kubernetes, Serverless
  • Data: SQL, NoSQL, PostgreSQL, MongoDB, Redis, Kafka
  • Testing: Unit Testing, Integration Testing, TDD, Jest, Pytest

Updating Your Skills Section

Your skills section should evolve:

  1. After each project → Add new technologies you used
  2. Before each application → Tailor to job description
  3. After interviews → Note which skills were asked about
  4. Quarterly → Remove skills you haven’t used recently, add new ones

Key Takeaways

  1. Be honest — Only list what you can discuss in an interview
  2. Be specific — Name actual technologies, not broad categories
  3. Be relevant — Tailor to the job description
  4. Be organized — Clear categories, easy to scan
  5. Keep it current — Update regularly, remove stale skills
  6. No inflation — It will backfire in technical interviews