A clean, ATS-optimized LaTeX resume template + in-depth guide built by PROGSU to help early-career developers write top-tier software engineering resumes.
Built by students, for students — powered by PROGSU, Georgia State’s tech club for builders, coders, and creators.
This guide compiles the best resume practices to get into these tech roles we're all aiming for — even with no prior experience.
Your resume is the biggest asset in your job search!
Before any interview, referral, or offer — it needs to get past the recruiter screen and Applicant Tracking Systems (ATS).
- It's asymmetric: a few hours of focused resume work can unlock dozens of interview opportunities.
- In this space we're breaking into, your resume is often the first impression — so let’s make it count.
Recruiters skim resumes in 6–12 seconds. Top to bottom. Left to right.
So we structure by relevance, not chronology: Notice how the relevancy for internships is your education that is one of the things recruiters confirm and check first, so we put that at the tippity top. After graduating when you have more relevant experience, education goes below it.
- Work Experience — put below Education if you're applying to internships
- Education
- Skills
- Projects
- Coursework
- Leadership / Clubs
- Awards / Certifications
Tip: If you're applying for internships, keep Education at the top. Intern recruiters care most about your school, GPA, and that you're a current student. If you've interned at a FAANG company, lead with that!
The header should immediately tell the recruiter who you are and how to reach you.
- Full Name (large, bold)
- Phone number (U.S. only)
- GitHub
- Portfolio/Website (if relevant and active)
- ONLY IF US CITIZEN! Citizenship status (especially useful if you have a non-Western name)
- Using
.eduemail (especially if you don't check it) - Not linking LinkedIn — recruiters actually click this!
- Including your full mailing address (obsolete)
- Hyperlinking text (just show the raw URL)
Your Education section should be compact, clean, and front-loaded with the most important info — especially for internships.
- University name
- City/State (optional unless applying local)
- Degree + Major (Minor is optional)
- Expected graduation date (critical!)
- GPA (if 3.5+)
- Relevant coursework: Data Structures, Algorithms, Software Engineering, etc.
- Honors/Awards (or leadership if none)
Note: Keep this to 2–3 lines max. It should never take up more vertical space than your biggest project.
Bullet points are 90% of your technical signal.
Bad bullet points = mid resume
Strong bullet points = legit internship-level resume
Accomplished [X] by doing [Y], resulting in [Z]
This is how we write high-signal, ATS-optimized bullets. Be concrete. Be quantifiable. Be technical.
Made a multiplayer typing game using React and Socket.IO.
Developed a real-time multiplayer typing simulator using React and WebSockets, to support 50+ concurrent users with <50ms latency and persistent session states, resulting in 3,000+ matches played in the first month.
- Start with a strong technical action verb (Developed, Engineered, Optimized)
- Include a feature + tech used
- Explain why it mattered
- Include results or metrics if possible
Tip: Stuck? Brain-dump what you did. Then rewrite it with the XYZ structure.
- Does it start with a technical action verb?
- Does it name at least one tool/tech?
- Does it show why that feature mattered?
- Does it include a number or result?
This is your core section if you’ve had internships, freelance gigs, research, or even volunteer engineering work.
Even without big names on your resume, you can still make this section look like a legit engineer's — if your bullets are solid.
- Position title (make it sound technical!)
- Company/Org name
- Location (optional; use “Remote” if relevant)
- Start + End Dates
- 3–4 bullets using the XYZ method
| Original Title | Better Version |
|---|---|
| “Intern” | Software Engineering Intern |
| “Volunteer Web Dev” | Web Developer |
| “Research Assistant” | Computer Science Researcher |
| “IT Assistant” | Backend Developer |
- Vague bullets like “Helped with codebase”
- No tech/tools listed
- No outcomes or impact
- Using the same verb repeatedly
- 5+ bullets or one-line walls of text
- Use LinkedIn job listings as inspiration
- Write long-term personal projects like jobs
- Open source = valid experience if team-based
TLDR: Don’t write like a student learning — write like an engineer shipping.
Projects are your proof of work.
Treat every project like a feature at a startup — not a class assignment.
Most recruiters skim this, but hiring managers read it closely.
- Project name
- 1-line tech stack summary
- 3–4 bullets using XYZ
- GitHub/demo link
- Use strong action verbs
- Include tech stack
- Explain problem solved
- Show metrics/impact
- “Built a personal website using HTML/CSS”
- No bullets
- Generic verbs
- No tech
- No results
- Think like a product engineer: What problem? Who used it? What changed?
- Reframe class projects like real-world features
- Use phrases like:
- Secure backend
- Real-time sync
- Seed-based PRNG
- Stateless scaling
- GraphQL API
This section helps ATS match you to job descriptions — and rounds out your technical profile.
For internships: include most technologies you’ve touched and can talk about
- Programming languages
- Frameworks/libraries
- Tools/platforms
- Databases/cloud
Caution: Don’t label groups — mix by relevance and strength.
- Putting “problem solving” or “communication” — this isn’t LinkedIn
- Alphabetizing or randomly ordering
-
Open in Overleaf (view-only link):
Click here to view and copy -
Make a copy to your own Overleaf account
File → Copy Project -
Or copy the
.texcode into a new Overleaf project manually
More tips, writing patterns, and examples coming soon...



