Stack OverflowBest Format for a Software Engineer's Resume
[+103] [38] Adam Haile
[2008-09-29 16:43:10]
[ career-development resume cv ]

I am looking for good, objective ideas and examples of a resume for a Software Engineer. By all means, post a link to your own resume if you are comfortable with doing so.

Mostly I am looking at how it should be formatted and what kind of information should be included (and in what order on the resume.)

[+54] [2008-09-29 16:47:53] JeeBee [ACCEPTED]

There is no single good way to structure or layout a resume.

Avoid common mistakes (MS Comic Sans; bright distracting colours; pony pictures; and incorrect grammar and spelling) and consider the following typical guidelines:

  • Use a clean, legible font, with clear headings.
  • List core skills near the beginning of the document.
  • Don't cram too much into too small a space - leave room for white space.
  • Keep the content to within two sides of paper.
  • Order work experience or education by date, in descending order.
  • Write about your achievements at each job, and what you used to attain them.
  • Include information about being a team player, when relevant.

Large gaps in your development history might require an explanation. Be sure to have a good explanation prior to the interview (do not think one up on the spot).

Talk with a human resources representative about the subject. Many university and colleges have departments that specialize in resume writing.

Can you or some other SE's who think they have a nicely formatted resume link them? I would like to see a few. I'm a visual person. - Simucal
(4) Djangopony could be on it. I think that would be a pony picture allowed. =) - Till
(6) I used this site as a guide on my last 'redesign' - brass-kazoo
Ah, the paperless office, saving trees since 1971. :-). I guess that most people would still write their CV/résumé within Word or similar, and two sides is a good length to limit yourself to - by being concise with lots of detail rather than wordy. It will only get printed at any prospective employer anyway! - JeeBee
[+32] [2008-09-29 16:54:07] Garth Gilmour

The classic advice is:

  • Put your name at the top in large font (for ease of sorting). Dont put 'Resume' or 'Curriculum Vitae' - its amazing how many people still do this.
  • Follow with a comma separated list of your key skills on one line. Not everything you have ever used but the 4-8 things you are happy being quizzed on in detail
  • Next comes your employment history in reverse order (no one cares where you started 'n' years ago), then your industry certifications and finally your education (reversed again)
  • Be very careful if you have a PhD and an impressive publications list. Unless you are going for a very specialized position this can do you more harm than good. Be modest (e.g. 'publications available on request')
  • Assume that the whole thing is going to be faxed, scanned, photocopied and folded several times before it gets to the person who can give you the job. So no fancy fonts or use of colour and never any images.
  • Contact information should go in a footer at the bottom of each page. You want it to be readily available but not to waste useful space.

I keep mine here [1] - note that its an abbreviated version for clients who want a summary.


Why not put Resume/Curriculum Vitae at the top? - Kristian
(2) Imagine a recruiter or a manager with a pile of 100 CV's for a position. He/she already knows what they are, what they need to do is organize them. So you want to make it as easy as possible from them to find your name and hopefully get the early interview... - Garth Gilmour
Good advice. It's obvious at a glance, or it should be, that it's a resume, adding that as a title is especially redundant. - Wedge
Kristian: Because it's obvious from context. If you're just posting your resume on your web site, that's one thing, but you're otherwise just wasting space. - JasonTrue
(2) Unless you have both a resume and a CV (common to people who spent some time in academia). - Uri
[+23] [2008-09-29 19:28:56] Anders Sandvig

Here are some suggestions:

  • Keep it short and to the point. Few people bother to read anything longer than three pages. Put the most important information first, since when someone is scanning a large stack of resumes, they are only likely to read the first few paragraphs or the first page before they move on to the next in the pile. Because of this, you must make your first page a memorable one.

  • Write a short (one paragraph) "snippet" about yourself at the top of the first page (after the basic personal information, contact details, etc.). If someone only reads the first two scentences on your resume, this is your (possibly only) chance to make a good first impression.

  • Summarize your areas of expertise and key domains with a few keywords on the first page. Again, this is your first impression for lazy and busy readers. Put "trigger" keywords here that will make peple interested in reading the rest of your resume. For example:

Key areas:
Programming, quality assurance, usability, networking (TCP/IP), enterprise systems, distributed applications, Scrum, security, databases (SQL), test-driven development, web 2.0, cloud computing.

Note: don't fall for the temptation to put a lot of buzzwords in this section. If they trigger anything for the interviewer, you probably don't want to work there anyway... ;)

  • Include keywords for your work experience. If you write a few sentences about each job position or project in your list of work experience, it is often a good idea to also include some keywords about the languages, concepts and technologies used. Again, this is to increase "scannability" of your resume for people who don't have time to read it all. Example:
2000 - 2005: Mad scientist assistanct, Insanley Rich Man Inc., Secret Place. 
             Worked as an assistant for a mad scientist on a private research
             project funded by an insanely rich man. Developed humanoid robots
             to feed and play with his pet tigers while he was on vacation. 

             Keywords: Python, C++, Scrum, robotics, microcontrollers, 
             animal psychology.  
  • Include your hobbies and interests. They tell something about you as a person and it gives the interviewer a chance to "break the ice" and make you relax with some smalltalk. You might be surprised how often geeks (even geek bosses) share similar interests, also outside the domain of computers and natural sciences.

  • If you have experience in many programming languages or technologies, it might be useful to list them in a three-column table listing the language, years of experience and your subjective experience level. For example:

  Language    Level           Known since
  C++         Advanced        1995
  Perl        Basic           2005
  PHP         Intermediate    2000
  Java        Advanced        1998

Update: I have elaborated on some of these thoughts (and others) in a separate article on my blog [1].


+1 excellent advice: short and sweet; include a short paragraph describing what you want and what you have to offer - Michael Haren
"Mad scientist assistanct... Keywords: Python, C++, Scrum, robotics, microcontrollers, animal psychology." You forgot to include "creative spelling" in your keyword list. :-) - AndrewJacksonZA
[+13] [2008-09-29 16:54:21] Airsource Ltd

I like to receive them in PDF. Name of the attachment should ideally include your name, and not just be CV.pdf - it makes my life easier. Include a subject line in the email, and a short covering note saying where you saw the ad and why you are applying.

Anything more than 2 sides is too much. I want to know

  • Work experience
  • Level of programming ability, if not shown by work experience. Be honest. When a fresh grad claims intermediate C++, they invariably mean "took one course in it".
  • Degree, including grade, or equivalent
  • Hobby programming or anything that demonstrates an interest in programming
  • Other interests (e.g. team sports, organisations, communications skills)

Anything else is just fluff. I don't mind it being there so long as the CV is less than 2 sides total.

Absolutely NO spelling mistakes. If English is not your native language, then get someone to read it through.

A covering letter is also nice, stating where you saw the advert and what position you're applying for. If you mention the company and/or address the recruiter by name (if the advert states it), then try to spell the names correctly. It's amazing how many people don't.

EDIT -- I apparently need to defend my position that I like to see the university grade. Since I usually target fresh grads for recruitment, University represents the most recent three or more years of their life. I want to know what they did with it, and the grade is important. I also take into account what they tell me about the course, their projects, and so forth. Despite what people say, I find that there is a correlation between people who do well at Engineering type degrees and who subsequently become good software engineers.

If you got a 3rd class degree, or whatever that equates to in GPA, then you are welcome to work here. But you not only need to show why you are good at software, you need to explain to me why you got a 3rd. Because at first face it looks like you pretty much failed in a course that you chose to study for three years. I know, of course, that there are plenty of good reasons why this may be the case, and I will ask. But the guy who got 70% in his degree has an advantage over the guy who got 50%, and that's just the way it should be.

(6) wow, remind me never to work for you. Anyone who cares about grades after a degree is completed is missing many excellent candidates. - tloach
(2) If you did the degree, I expect you to get a reasonable grade, or have a good reason why not. Otherwise, why bother doing the degree in the first place? - Airsource Ltd
It occurs to me that this might be a cultural thing. When I say grade, I mean final grade, as in First, 2.1, 2.2, etc. I think it's what's called a GPA in the US. - Airsource Ltd
(1) You've just given the first problem, my final average was around 70%. Care to convert that? And then, once you convert you lose information about how that stacks up vs. level to pass a course or stay in the program. - tloach
(6) You also have people who are excellent employees who don't test well. When an exam is >50% of a final mark, not testing well is lethal to grades. Do you rank your employees on who can regurgitate theory best in a 3-hour period? - tloach
(1) A decent university won't have final exams based around "regurgitating theory". - JeeBee
(3) It's a shame university grades don't say anything about a person's skills as a programmer though... - Anders Sandvig
@tloach, 70% is 70%. Why would I convert it? That would be meaningless. I would call up someone in the USA and find out how that result stacked up for your institution. - Airsource Ltd
(6) A university grade might not reflect programming skills very well. However at least it shows a level of determination/focus and organizational capabilities. I think the biggest thing I learned going through university was time management. - Ola Karlsson
(1) Cor your're a barrel of laughs aren't you?. I prefer to not reduce human beings to a set rules. I know a number of Oxbridge summa cum laudes of whom I would not give the time of day, never mind a job. Three things are essential: brains, energy and INTEGRITY. If they none of the last then you want them dumb and lazy. Otherwise think of the damage... - AndyUK
@AndyUK - that's why you should interview people before you give them a job. The CV is just a pre-filter. - Airsource Ltd
[+9] [2008-09-29 17:29:36] SchizoDuckie

My #1 tip that's confirmed working =)

Try to stand out! people looking for employee's read loads and loads of boring resumé's.

I built a webbased resumé [1]

Embedded in the document there's hidden input's that define date parameters. With these date parameters an unubtrusive piece of MooTools builds a nice clickable timeline.

Ofcourse, also MAKE SURE you have PDF and Word documents downloadable and/or mailable.

The theory behind it is that it will show the recruiter that you are willing to show off your skills and go the extra mile to stand out.


(1) +1 ! That is very cool. - Optimal Solutions
It is cool, but isn't that too much eye candy and bling bling for the average HR screening person? Just wondering... - André
I don't know. I aimed for a small company who knew what they wanted and i found that :-) - SchizoDuckie
(3) This approach could backfire with some employers. - MusiGenesis
(2) I don't even want an employer who doesn't appreciate this ;-) - SchizoDuckie return timeout. - sonstabo
[+7] [2008-09-29 17:52:02] KW

Go clear, short and sweet. And tailor it specifically for every job that you apply for.

[+7] [2008-09-29 16:59:20] Thomas Owens

I actually maintain three (well, two in three different formats) resumes. I have a "short" version (1 sheet of paper, front or front/back) that I use when meeting people. I also have a longer version that I maintain on my website and document/PDF format for digital consumption.

Something like that might be appropriate for you.

[+7] [2009-03-30 23:20:19] hypoxide

Latex! Why has nobody mentioned this?

Because latex is nasty to use :) - Matt Joiner
It's what got me my first job (well, that and qualifications, etc.) I particularly liked the fact that it, in combination with Ghostscript driving a 24-pin dot matrix, could produce output that was nearly as good as a laser printer. (Insanely slow of course, but this was back in 1994 so that was what I had.) - Donal Fellows
[+6] [2008-12-15 01:02:28] omermuhammed

This article The Art of Developer Resume [1] has some pretty useful thoughts on resume format.


Can't really take the guy too seriously if he thinks an "objective" section is useful... - temp2290
I liked his resume format, thats what I copied, not the exact word to word categories though. - omermuhammed
[+6] [2008-09-29 17:02:11] Steven A. Lowe

Follow all of the above advice except the pages limit (mine is about 7 pages after 30 years). Use whatever space is necessary to convey the depth and breadth of your experience, without being verbose

But keep in mind that a resume is a selling tool; you are selling yourself to the reviewer. Don't just list where you worked and what title you had, but put in bullet points of the things that you achieved and how they benefitted the company, e.g.

  • designed and implemented a whizz-bang foobar translator using XML, VRML, and SPAM, which resulted in a 77.4% cost savings to the company in the first year

Software engineers add value to the bottom line; given the choice between two engineers with identical resumes, I'd choose the one that told me the business value of the projects he/she worked on over one that did not. That tells me that this engineer understands his/her purpose is to add value not just flip bits and sling code ;-)

Good luck!

(2) The length depends on the position you're going for. If a manager has 200 resumes to sort through then they're only going to read the first page anyway. If they only get a few resumes then the length is less important. - tloach
(1) 7 pages is too long for any resume. Tighten up the editing, the resume should be bullet points not details. You can go over details in person. - Wedge
heh - 7 pages is the bullet points - Steven A. Lowe
(2) +1 for the 'list your achievements' but -1 for the 7 pages :-) - Klelky
@[Klelky] so to get it to one page i should only list the last 2 years' experience? :-P - Steven A. Lowe
[+5] [2008-09-29 16:45:22] bmatthews68

You can look at my latest CV [1] online.


You mispelled "complaince". - brainjam
[+5] [2009-12-01 06:07:26] trenton

The name of your resume should always include your name. Good ideas:


bad ideas:

trenton_lipscomb_resume.odt (sorry Open Office... we need a widely compatible format)

I've sorted through hundreds of resumes, and I'm sure at least 1 was lost due to a naming collision.

[+4] [2008-09-29 21:17:30] stephbu
  • Short - no more than 2 sides - preferably one.
  • Obvious - make it easy for me to see why hiring you is a no-brainer. Structure your CV to emphasize your characteristics that match my job-post.
  • Recent - tell me what you actually did in your last round of work - this is the experience that will most interest me. Tell me the highlights of your job too - I want to know where your passions lie.
  • Relevant - if you're going to tell me what you did in 1999 keep it simple I'll ask questions if I need to know. Telling me every position you've worked in since school may not actually help me.
  • Factual - anything you tell me could/will be called on - don't lie - it's not worth it.
  • No Alphabet Soup - list of products and codewords tells me nothing about you.

[+4] [2008-09-29 17:35:52] Brannon

As others have already said, keep it to a single sheet of paper.

One of my biggest interviewing pet-peeves is when someone lists something on their resume, but isn't willing or prepared to talk about it. If it's been too long for you to remember any details, don't list it. If your role in a project was minor and you can't speak about the project in general, don't list it. Don't list technologies that you aren't prepared to talk about or (if applicable) demonstrate at the white-board.

It's better to understate on your resume and wow at the interview, NOT the other way around (i.e. don't use the term 'expert' on your resume).

If it's on your resume, it's fair game in an interview, and that is usually your only chance to make an impression.

I had a friend work for the military doing encryption stuff. He had a hell of a time finding anything he could talk about with employers after that... - tloach
[+3] [2008-09-29 17:03:37] Maudite

Make sure it is one page. Bill Gates doesn't need more than one page for his resume, why should you?

He only had one real job, though... - Grant Johnson
Care to provide a link to his actual resume? - Adam Haile
Bill Gates only requires a couple lines for his resume: William Gates Founder, Microsoft If you're known in the industry you're applying to you probably are making phone calls, not sending paper. - tloach
(9) He certainly doesn't need much room for his education credentials. - Mike Reedell
does he really need a resume? bu u surely do - Kazoom
(5) Because people have heard of Bill Gates. They haven't heard of me, so I need to show them what I've done. - trenton
(7) I bet it just says "Google me b**ch" ... in centered, 20pt Times New Roman font. - concept47
(4) @trustfundbaby shouldn't that be "Bing me b**ch"? =) - trafalmadorian
touche. @trafalmadorian - concept47
[+3] [2008-10-02 09:21:51] user24079
  1. Leave out all the fancy formatting etc if you are sending to an agency as the first thing they do is copy the text into their database.
  2. If you are listing your education details, also list results, companies get suspicious if you leave them out, it makes them think you are hiding something.
  3. If you have a work gap, for any reason, put a note in as to what you were doing, even if it was just extended holidays. Companies dont like unexplained gaps in your work history.
  4. Whatever you put on your CV make sure you can talk for at least 10 minutes about it. Dont put anything on that you dont know about, you will be caught out, maybe not straight away but it will come back to bite you later.
  5. If you are active on any technical forums, put it in your interests and hobbies section.
  6. If you have a website put it in your contact details, but only if its something you would not mind your future employers to see.
  7. Something which a lot of agencies and companies were very surprised to see on my CV was a list of all the technologies I have used, number of years used, and last used. Dont list your level of competence in them, just how long you used them, it is better to explain your level of competence in person rather then just having a list of technologies with expert beside each one, people assume you are lying in that case.

Thats all I can think of for now. except for this one, never, ever, ever lie on your CV. you will get caught.

[+2] [2009-11-02 01:35:46] huitseeker

Ths comic [1] does a good job of succintly making cynical but not entirely untrue points.


[+2] [2008-09-29 16:47:30] luke

Don't have a huge laundry list of technologies (languages, frameworks, toolkits, etc) you've used. List your prior experiences, and include the appropriate technologies et al that you used specific to them.

List pertinent hobby projects as well as work experience. Be prepared to talk about anything and everything on your resume.

I wouldn't have a "laundry list" per say, but I'll argue that you should mention large frameworks and/or toolkits. - Rev316
[+2] [2008-09-29 17:25:12] cruster

I use the Europass CV [1] template. At least here in Europe, it's widely recognized and it's spreading rapidly.


Not sure about some aspects of it. Why put your date of birth or gender on a CV? Don't give them the ability to discriminate against you before they even meet you! - Stephen Darlington
Yeah, I'm preparing a CV for germany and it drives me crazy that they usually expect you to put a picture and personal information. It's like, if you care about that, at least wait until the interview to find out... - Mario
(1) In Europe, you always provide personal information like that on your CV. I have an 'American' and a 'Euro' CV, tailored to take these small differences into account. They will make you stand out, in a negative way. - Roel
[+2] [2008-09-29 17:27:39] micahwittman

Representation-wise, I like the approach of writing the source document in Markdown. This can be submitted when plain text is required (e.g. many web-based resume management systems) and it's already "ASCII formated". You can then convert to X/HTML (particularly for web-oriented employers expecting valid W3C hypertext docs). Finally, for a traditional publishing/printable/what-HR-depts-like format: print X/HTML to PDF.

[+2] [2008-09-29 18:00:27] Dennis S.

See for a series of podcasts and examples of a simple one page format that has been very effective. Yes, I know the site says "manager" and you wanted "engineer", but it doesn't matter - take the principles and apply them.

One page. One paragraph per position, including dates in that position and the responsibilities you had. A few bullet points for each position with your accomplishments in that position. Use numbers in your accomplishments, e.g.

  • reduced build time by 27% by reconfiguring Cruise Control and ant scripts

Work your technology buzzwords into your responsibilities and accomplishments - the OCR will find them.

404, got a fixed link? - Bryan Denny
[+1] [2008-09-29 19:05:52] Daniel Miller

I went with an unusual approach for an IA position about 2 years ago, the resume was well-received and a good interview-conversation-starter. I didn't get that job but ended up using the same resume for the next job I interviewed for, this time a UI development position, which I got! All that to say I'm not sure this is a great direction to go with resume-building, or even if it is that I executed very well at all, but I do still have PDF and PNG versions of it online [1] is three pages but meant to hold up as 1, 2, or all 3 pages. The 3rd page timeline did not get updated with the most recent revision.


Awesome. I'm not sure how well it would come across for non-design positions. I'm tempted to work ideas from this into my resume though, I especially like the 'interests/experience' matrix. - Roel
[+1] [2008-09-29 19:09:35] Guy

I'm wondering when I'll see a resume that includes a programmer's Stack Overflow Reputation or a link to their Stack Overflow profile - i.e. indicating their ability to answer technical questions.

I'd say that that would be pushing it for appropriateness... However, I might very well have a link to my SO profile on my website (which is on my resume)... it would likely be valuable for a potential employer to see what you've asked/answered. - Adam Haile
That would be grossly inappropriate. Reputation can be easily gamed as many have demonstrated. - Wahnfrieden
[+1] [2008-09-29 19:19:09] ManiacPsycho

I'm a consultant so it might be different, but I basically have my summary (what I do, .NET, SQL, C# yadda).

I list the:

  • Client - Dates Worked

  • Project Summary and Scope.

  • Type of development environment (.NET, SQL, MVP, MVC)

  • Then I list what I did on the project.

My resume is about five pages.

[+1] [2008-09-29 16:48:29] mattruma

I look at a lot of resumes and, in general, I like to see things in the following order: skills (ranking), job experience (including projects and innovations) and education.

[+1] [2008-09-29 17:06:46] Scottie T

It partly depends on how much experience you have. If you're fresh out of school, you probably have an internship or two, but not much work experience to list. In that case, instead of having the basis of your resume be your past employers and what you did for them, focus on your skills and talents and how you use them, even if it wasn't for a job. Here is an example [1] from my resume when I was fresh from undergrad. Include what you did as a member of any club or organization.

You'll notice I prefer to have my resume use strong active verbs, as well. This would include words like "developing", "designing", "writing", "creating", etc. Try to avoid using weaker words like "supporting" or "assisting".

There are tons of resume templates out there. Choose one that doesn't have much formatting and leaves lots of white space. Try to leave as much of that white space as possible.


[+1] [2008-09-29 17:15:00] Andrew

I found the strangely named pages [1] to be very helpful, as they are full of templates and example statements, not only for technically focussed job applications, but also managerial ones


[+1] [2010-09-12 23:48:06] logoin

I use [1] . I don't worry about format at all. The most important thing is still the content. The website provides a url (e.g. where you can use to distribute your resume such that people can download it in any format. It can even send you email notification when someone views your resume.


[+1] [2009-02-12 23:06:17] Klelky

Remember to mention the language used in each of the projects you list. I've seen far too many CVs which start with a list of languages and technologies but then don't link them to the experience.

If I can't tell where/when/how you used the languages or technologies that you claim to know then I assume you wrote them at the start to get past some auto-filtering process and its going in the bin.

Also - since there is no auto filtering process, if you're CV is too long (more than 3 pages) then I'm going to lose interest and move on to the next one.

[+1] [2008-09-29 19:32:13] Eric Ness

By far the best resume book out there is Resume Magic [1]. It's written by a long-time professional resume writer and has a ton of before-and-after examples to see how to improve your resume. It also teaches you to use the secrets of advertisers to write a resume that will capture the reader's attention. Both my brother and I have used it to write resumes that got us interviews.


[+1] [2008-09-29 19:40:55] Joeri Sebrechts

Having interviewed a few people, I can only list what I like in a resume:

  • Short: 3 pages or less, lots of whitespace (aka note scribbling space). Don't feel obliged to mention everything you ever did.
  • Tailored: going into detail about the things relevant to the position, skimming across the rest
  • Topical, not chronological: organize things based on topic, not date, but do make it clear which was your most recent position. Although I have to say this is not that important.

Other people may prefer other structures, so YMMV.

[+1] [2008-10-30 22:27:37] community_owned

Most important: short and organized, make it easy for those hiring you to see relevant details. I have reviewed many resumes, and when I get an 8 page resume it goes straight into the trash, I never even look at it. It's like the applicant is saying "your time is not valuable to me, I am going to make you wade through all this crap trying find important details." Volume never impresses me.

I used a 2 page resume even when I had 10 years of diverse software experience (nice because it fits on a single sheet, double sided). I have gone to 3 pages now that I have 15 years experience.

[0] [2008-10-02 09:37:22] Roel

Have a look at xmlresume ( It's an xml schema + formatters (xsl stylesheets) for text, html and pdf. It contains many elements that are 'common practice' in resumes. It makes formatting really easy, and helps you maintain a single source that you can use in different contexts.

[0] [2008-10-17 16:20:00] Peter Turner

If you do it in TeX and you'll impress those whom you wish to impress. Not so much if you do it in Word. If you make your resume in Google Docs and the URL prints off you are not a lucky guy.

[0] [2010-11-30 06:03:02] roony

Resume objectives [1] is your first impression, Writing a resume is challenging work. You have to work hard on every phrase and to describe more effectively.your objectives. what is d purpose of writting resume objective? How resume objective is helpful for our career. The objective has to be written in a good manner and it shoud be clear. Also provide an example of resume objective


[0] [2009-12-01 06:29:13] Rick
Engineer, not a designer CV. - Mavrik
[0] [2010-06-16 18:22:48] Francisco Garcia

My two cents goes for an online version of your cv. Specially if you have your own domain name and own hosting (total freedom to edit). Some small details that you cannot cover with a dead-tree format:

  • Links providing more info about the companies/projects you worked for
  • Source code samples
  • Online communities: Linkedin, SO...

Going a little bit further, a blog might be a great introduction letter

Ideally you should have something that is quick to read, but easy to navigate for more information

[0] [2010-08-06 22:42:59] user413527

Well I suggest instead of let us post the resume why don’t post your resume and ask us what’s on our mind. Any way if you real need sample check resume template for more different Software Engineer’s template.

For more resume template [1], sample resume and free job search site please visit us and we are glad to help you.