Hirova

Software engineer resume examples

A strong software engineer resume says what you built or changed, which part was yours, how you know it worked and what you used to build it. The examples below are fictional. Each starts with a weak line, shows the question that improved it and what the engineer said, and ends with a bullet that uses no number they didn’t give.

Updated

Reviewed by an AI subject-matter reviewer (software engineering),

What the bullets need to show

The US Bureau of Labor Statistics describes the work as analyzing users’ needs, designing and building software, keeping it working through maintenance and testing, and documenting it (Occupational Outlook Handbook). A reviewer reading your resume looks for your part in each of those:

  • Ownership. What you designed, wrote, reviewed or led, as distinct from what your team shipped.
  • Testing. How you knew your change worked, and what the tests caught.
  • Shipping. How the change reached production: a release, a feature flag, a migration.
  • Operations. On-call, incidents, postmortems and the fixes that came out of them.
  • Working with others. Code review, mentoring, design documents, explaining a change to people outside engineering.
  • The stack, in context. Languages and services named inside the bullet where you used them, then collected in the Skills section.

The questions that find the bullet

Answer these out loud for each project or system you worked on. They are the questions a good interviewer will ask anyway.

  1. What did you build or change, and who used it?
  2. Which part was yours? Did you design it, write it, review it or lead the people writing it?
  3. How did it reach production?
  4. How did you know it worked: tests, monitoring, a dashboard someone else owns, a ticket that stopped coming?
  5. What broke, and what did you do about it?
  6. For any number: where did it come from, and what was it before?
  7. Which languages, frameworks and services did you use for this specific work?

Before and after, with the question that changed it

Priya Nair is a fictional backend engineer on a checkout and payments team. Her first drafts listed duties. One question each got the facts out.

Before

Worked on the payments service.

The question

Which part of the payments service was yours, and what changed because of it?

They said

“I own retries for card payments in our TypeScript payments service. When the processor timed out, we used to charge some people twice. I added idempotency keys to every charge request and wrote the tests for it, and support stopped getting double-charge tickets after that.”

After

Added idempotency keys and tests to every card charge request in the TypeScript payments service after processor timeouts caused double charges; support stopped receiving double-charge tickets.

Before

Improved API performance.

The question

Which endpoint, how was it measured, and what was it before and after?

They said

“The search endpoint was slow. On our Grafana dashboard, p95 latency was around 1,200 milliseconds. I added a composite index and stopped loading the full user record for every result, and it went to about 300.”

After

Cut search API p95 latency from about 1,200 to about 300 milliseconds by adding a composite index and no longer loading the full user record for each result.

Before

Responsible for testing.

The question

What did you test, how, and what has it caught?

They said

“Checkout had no end-to-end tests, so before every release someone clicked through it by hand. I wrote Playwright tests for the 6 main checkout paths and put them in our GitHub Actions pipeline. They’ve caught two broken releases before they shipped.”

After

Wrote Playwright end-to-end tests for the 6 main checkout paths and added them to the GitHub Actions pipeline, replacing a manual click-through before each release; they have caught two broken releases before shipping.

Before

Participated in the on-call rotation.

The question

What happened on your hardest on-call shift, and what changed afterward?

They said

“A certificate expired on a Saturday and nobody could log in to the mobile app for about 3 hours. I was on call, so I renewed it, and then I wrote the postmortem. Afterward I moved that certificate to automatic renewal and added an alert 14 days before any certificate expires.”

After

Restored mobile login during a certificate-expiry outage of about 3 hours while on call, wrote the postmortem, moved the certificate to automatic renewal and added an alert 14 days before any certificate expires.

Before

Mentored junior developers.

The question

Who did you mentor, on what, and what could they do afterward?

They said

“Two interns joined my team last summer. I reviewed all of their pull requests and paired with them every Thursday. By the end, both had shipped a feature on their own.”

After

Mentored two summer interns through code review and weekly pairing; each shipped a feature independently by the end of the internship.

Before

Migrated the database.

The question

What moved where, how did you avoid downtime, and which part was yours?

They said

“We moved the orders table from MySQL to Postgres. I wrote the dual-write layer and the backfill script in Python, and another engineer ran the cutover. Customers never saw any downtime.”

After

Wrote the dual-write layer and a Python backfill script for moving the orders table from MySQL to PostgreSQL, a migration with no customer-facing downtime.

Three of the six have no measured result. The payments bullet shows it as a ticket type that stopped arriving, the mentoring bullet as work the interns shipped on their own, and the migration bullet as downtime customers never saw.

Entry-level, mid-level and senior

Entry level and new graduates. Projects, internships and teaching-assistant work are your experience. Give each one a name, your role and dates, and say which part of a team project you wrote. Link a GitHub profile only if the code there is code you would discuss in an interview.

Before

Built a web app for a class.

The question

What did the app do, who used it, and which part did you write?

They said

“For our software engineering course, 4 of us built a booking app for the library’s study rooms. I wrote the booking API in Node and its tests. The library used it for the spring semester.”

After

Wrote the booking API and its tests in Node.js for a library study-room booking app, built by a team of 4 in a software engineering course; the library used it for the spring semester.

Before

Software engineering intern.

The question

What did you ship during the internship, and what happened to it?

They said

“At my internship I added CSV export to the internal admin dashboard, in Python. It went out in the October release, and the support team uses it every week.”

After

Added CSV export to the internal admin dashboard in Python as an intern; it shipped in the October release and the support team uses it weekly.

Mid-level. The examples above: systems you own, the incidents you handled and the people you helped. Most bullets should name a system, your part and a result you can explain.

Senior and staff. Your scope widens from your own code to your team’s technical direction, and at staff level across teams, so the questions shift to decisions: which design you proposed, which tradeoff you chose and why, who adopted it, and what you stopped from going wrong. Say “led” only where you led. A result that belongs to a whole team stays the team’s, with your part named.

A complete example

Priya’s resume, put together. Every experience bullet is one of the rewrites above, word for word.

Priya Nair

Columbus, OH · phone · email · GitHub

Summary

Backend software engineer on a checkout and payments team, working in TypeScript, Python and PostgreSQL, with on-call responsibility for production services.

Experience

Software Engineer, Fernway, online checkout for small retailers. 2023 to present.

  • Added idempotency keys and tests to every card charge request in the TypeScript payments service after processor timeouts caused double charges; support stopped receiving double-charge tickets.
  • Cut search API p95 latency from about 1,200 to about 300 milliseconds by adding a composite index and no longer loading the full user record for each result.
  • Wrote Playwright end-to-end tests for the 6 main checkout paths and added them to the GitHub Actions pipeline, replacing a manual click-through before each release; they have caught two broken releases before shipping.
  • Restored mobile login during a certificate-expiry outage of about 3 hours while on call, wrote the postmortem, moved the certificate to automatic renewal and added an alert 14 days before any certificate expires.
  • Mentored two summer interns through code review and weekly pairing; each shipped a feature independently by the end of the internship.

Software Engineer, Brightlane Logistics. 2021 to 2023.

  • Wrote the dual-write layer and a Python backfill script for moving the orders table from MySQL to PostgreSQL, a migration with no customer-facing downtime.

Education

B.S. in Computer Science, Lakeshore State University. 2021.

Skills

Languages: TypeScript, Python

Databases: PostgreSQL, MySQL

Testing and delivery: Playwright, GitHub Actions

What not to claim

  • Numbers nobody measured. Latency, uptime, revenue or cost figures you can’t trace to a dashboard, a benchmark or a report. If you don’t know, describe what changed instead.
  • The team’s result as yours. “Migrated the database” when you wrote one part of it. Name your part; the reader will respect the precision.
  • Every technology the company uses. List what you worked in, not what was in the repository.
  • Titles you didn’t hold. If you acted as tech lead without the title, keep the real title and describe the work in a bullet.
  • Confidential details. Customer names, security incidents that were never made public, unreleased products and internal figures your employer hasn’t published.
  • Code you can’t explain. If an AI assistant wrote much of a project, you still need to walk through every part you list. Say what you designed and checked yourself.

From your answers to bullets, in Hirova

Hirova, an AI resume builder for iPhone, runs the same kind of interview: it asks what you owned and what changed, sets your answers as bullets, and shows the words behind every number so you can confirm it. Nothing reaches your draft until you do.

  1. Import or start fresh. Bring in a PDF or a photo of your resume. Hirova reads it on your iPhone; the file is not uploaded.
  2. Answer a few questions. Three to five short questions about what you owned and what changed. Type or dictate, and skip any you like.
  3. See your words set as bullets. Hirova rewrites your answers as resume lines in a consistent voice.
  4. Check every fact. Each title, date and number shows the words it came from. Nothing reaches your draft until you confirm it.
  5. Export a PDF. A typeset, text-based PDF you can send from the share sheet.

Your first resume is free, including the PDF in the Minimal design. Hirova Pro adds a tailored version for each job posting, with a cover letter for each. Hirova Pro is $19.99 a month or $79.99 a year in the US. The App Store shows your local price before you buy.

Questions

What should a software engineer put on a resume?
For each role, three to six bullets that name a system, your part in it and a result you can explain, such as a ticket type that stopped or a latency figure from a dashboard. Add a Skills section listing the languages and tools you have actually worked in.
How do I write a software engineer resume with no experience?
Treat class projects, internships and open-source contributions as experience: give each a name, your role and dates, and say which part you wrote and who used it. More in how to write a resume with no experience.
How long should a software engineer resume be?
One page early in your career. Two pages is common for experienced engineers when every bullet on the second page is relevant to the job.
Should I include a GitHub link on my resume?
Yes, if it holds code you would be happy to walk through in an interview. A profile with only coursework forks or abandoned projects adds little.