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

Resume Structure & Layout

A well-structured resume guides the reader’s eye to the most important information. This guide covers the optimal structure for software engineering resumes.

The One-Page Rule

Your resume should be one page. Period.

Exceptions are rare:

  • 10+ years of highly relevant experience
  • Applying for senior/staff+ roles where breadth matters
  • Academic CVs (different format entirely)

If you’re struggling to fit on one page:

  • Cut less relevant experiences
  • Reduce margins (minimum 0.5 inches)
  • Use 10-11pt font (minimum)
  • Remove filler words and redundant phrases
  • Consolidate similar bullet points

1. Header (Top of Page)

Include:

  • Full name — Large, bold, 16-18pt
  • Contact info — Phone, email, LinkedIn, GitHub, personal website
  • Location — City, State (full address is outdated)
JANE DOE
San Francisco, CA | (555) 123-4567 | jane.doe@email.com
linkedin.com/in/janedoe | github.com/janedoe | janedoe.dev

Tips:

  • Use a professional email (firstname.lastname@gmail.com, not xXx_gamer_xXx@hotmail.com)
  • Make sure your GitHub has actual projects, not empty repos
  • LinkedIn URL should be customized (linkedin.com/in/yourname, not a string of numbers)

2. Education

For new grads, education comes first. For experienced engineers, it can go at the bottom.

Include:

  • Degree, Major — B.S. Computer Science, M.S. Data Science
  • University name — Full official name
  • Graduation date — Month, Year (or expected)
  • GPA — Include if 3.5+ (or 3.3+ for top schools). Omit if lower.
  • Relevant coursework — Only if directly relevant to the role (3-5 courses max)
  • Honors — Dean’s list, cum laude, scholarships
B.S. COMPUTER SCIENCE | Stanford University | Expected June 2027
GPA: 3.8/4.0 | Relevant Coursework: Distributed Systems, ML, Algorithms

Tips:

  • Don’t include high school once you’re in college
  • Don’t list every course — be selective
  • If GPA is below threshold, leave it off (no one will ask)

3. Technical Skills

Group skills into categories. Be specific and honest.

Languages: Python, Java, C++, JavaScript, TypeScript, SQL
Frameworks: React, Node.js, Django, Spring Boot, Flask
Tools: Git, Docker, Kubernetes, AWS (S3, EC2, Lambda), PostgreSQL, Redis
Concepts: REST APIs, Microservices, CI/CD, Agile, TDD

See Technical Skills for detailed guidance.

4. Experience

List in reverse chronological order. Each entry should include:

  • Company name — Bold
  • Role — Your title
  • Dates — Month Year - Month Year
  • Location — City, State (or Remote)
  • 3-5 bullet points — Using STAR format with quantified impact
SOFTWARE ENGINEERING INTERN | Google | Mountain View, CA | May 2026 - Aug 2026
- Built a real-time data pipeline processing 2M+ events/day using Apache Kafka and Spark
- Reduced API latency by 40% by implementing Redis caching layer for frequently accessed queries
- Collaborated with 5-person team to ship 3 features across 2 sprint cycles

See Writing Bullets for detailed guidance.

5. Projects

2-4 projects that demonstrate your skills. Each should include:

  • Project name — With link if available
  • Tech stack — Key technologies used
  • 2-3 bullet points — What you built, impact, technical challenges
REAL-TIME CHAT APPLICATION | Node.js, React, WebSocket, MongoDB
- Built a full-stack chat app supporting 500+ concurrent users with real-time messaging
- Implemented JWT authentication and rate limiting to prevent abuse
- Deployed on AWS EC2 with Docker, achieving 99.5% uptime over 3 months

See Projects for detailed guidance.

6. Additional Sections (Optional)

Only include if space allows and content is relevant:

  • Leadership / Activities — Club roles, teaching, mentoring
  • Awards / Competitions — Hackathons, coding competitions
  • Publications — Papers, blog posts (if technical and relevant)
  • Certifications — AWS, Google Cloud, etc.

Do NOT include:

  • References (available upon request is unnecessary)
  • Hobbies unless directly relevant
  • Photo (in US/Canada tech resumes)
  • Objective statements (outdated — use a summary only if you have 5+ years experience)

Formatting Guidelines

Fonts

  • Sans-serif fonts for digital readability: Calibri, Arial, Helvetica, Roboto
  • Size: Name 16-18pt, Section headers 12-14pt, Body 10-11pt
  • Consistency: One font family throughout

Spacing

  • Margins: 0.5 - 0.75 inches on all sides
  • Line spacing: 1.0 - 1.15
  • Section spacing: Consistent gaps between sections (6-12pt)
  • Bullet spacing: Consistent (3-6pt between bullets)

Visual Hierarchy

  • Use bold for company names and section headers
  • Use consistent date formatting (all right-aligned)
  • Use consistent bullet style (• or - throughout, not mixed)
  • Use horizontal lines sparingly (one under header is enough)

File Format

  • Always submit as PDF unless specifically asked for .docx
  • File name: FirstName_LastName_Resume.pdf
  • Keep file size under 1MB
  • Ensure text is selectable (not an image)

ATS Optimization

See ATS Optimization for deep dive. Key points:

  • Use standard section headers (Education, Experience, Skills, Projects)
  • Avoid tables, columns, headers/footers, text boxes
  • Use standard fonts
  • Include keywords from the job description
  • Don’t use images, icons, or graphics
  • Avoid abbreviations without full text (write “Kubernetes (K8s)” on first use)

Resume Review Checklist

Before submitting, verify:

  • Fits on one page
  • No typos or grammatical errors
  • Consistent formatting (dates, bullets, spacing)
  • Contact info is correct and professional
  • All links work (GitHub, LinkedIn, portfolio)
  • Quantified impact in bullet points
  • Tailored to the specific role
  • ATS-friendly formatting
  • Saved as PDF
  • File named properly (FirstName_LastName_Resume.pdf)
  • Reviewed by at least one other person