Technology

Skills for Software Engineers

Skills over credentials — what 2026 SWE hiring actually weights

Most software engineer job postings list 30+ requirements. Fewer than 12 actually determine whether you pass the screen. This guide cuts through the noise: the must-have skills that disqualify you if missing, the nice-to-haves that separate competitive candidates, and the emerging skills that signal forward momentum — all with concrete proof signals so you know exactly what to put on your resume.

Must-have

8

Nice-to-have

6

Emerging

4

Must have8 skills

Data structures and algorithms (practical application)

technical

Not LeetCode grinding for its own sake — interviewers expect you to pick the right data structure for a problem in a real codebase (hash maps for O(1) lookup, trees for hierarchical data, graphs for relationship traversal). Missing this at interview time is a fast-fail.

How to prove it

Walk through one past feature where your data structure choice had a measurable performance impact. Explain what you considered, what you chose, and what you would change now.

Time to acquire

3-6 months of consistent daily practice; 6 focused patterns beat 200 random problems.

Proficiency in one compiled or strongly-typed language (Java, Go, C++, Rust, TypeScript)

technical

Python alone no longer signals serious engineering depth at competitive companies. One statically-typed language on your resume — particularly one you can explain memory semantics for — substantially increases pass rates at L4+ screens.

How to prove it

A GitHub repository with non-trivial production-style code in that language (not tutorials). Ideally a service with tests, error handling, and a README explaining architecture decisions.

Time to acquire

6-12 months to reach professional fluency; faster if coming from a similar language.

SQL (joins, window functions, CTEs, query optimization)

technical

Even backend engineers who say "I use an ORM" need to write raw SQL when diagnosing slow queries. Hiring managers increasingly include a "debug this slow query" problem in technical screens across all engineering roles.

How to prove it

Write and explain a query using window functions (ROW_NUMBER, LAG, LEAD) on a realistic dataset. Show the EXPLAIN plan and explain one optimization you made.

Time to acquire

4-8 weeks with a real dataset; Mode Analytics educational content or SQLZoo plus a personal project.

Git workflows (branching, rebasing, code review etiquette)

tool

Every team uses Git, but the gap between "knows git commit and push" and "knows how to manage a long-running feature branch, resolve complex merges, and write useful PR descriptions" is where junior engineers fail in collaborative environments.

How to prove it

A GitHub profile with meaningful commit history — not one giant commit per feature — with PR descriptions that explain the "why" not just the "what." Interviewers look at this.

Time to acquire

2-4 weeks of deliberate practice on a team project; reading Pro Git (free online) covers 90% of what you need.

REST API design (resource modeling, status codes, authentication patterns)

technical

The ability to design a clean REST API — with correct status codes, sensible resource naming, and a thought-out authentication flow — is a baseline screen at most mid-size and large companies. Bad API design cascades into client-side bugs.

How to prove it

A public API you built, or a design doc for one (on GitHub or in your portfolio). Include versioning strategy, error response schema, and authentication approach.

Time to acquire

1-3 months building and iterating on real endpoints with user feedback.

Cloud fundamentals (AWS, GCP, or Azure — compute, storage, IAM)

tool

You do not need to be a DevOps engineer, but understanding how to deploy a service, configure IAM permissions correctly, and use managed storage (S3/GCS, RDS/Cloud SQL) is now table-stakes for senior+ and expected even at mid-level.

How to prove it

A side project deployed on a cloud provider — not just Heroku — where you configured the infrastructure yourself. Screenshot or architecture diagram in your portfolio.

Time to acquire

2-4 months using AWS Free Tier or GCP credits with a real project (not just watching tutorials).

CI/CD pipeline fundamentals (GitHub Actions, testing integration)

tool

The shift to "you build it, you run it" means engineers are expected to own the pipeline that takes code from a PR to production. Not setting one up from scratch, but understanding how tests run, how artifacts are built, and what a deploy gate is.

How to prove it

A GitHub repository with a working Actions workflow that runs tests on every PR and blocks merging on failure. Point to a specific commit where you fixed a flaky test in CI.

Time to acquire

2-4 weeks with a real project; GitHub Actions documentation plus one working example is sufficient.

System design fundamentals (APIs, databases, caching, load balancing)

technical

At mid-level+ in 2026, every company with a serious engineering bar includes a systems design round. The expectation is not Twitter-scale architecture but the ability to reason about tradeoffs: when to use a cache, how to handle auth, what breaks at 10x traffic.

How to prove it

A written architecture decision record (ADR) for a past project, or a walk-through of a system you designed including one tradeoff you explicitly made and why.

Time to acquire

3-6 months studying patterns (Designing Data-Intensive Applications is the canonical text) plus practicing with timed design exercises.

Nice to have6 skills

Test writing (unit, integration — using real test frameworks)

methodology

Not 100% coverage dogma — practical test judgment. Knowing which logic to unit-test (branching, edge cases), which to integration-test (service seams), and when to skip (trivial getters, auto-generated code) differentiates senior candidates.

How to prove it

A codebase where your tests are meaningfully named, cover both happy-path and edge cases, and do not mock everything. Show one test that caught a real bug before it reached production.

Time to acquire

1-2 months with deliberate attention during any real project.

Docker (containerization basics — Dockerfile, docker-compose)

tool

Building and running containers is now expected at most software engineering roles, even if Kubernetes is someone else's problem. The ability to write a functional Dockerfile and compose a multi-service local dev environment removes you from the "talks about Docker in theory" category.

How to prove it

A docker-compose.yml in your portfolio project that runs your app + database locally with one command. Bonus: a multi-stage Dockerfile that keeps the image small.

Time to acquire

2-4 weeks of hands-on use with a real project.

Observability basics (structured logging, error tracking, metrics)

tool

On-call readiness is increasingly evaluated in interviews. Candidates who have worked with structured logs (JSON format, trace IDs), error aggregation (Sentry, Rollbar), and basic metrics (Prometheus, Datadog) are hired faster into senior roles.

How to prove it

A description of one on-call incident you diagnosed — what tool you used, what log/trace you looked at first, how long it took to find the root cause, and what observability gap you fixed afterward.

Time to acquire

1-3 months of hands-on use in a production or production-like environment.

Database design (normalization, indexing strategy, connection pooling)

technical

The ability to design a schema that scales — not just one that works today — separates mid from senior. Understanding when to index, when NOT to index (write-heavy tables), and what N+1 queries look like in an ORM is the difference between a database that serves a million users and one that falls over at ten thousand.

How to prove it

Walk through a database schema you designed: explain your normalization decisions, which indexes you added, and one query optimization you made after profiling.

Time to acquire

2-4 months with a real project under real query load.

Communication and technical writing (design docs, incident postmortems)

soft

The ability to write a design doc that gets cross-team buy-in — or a postmortem that surfaces root causes without blame — is the highest-leverage soft skill in engineering. It directly determines how fast you can build with others at scale.

How to prove it

A public (or sanitized) design doc or technical blog post that explains a non-trivial decision. The writing should show your reasoning, not just your conclusions.

Time to acquire

Ongoing — the skill compounds with practice; start by writing the rationale for every non-trivial PR.

Performance profiling (flame graphs, query analysis, memory profiling)

technical

Knowing that something is slow is not a skill. Knowing how to profile it, isolate the bottleneck, and make a targeted fix — without touching the unrelated code — is what separates engineers who keep production fast from ones who add caches hoping for the best.

How to prove it

One specific optimization story: what was slow, what tool you used to profile it (perf, py-spy, Chrome DevTools, EXPLAIN ANALYZE), what you changed, and the measured improvement.

Time to acquire

1-3 months through hands-on production debugging experience.

Emerging4 skills

LLM API integration (OpenAI, Anthropic, or local models)

technical

In 2026, feature development increasingly includes an LLM-powered component — structured output extraction, retrieval-augmented generation, or AI-assisted user flows. Engineers who have shipped at least one real LLM integration are prioritized for greenfield projects.

How to prove it

A shipped feature or side project that calls an LLM API with structured outputs, error handling for rate limits, and a cost-control mechanism (token budgeting or caching). Not a demo — something that handles failure gracefully.

Time to acquire

4-8 weeks building a real integration; familiarity with one SDK is transferable to others.

AI coding assistant fluency (GitHub Copilot, Cursor, Claude Code)

tool

The question is no longer whether to use AI coding tools — it is whether you use them as a crutch or as a force multiplier. Engineers who understand how to prompt effectively, when to reject completions, and how to maintain code quality with AI assistance ship measurably faster.

How to prove it

Be prepared to discuss concretely how you use AI coding tools — which tasks you delegate (boilerplate, test stubs, regex) and which you do not (architecture decisions, security-sensitive code). Generic "I use Copilot" is not a signal.

Time to acquire

2-4 weeks of deliberate integration into your daily workflow.

WebAssembly or edge computing concepts

technical

Edge runtimes (Cloudflare Workers, Vercel Edge, Deno Deploy) are moving compute closer to users and changing how teams think about latency and state. Not a hiring requirement yet at most companies — but relevant on any team building performance-critical web applications.

How to prove it

A deployed edge function or WASM module that solves a real problem (image transformation, auth at the edge, server-side personalization). Explain why edge was the right choice over a traditional server.

Time to acquire

4-8 weeks for a working proof-of-concept.

Multi-agent and agentic workflow design

technical

AI product teams are now building systems where multiple LLM calls chain together, tools are invoked autonomously, and outputs feed back into the loop. Understanding how to architect an agentic system — including failure modes, evaluation loops, and cost controls — is a differentiated skill entering most job descriptions at AI-forward companies.

How to prove it

A working prototype of an agentic workflow (not just a single LLM call) — even a side project — with documented evaluation and fallback behavior. Explain where it fails and what you did about it.

Time to acquire

2-4 months through building and iterating; LangGraph, AutoGen, or Claude's tool-use API are common starting points.

Certifications: what's worth it

AWS Certified Solutions Architect – Associate

Amazon Web Services$30060-100 hours prep

Situational

Valuable for career-changers transitioning into cloud-adjacent engineering roles, or engineers at AWS-heavy shops where it signals baseline cloud literacy. Less valuable for senior engineers with a track record of shipped production systems — hiring committees at FAANG and growth-stage startups look at your GitHub, not your cert wallet. If your resume already demonstrates multi-service AWS usage in production, skip it.

AWS Certified Developer – Associate

Amazon Web Services$30040-70 hours prep

Situational

Slightly more relevant than Solutions Architect for software engineers specifically because it tests SDK usage and serverless patterns. Still falls into the same trap: hiring managers value a deployed Lambda function you can walk through more than the cert itself. Better use of 70 hours: build something on AWS instead.

Google Professional Cloud Developer

Google Cloud$20060-90 hours prep

Situational

Useful signal at companies deep in GCP. Not recognized widely enough outside GCP-centric organizations to justify the prep time for general SWE job searches. Skip unless your target employer is GCP-first.

Certified Kubernetes Application Developer (CKAD)

Cloud Native Computing Foundation$39580-120 hours prep

Situational

One of the rare software engineer certs that has real signal: the CKAD exam is hands-on (live cluster, not multiple choice), so it actually tests competence. Worth it if you regularly interact with Kubernetes in your role or are targeting DevOps-adjacent engineering positions. Overkill for backend engineers who just want to ship features.

Oracle Java SE Certifications (OCA/OCP)

Oracle$245-$29560-100 hours prep

Overrated

Rarely mentioned in job postings outside enterprise Java shops (large banks, insurance companies, legacy enterprise SaaS). In those environments it provides some signal; everywhere else it is irrelevant. The exam tests Java syntax trivia more than engineering judgment — a working Spring Boot application on your GitHub communicates more to any hiring manager.

Certified Scrum Developer (CSD)

Scrum Alliance$500-$1000 including training3-5 days classroom

Overrated

Almost never asked for by engineers who have shipped in Agile environments. The signal is weak across the board: companies that care about Agile fluency test it through behavioral interview questions, not cert verification. Save the money.

ATS keywords that get software engineers through screening

Group these correctly on your resume. The wrong section placement costs you the match.

Programming languages and runtimes

PythonJavaScriptTypeScriptJavaGoRustC++Node.jsRubyKotlin

Where on resume: List in a dedicated Technical Skills section. Name the version where relevant (e.g., "Python 3.11"). Do not bury these in bullet points only — ATS parsers look for them in skill blocks.

Why it matters: Most ATS systems filter on at least one language match. A resume with no language keywords visible in the skills section will fail automated screens even if the experience bullets mention them.

Frameworks and libraries

ReactNext.jsSpring BootDjangoFastAPIExpressGraphQLREST APIgRPCKafka

Where on resume: Put frameworks in both the Technical Skills section AND in context in bullets ("Built a FastAPI service handling 50K requests/day"). Context-free framework lists score lower on ATS systems that measure keyword density with surrounding context.

Why it matters: Senior engineering roles often specify a required framework. Missing the exact term (e.g., writing "React.js" when the posting says "ReactJS") can cause a filter miss — match the JD wording.

Cloud and infrastructure

AWSGCPAzureKubernetesDockerTerraformCI/CDGitHub ActionsJenkinsserverless

Where on resume: Include in Technical Skills AND in at least one bullet that shows usage ("Migrated three microservices to AWS ECS, reducing infrastructure cost by 30%"). Listing AWS without a usage context is a weak signal.

Why it matters: Cloud keywords are now required at most non-junior engineering roles. Missing them entirely will filter you from senior and staff-level screens at cloud-native companies.

Databases and data layer

PostgreSQLMySQLMongoDBRedisDynamoDBElasticsearchSQLNoSQLdatabase designdata modeling

Where on resume: Name specific databases rather than generic terms. "PostgreSQL" scores better than "relational databases." If you have used multiple, list the primary ones explicitly.

Why it matters: Backend and full-stack roles almost always require a database keyword match. Generic "database" without specifics is a common reason resumes score poorly on ATS systems.

Software engineering practices

AgileScrumcode reviewtest-driven developmentTDDmicroservicessystem designdistributed systemsAPI designperformance optimization

Where on resume: Methodology keywords belong in your bullets, not just a skills section. "Led code review process for a team of 8 engineers, reducing post-deploy bug rate by 40%" is stronger than just listing "code review."

Why it matters: Senior roles increasingly filter for "system design" and "distributed systems" as keywords. If your resume does not contain these, you may be filtered before a human sees it.

AI and machine learning tools

LLMOpenAI APIprompt engineeringRAGLangChainmachine learningTensorFlowPyTorchvector database

Where on resume: Only include these if you have shipped something. Listing AI/ML keywords you cannot back up in an interview is worse than omitting them — interviewers probe aggressively.

Why it matters: AI-forward companies and roles with ML components will filter on at least one of these. A resume with zero AI exposure signals a candidate who has not kept up with 2025-2026 development workflows.

How to weave these skills into resume bullets

Demonstrates: System design and scalability

Designed backend services for the platform.

Redesigned the user notification service from a polling model to event-driven (Kafka), reducing API load by 65% and cutting notification delivery latency from 8s to under 400ms at 50K concurrent users.

Demonstrates: CI/CD and developer productivity

Set up CI/CD pipelines using GitHub Actions.

Built a GitHub Actions pipeline that ran the full test suite in parallel across 6 workers, reducing average CI time from 22 minutes to 4 minutes and unblocking 12 engineers from a daily bottleneck.

Demonstrates: Database optimization

Optimized database queries to improve performance.

Profiled slow-query log and rewrote 3 N+1-prone ORM queries into CTEs with targeted indexes, dropping the 95th-percentile API response time from 1.8s to 210ms on the most-trafficked endpoint.

Demonstrates: LLM integration

Integrated AI features into the product.

Shipped an LLM-powered resume tailoring feature (Claude Haiku) with structured JSON output, prompt caching, and a fallback path for rate-limit errors — handling 8K daily requests at under $0.03/call average.

Demonstrates: Incident response and reliability

Helped improve system reliability.

Led the postmortem for a 47-minute database failover outage, identified a missing connection-pool retry policy, and shipped the fix — reducing subsequent unplanned downtime by 90% over the following quarter.

Portfolio signals that work for software engineers

An open-source contribution to a library you can name, walk through, and explain why the maintainers merged it

Why: Hiring managers interpret a merged PR to a real project as proof you can read unfamiliar code, work within established conventions, and communicate in a collaborative setting — all skills that are hard to fake.

How to build it: Pick a library you use (not a "good first issue" farm). Find a bug by running the tests or using it. Submit a PR that fixes it with a test. The PR description matters as much as the code — explain the problem clearly.

A side project deployed on a real cloud provider with a working CI/CD pipeline, not just a README with instructions to "run locally"

Why: A live URL signals you can ship, not just build. It also shows comfort with deployment infrastructure, which is a screening criterion at most senior-level roles.

How to build it: Take any project, containerize it with Docker, push to a cloud provider (Render, Railway, or AWS ECS/Fargate). Add a GitHub Actions workflow that runs tests and auto-deploys on merge. Document the architecture in a README with a diagram.

A performance optimization case study documented in writing — before/after numbers, profiling method, and trade-offs considered

Why: It demonstrates the analytical loop that senior engineers value: measure before changing, isolate the bottleneck, make one change, measure again. This is harder to fake than claimed experience.

How to build it: Artificially load-test a side project (k6 or Locust is free and easy). Profile it with standard tools. Make a targeted optimization. Write it up in a blog post or GitHub Gist with the actual numbers.

A technical blog post (or talk) explaining a non-obvious engineering decision with a clear cost-benefit analysis

Why: Communication ability is consistently underweighted by candidates and consistently over-valued by hiring managers. A well-written technical post demonstrates the engineering judgment that behavioral interviews try to approximate.

How to build it: Write about a real decision you made — not a tutorial. "Why we chose Postgres over DynamoDB for our user events table" is specific and searchable. "Introduction to Docker" is not worth writing.

Where to actually learn this

Designing Data-Intensive Applications (Martin Kleppmann)

bookpaid

The single most cited book in senior SWE interviews. Covers distributed systems, databases, stream processing, and consistency models with enough depth to survive follow-up questions. Not a quick read — work through it with a highlighter.

Best for: System design preparation; must-have skill tier.

NeetCode 150 (neetcode.io)

coursemixed

The highest-signal list of 150 LeetCode problems organized by pattern (not difficulty or number). Each has a video walkthrough from the maintainer. The free tier covers 90% of what most companies test.

Best for: Data structures and algorithms; must-have skill tier.

The Pragmatic Programmer (Hunt and Thomas, 20th Anniversary Edition)

bookpaid

Not an algorithms book or a framework tutorial — covers engineering judgment: DRY, orthogonality, tracer bullets, debugging mindsets. The concepts apply regardless of language and compound over a career.

Best for: Engineering practices and soft skills; nice-to-have tier.

fast.ai Practical Deep Learning for Coders

coursefree

Top-down teaching approach that gets you building real models before explaining theory. Legitimately free, taught by Jeremy Howard (Kaggle #1). Better for engineers who want practical ML exposure than academic ML courses.

Best for: Emerging ML/AI skills; emerging tier.

AWS Free Tier (hands-on infrastructure building)

documentationfree

The best way to learn cloud is to use cloud with real dollars at stake — even if minimal. Build a project using EC2, RDS, S3, and IAM roles from scratch without a tutorial holding your hand. The friction of making mistakes is the learning.

Best for: Cloud fundamentals; must-have tier.

Anthropic Prompt Engineering Guide

documentationfree

Anthropic publishes unusually detailed guidance on structured output, system prompts, and multi-turn patterns — more engineering-focused than OpenAI's equivalent. Required reading before integrating Claude into a production application.

Best for: LLM API integration; emerging tier.

GitHub's official Git documentation and interactive learning path

documentationfree

Most engineers have superficial Git knowledge. GitHub's own documentation covers branching models, rebase strategies, and conflict resolution with diagrams. Supplement with "Pro Git" (free online) for the internals.

Best for: Git workflows; must-have tier.

Refactoring (Martin Fowler, 2nd Edition)

bookpaid

Teaches a vocabulary and pattern set for making code incrementally better without breaking it. Essential reading before any senior code review round — candidates who have internalized refactoring patterns write better PR feedback.

Best for: Code quality and engineering practices; nice-to-have tier.

Google SRE Book (free online at sre.google)

documentationfree

The canonical text on observability, reliability, and incident management at scale. Not just for SREs — any engineer who wants to understand production operations at depth should read Part II (Principles) and Part III (Practices).

Best for: Observability and reliability; nice-to-have tier.

r/cscareerquestions and Blind (anonymized company-specific prep)

communityfree

Not for general advice (lots of noise), but for company-specific interview patterns. Search "[Company] interview 2025" to find recent documented loops. Cross-reference across threads to identify signal vs. noise.

Best for: Interview preparation across all tiers.

Skills FAQs for software engineers

More for Software Engineers

Skills for related roles