I once helped a friend with eight years of software engineering experience rewrite his resume. His original version listed his job at a fintech startup as: "Worked on backend services using Java and Spring Boot." Technically accurate. Completely useless to a hiring manager.
We rewrote it as: "Built and maintained payment processing microservices handling 2 million transactions daily; reduced transaction failure rate from 1.8% to 0.3% through improved retry logic and error handling."
Same job. Same person. Completely different story. He got four interview requests in the first week.
That gap β between describing what you did and demonstrating what you delivered β is where most tech resumes live and die. Here's how to get yours on the right side of that line.
Start With the Problem Recruiters Actually Have
Before talking about what to put on your resume, it helps to understand how resumes actually get read. Most tech resumes at large companies go through an ATS (applicant tracking system) before a human ever sees them. These systems scan for keyword matches against the job description. If your resume doesn't contain the right terms β specific languages, frameworks, tools β it may never reach a human reviewer.
This means your first job is to make sure your resume is parseable and keyword-matched for the roles you're applying to. It doesn't mean stuffing your resume with every technology you've ever heard of. It means reading the job description carefully and making sure your legitimate experience is described using the same language the employer uses.
Practical approach: for every role you apply to, copy-paste the job description into a document and highlight every specific technology and skill mentioned. Then check your resume against that list. Anything that matches your actual experience but isn't in your resume? Add it.
The Structure That Works
Header: Name, email, phone, city (you don't need a full address), LinkedIn URL, and GitHub profile if it has public work worth seeing. Keep this clean β it's just contact information, not an opportunity for creative formatting.
Technical Skills: List this early, often right after the header or summary. Recruiters and hiring managers scan here first to see if you're even in the right ballpark. Organize by category: Programming Languages, Frameworks & Libraries, Cloud & Infrastructure, Databases, Tools & Platforms. Don't list everything you've ever touched β list what you'd be comfortable discussing in a technical interview.
Professional Experience: This is where most resumes either win or lose. Format each role as: Company Name, Your Title, Start Date β End Date, then bullet points describing what you accomplished. The critical rule: every bullet should describe an outcome, not a task.
Task-focused (weak): "Responsible for maintaining CI/CD pipeline" Outcome-focused (strong): "Rebuilt CI/CD pipeline reducing average deployment time from 45 minutes to 8 minutes, enabling the team to ship multiple times per day"
Three to five bullets per role is usually right. More than that and you're padding. Fewer and you're leaving value on the table.
Projects: If you're early in your career or switching specializations, a projects section can be more important than your experience section. For each project: name it, link to the GitHub repo if it's public, describe what it does in one sentence, then list the technical decisions worth mentioning. "Built a real-time stock price tracker using WebSockets and Redis caching, serving 200 concurrent users with sub-50ms latency" tells someone far more than "Stock price web application."
Education: Goes at the bottom unless you're a recent graduate. Your degree matters less than your skills after two or three years of industry experience.
The Metrics Question
The most common objection I hear: "I don't have metrics. My work wasn't measured that way."
Here's the reality: almost everything can be measured if you look at it right.
If you improved a slow database query, how much faster is it now? (Even "reduced page load time from 4s to 1.2s" is a metric.) If you wrote documentation, how many support tickets did that topic generate before versus after? If you refactored legacy code, how many lines were involved, or how much did test coverage improve? If you led a project, what was the timeline and did you hit it?
Sometimes you genuinely won't have hard numbers. In those cases, use scale: "across a codebase of 500,000 lines," "for a platform serving 50,000 active users," "part of a team of 12 engineers." Scale provides context even without precise measurement.
What to Stop Doing
Remove the objective statement. "Seeking a challenging software engineering role where I can contribute my skills" tells a recruiter nothing and wastes space.
Stop listing soft skills in your skills section. "Team player," "fast learner," "excellent communicator" β these belong nowhere on a resume. If these are true, they show up in how you describe your work.
Don't include a photo in markets where this isn't standard (North America, UK, Australia). It creates unnecessary bias and wastes space.
Don't list every version of every tool. "Java 8, Java 11, Java 17" is not meaningfully different from just "Java." Show depth, not version archaeology.
One page or two? Under five years of experience: one page. Five to fifteen years: one to two pages is fine. Over fifteen years: two pages maximum, but you should be cutting your earliest experience down to a few lines anyway.
Tailoring for Different Roles
If you're applying to a startup: emphasize scope of work, breadth of impact, shipping things quickly, and making decisions with limited resources. Startups want someone who can own problems end to end.
If you're applying to a large tech company: emphasize scale (systems you worked on, traffic they handled), impact on measurable metrics, and collaboration across teams. FAANG and similar companies have very structured evaluation frameworks β they're looking for signals that map to their rubrics.
If you're switching specializations (say, backend to ML engineering): your projects section becomes critical. Hiring managers know you don't have five years of ML experience. What they're evaluating is whether you have the intellectual curiosity and learning ability to grow into the role. Show work, even personal projects, in the target area.
A Final Check
Before sending any resume: paste it into a plain text editor and see if it still makes sense. Many ATS systems strip formatting and read the plain text. If your resume depends on visual layout to communicate structure, it may parse poorly.
Then get one person with technical hiring experience to read it and tell you the first three things they'd ask you in an interview based on what they read. If those three things aren't things you want to talk about, you've got more editing to do.
Your resume is a marketing document. Its only job is to get you an interview. Everything else β your personality, your ability to solve problems, the full story of your career β comes out in the conversation. The resume just has to convince someone that conversation is worth having.
Tags
Taresh Sharan