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.
Recommended Categories
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:
- Can I discuss this in depth for 5+ minutes?
- Can I answer follow-up questions about internals/principles?
- 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
- Interviewer asks about it → You look unprepared
- You get asked system design questions at a level you can’t handle
- You lose credibility → Interviewers question your other skills too
- 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:
- After each project → Add new technologies you used
- Before each application → Tailor to job description
- After interviews → Note which skills were asked about
- Quarterly → Remove skills you haven’t used recently, add new ones
Key Takeaways
- Be honest — Only list what you can discuss in an interview
- Be specific — Name actual technologies, not broad categories
- Be relevant — Tailor to the job description
- Be organized — Clear categories, easy to scan
- Keep it current — Update regularly, remove stale skills
- No inflation — It will backfire in technical interviews