Software Development

10 tips for writing a job-winning developer resume


As seasoned job hunters know, the first step on the road to finding work is to write a resume that gets you the interview. Unfortunately, some of the traditional resume writing rules just do not work well in the software development industry. Here are 10 tips for writing a programmer resume that will increase your chances of getting the interview.

Note: This information is also available as a PDF download. For a more detailed look at this topic, see the blog post "Write a resume that will land you a programming job."

#1: Provide a skills list up front

The hiring manager wants to know if you have the skills the company is looking for. An "experience" section gives managers a good idea of how much experience you have, but if you have a "skills" section at the top of the resume, their eyes go there first. Sure, you may be making it a bit easier for them to weed out your resume. But on the flip side, you might bring to their attention some skills they would otherwise overlook. At the very least, the hiring manager will appreciate the skills list.

#2: Make the experience interesting

Most developers on the market have written a data-driven Web site or desktop application. To give a bunch of examples of these on your resume is not impressive. What does impress a potential employer is experience that has something unique about it, showing you've done more than just "Hello World" level work. If you've been working under unique constraints or in environments with high levels of transactions or zero tolerance for failure, that looks very good to the person reading the resume. So show me how your experience is different, and I will see you as different.

#3: Root out grammar, spelling, and other common mistakes

Over the course of my time hiring, I have seen all sorts of grammar and spelling mistakes on resumes. One of the most embarrassing was when someone misspelled the name of the college he graduated from. Resumes do contain some unique grammatical conventions, and software development work in particular often revolves around acronyms or oddly spelled words. But that is really no excuse. Check your spelling and your grammar. This tip appears on just about every resume advice article I have ever read, but it clearly needs repeating.

#4: Education counts, but not for much

Unless you are just entering the job market for programming or are applying for a very specialized position, your education is not terribly important. Sure, you need to put it on your resume, but list it last, please. The hiring managers who need or want to know about it can find it, and the others won't have to spend time on it. The world of programming changes often enough so that somewhere around seven years later, most schooling (except for "principles and theory" subjects, like mathematics or "pure" computer science) and certifications have little in common with the current working world reality.

#5: Get to the meat, quick

The traditional resume format includes a lot of information that's just not needed, in the mind of the development manager. Your summary and possibly even the objective are two such sections. There really is no way to provide a summary that describes most programming pros in a way that is accurate, yet shorter than a resume itself. This is why most summary sections read like so much useless drivel: "Seasoned programmer with 10 years development," followed by highlights of the skills section. Thanks, but no thanks.

The objective is often (but not always) just as useless. If you are looking for a change of pace, it offers a great way to keep the reader from pigeonholing you based on your skills and experience. The intermediate programmer looking to slide into a senior developer position can safely skip the objective. The senior programmer who wants to become a software architect or a DBA needs to state an objective. So avoid the summary at all costs, provide only useful objectives, and let the reader get to your skill set as quickly as possible.

#6: Formatting matters

The formatting of your resume is important. While the days of mailing resumes printed on premium stationery are long past, it is still a document that someone needs to read on a computer screen and on paper. That can be quite a balancing act, believe it or not. This is not the time to show off your inner Picasso, unless the position you are applying for is of a visually artistic nature. This is the time to enhance readability. That means using a larger font (10 to 12 points), a common font that all computers have (if your document format does not bundle fonts within it), and one that looks good both on the screen and off. My recommendations are Verdana, Arial, Tahoma, Calibri, and Helvetica.

Use enough whitespace so that the document does not seem too dense, which will turn readers off. At the same time, don't waste so much space that it takes eight pages to print 200 words. Of course, the format of the file itself is important. My experience has been that 99.9% of the recruiters out there will ask for your resume in Microsoft Word format if you send it in any other format, so make sure that you can provide a document in the standard .doc format.

Always keep in mind that the resume is your primary tool for selling yourself. If readers can't consume the information in it, whether due to technical issues or readability problems, they will quickly move on to the next resume.

#7: Be cautious with the length

Regardless of how your document is formatted, try to keep the length between two and four pages, unless there are extremely special circumstances. People who spend a lot of time doing short-term contract work can have longer resumes, and people just entering the job market can have shorter resumes.

Overall, it is tough to properly highlight your technical skills and more than one position in the traditional one-page resume format. Two pages should be the baseline for any intermediate or senior developer. But after about four pages, the reader's eyes start to glaze over. Much like your education, the experience you had more than seven or eight years ago is not terribly relevant, but the hiring manager does like to see an arc of increasing responsibility or project difficulty.

#8: Properly document your history

Programming is not like most fields when it comes to employment history. For one thing, many programmers are contractors, which leads to an employment history that can look like a train. In addition, the dot-com bust is not too far behind us, and IT has always been an industry with a lot of bankruptcies, mergers, and acquisitions.

The problem is, no hiring manager likes to see a long list of short-term jobs. If your resume has a string of such jobs, with job titles that get bigger and bigger, you look like someone who has no loyalty. On the other hand, if the jobs seem basically the same (or worse, get lower on the totem pole), it makes the reader think that you may simply be unemployable. If you have a legitimate reason for the short-term jobs, make sure that the reason is obvious. For example, mark the contracting/consulting positions clearly.

#9: Don't put the reader at legal risk

No hiring manager likes to be accused of prejudiced or discriminatory hiring. Not only is it unethical, but it is illegal. So hiring managers who are trying to do the job right will be familiar with the list of questions they can't ask an applicant. Your part of the equation is to exclude this information from your resume. The hiring manager does not need to know your marital status, ethnicity, nation of origin, age, religion, or sexual orientation. There are a lot of other things the hiring manager does not need to know, either. If you include these irrelevant details on your resume, the hiring manager will feel scared and skittish. Leave these details out, please.

#10: "What a geek!"

In high school, you may have hated being called a geek. But today, you are trying to find work as a programmer. "Geek" is "gold" to hiring managers. Find a way to show them that you are smart, love programming, and are constantly growing, learning, and exploring new ideas. Talk about your relevant hobbies if you have any, like contributing to open source projects or volunteering to teach local kids programming. Let them know if you like programming or computers enough to deal with them outside of work.

It is a really simple equation for the hiring manager. While two candidates may be equal today, the candidate with passion will be far more advanced tomorrow than the candidate who treats it as "just a job."

About

Justin James is the Lead Architect for Conigent.

29 comments
Professor8
Professor8

Well, I'm glad to see you acknowledge that most work these days is being a body shopped. And lots of stints is what that's all about. It's what the executives are driving, not the software engineers, data-base designers, etc. But then you seem to think it's possible to spin the facts, but you don't say how. If you've got titles that seem to run up and down the respect scale, that's just the way it is. If there were a talent shortage, of course, none of these would be significant issues. If the hiring manager could piece out that you were somewhat, sort of familiar with the field, he'd be eager to hire you regardless of education, grades, titles, etc. Or was this meant to be creative writing coaching, or an exercise therein?

hallc3
hallc3

Excellent tips, this will be very useful in the hunt, thank you for this most effective tool. CDH

djswave
djswave

You should have a summary in point form at the top of the resume that responds directly to the requirements of the job posting. Hiring managers short list on the first 10 lines of a resume. It's just like a book where if the first 10 lines don't grab them then they won't continue. A better format can be found here... http://thecidervinegar.blogspot.com/

RayJeff
RayJeff

I'm glad I read this. My resume is basically the resume of someone who is a PC tech supporter. The interesting part is that at a former job I was working where I did tech support for almost 3 years last year, for those 2+ years, I was brought into an ongoing project. It was a 5 year project and when I as hired, it was the beginning of year 3. The work I did on the project was application development (database development and user-interface development). After I left that job, I basically went back into tech support, but in a data center environment. I enjoyed the application development work and I want to go more into that area. I've had some "difficulty" I think in applying for programming jobs. I've applied for 8 programming jobs since June 2006. Out of the 8, I've had callbacks on at least 3, but I haven't had any interviews. One was for an entry-level programming training program with Blue Cross Blue Shield. Right now, I'm waiting to hear back if I will be able to take the test to get in the program. The problem is that I have practical experience on one had vs competing with college graduates. Another job was through an agency for an Access developer. I got a callback after they received my resume, I got a confirmation and nothing else since...this was September of this year. That's basically been what's been happening when applying for a programmer or a programmer analyst position. After reading the post and other post connected to it, I don't know how I can modify my resume to make it more noticeable. Should I have a section just specific to what I did in that project I worked on? Because I have to admit, when it comes to describing exactly what I did as far as programming, I didn't go into detail because of the many tech support roles I filled. So, how does a person who has only had one job doing programming make their resume stand out????

Justin James
Justin James

This isn't like it was 10, 20 years ago. Most people do not send a resume in directly to a job ad, they have one posted online that recruiters respond to. Sure, the job sites allow you to send your resume in response to an ad, but it really is not possible to customize the resume for each response. At best, you will have a "cover letter" text field to put things like that in. By the time you know enough about the company that the position is with, and have the opportunity to tailor your resume to suit, they have probably seen the original anyways and will be fairly suspicious of any changes. This is a whole different world than it was even a few years ago, that's for sure! J.Ja

Tony Hopkinson
Tony Hopkinson

to keep things fairly general, otherwise they'll throw the resume in the round file before you even get to see how 'good' it is. This may be upsetting, but when we are out of work, we aren't all sitting around waiting for company X to put up a vacancy. Course if you give me an interview, this statement was definitely made by another Tony Hopkinson :D The best job I can get now, that puts food on the table will do. This is what employment is for. I have done targeted resumes, but that has usually been based on a recruiter giving me enough information to do so. That means either they've contacted me because I haven't excluded myself with a resume for a completely different job, or I've seen enough in their advert for me to bring myself to their attention. One recruiter excluded me from all jobs in the UK, because while I was working abroad, I had 'looking in Europe' on their database... I need say no more, they are thick, makes me wonder why firms bother with them to be quite honest.

Justin James
Justin James

Your location is atrocious. The closet city to Lynchberg is Florence, which is a burnt out shell of a city with little IT. Also, you *really* do not want to work for BCBS if you can help it. Send me a private message through the site, let's chat on the phone. I can pass a bunch of references regarding work in the Columbia area through to you. In fact, I may know of an open position right now that you would be a good fit for. Outside of that, another item to consider is some unpaid work. Controbute to an open source project, do some fairly challenging projects at home, or do some volunteer work for a charity. Those will all give you something to fill out your resume, while learning and maybe even helping others at the same time! J.Ja

Tony Hopkinson
Tony Hopkinson

Don't pad , but get some meat into your one programming job up to press. The others emphasise any 'programming related' stiff you've done. Scripts, installation, fault finding.... Programmers do muxch more than prgram. Oh if you've been involved in any projects, lifecycle experience i always good to mention in passing. It's going to be a hard go breaking into a coding job against graduates without experience. Any small rejects you can take on in your current job. Access DB, internet, scripting. Put yourself forward as a programmer who supports... One of the other oft neglected advantages is domain knowledge by the way. If you know support then maybe you should look for coding vacancies in companies who support...

Tanya Mikhno
Tanya Mikhno

... and want to add that there is a plenty of information about every candidate available from various social networks i.e. LinkedIn, so it is easy to retrieve the original version of the resume for me, it is easy to support one composite version of the resume and update it every time I get a new job

mdhealy
mdhealy

There are various types of agencies, not all of which are "body shops" who take lots of resumes and then look for jobs that fit. I'm in an aspect of Research and Development where searches tend to be much more individualized and we often use what are known in the headhunting trade as "retained search" firms -- the same sort of firms as companies use to find new CEOs except my colleagues and I get paid less in a year than our CEO makes in a few days. A retained-search firm is paid X dollars up front, Y dollars on hiring, and Z dollars after the employee has been on the job for a year, to find somebody for a specific slot. When such an agency is talking to a candidate, the duration of that conversation is bimodal: either they quickly conclude this person won't fit this slot so I move on to somebody else, or they quickly conclude this person merits an extended conversation. In my world, the resume still needs to be customized for the specific opening. Also, in my world education and scientific publications are very important aspects of the resume, and presenting a scientific seminar a key part of the interviewing process.

Justin James
Justin James

Actually, there is a HUGE talent shortage. It is just very precise. More like "talnet pinch points". Entry level up through intermediate programmers are all over the place, and they now have to compete with the offshore workers and H1B workers. Senior level people, "rock stars", and true architects are unbeleivably hard to find. We have been searching nationally for 6 months, flying them in, and paying for relocation because they do not exist locally (mostly an AS/400 type of town), and even nationally we've been having a hard time finding them. There is a reason why we were not finding them locally, because few have a desire to be in SC in the first place, and they aren't being "grown" by local shops either. J.Ja

RayJeff
RayJeff

You know, I have to say that I've been one of the lucky ones to be able to find and get an IT job in this area. When I got my Associate's degree, I was one of very few of my classmates that were able to get an IT job. Yes, some did try to relocate and they couldn't secure an IT job. So, what did they do? Changes fields. I haven friends who have bachelor's degrees in Computer Science and live in states like Virginia, California, etc and haven't been able to get an IT job. No...I hate to say it, but you must not be playing attention. There isn't a talent shortage...not at all. The HR people and hiring managers just don't know what they are doing.

RayJeff
RayJeff

You're going to love this, Justin. My first 3 IT jobs happened to be in Sumter. Even though I shouldn't, I still consider it a job, especially since it was my very first IT job. I was a workstudy at Central Carolina tech for the 2 years I was a student there. Then, when I transferred back to USC Sumter, I got a part-time job there. And then for about 2 years, I left there and got a job working at Morris College, doing the same thing; and this is where I worked on the project. The division I worked for was going through a national accreditation. My part of the effort was to move all of the division's data and corresponding overall college data into an electronic form. My last 2 jobs were in Columbia. So, yes...I KNOW more than most that the area I live in is No Man's Land for someone with a tech background/experience??? *lol*

Professor8
Professor8

If there were a talent shortage, location wouldn't matter; they'd be willing to relocate you to any of a dozen locations around the country... and cover the arrangements to fly you in for the interviews.

Justin James
Justin James

Sumter is not even on the map, job wise, which is why I didn't mention it. :) I definitely suggest getting to Columbia, Greenville/Spartanburg, Charleston, or Charlotte. :) J.Ja

RayJeff
RayJeff

Atrocious isn't even the word. Actually, the my location in Lynchburg makes me dead equidistant to Florence...and Sumter. I'm assuming you emphasized Florence more because of a "better" chance of IT jobs...if there is such a thing. Interesting you brought up Access. That job I mentioned, it was through Spherion's office in Florence. I was thinking it was a long shot. but I thought since worked through Spherion's Greenville office for about a year in March at ACS in Blythewood, that i would've had at least a good head's up. Doing volunteer work/home projects, I don't have any problem with that. Matter-of-fact, I've been trying to do that. I've been starting some small projects for friends of mine (web development). I was actually working on a database since last year for a friend of mine whose an elementary school teacher, but we had a major falling out. The database is basically done, I just haven't tested it yet. BCBS...hmm. The only reason I'm considering it is because I friend whose been trying to get me to up there with her for the past 3 years. Because of the development work I've done, she thinks I would enjoy working there. But, as much as it would be interesting, I haven't had muck luck even getting a call for an interview. Out of 5 times I've applied there, I've had one interview.

Tony Hopkinson
Tony Hopkinson

Accomplished X, Y and Z with tools A & B Lets face it almost any twit can bash together a data aware windows app with Visual Studio. Doing the database design, writing the backend business objects and connectivity , knocking up the front ends... Knitting it all together requires a lot more ability, especially for an enterprise level system. It's what I always emphasise, I develop systems not programs, on occasion including help, documentation, config management, installation wizards... Apart from very high end stuff, most businesses would much rather employ people who can turn their hand to many aspects of a development, than people who can do merely one thing. I do a five hour round trip for my job, place isn't dead, but developer opportunities are a bit rare. Biggest employer is the local steel industry, I went back there on contract after being away six years and started in on the code I was writing when I left. Not a lot of call for Fortran 78 in VMS 6.0....

RayJeff
RayJeff

I guess that's one thing I really haven't done, as far as my resume goes. I guess I haven't because of my resume itself. It's in chronological format. With my resume as it stands, without the references page, it's 4 pages long. That's as much as I can trim it; Everything is relevant. The project I worked on. Tony...it was REAL! The only small regret I have is that I didn't get a chance to be involved from the very beginning. It was a 5 year project and I came in on year 3. Basically, I had 2 years to come up with a design, develop it, test it and use it. So, everything I learned in school about the SDLC, I put it in to use, more or less. I say more or less because I was the IT guy, I had to do everything...systems analysis, user interviews....the works! So, yes...programmers definitely do more than just program. I've been thinking about moving to a better geographic location for a while now. Where I live is a true dead end for me for any type of decent IT job. I have to think about as much as a getting decent job as much as my education. I'm working on my B.S. in Computer Science degree. So, if I can find a job at/or near a school I would be thinking about, all the better.

RayJeff
RayJeff

My resume is in chronological format as well and I have multiple versions of my resume. The versions aren't too different from each other. They are shaped based on the positions I've applied for.

Professor8
Professor8

I keep a light-weight one on the web, and one with the detailed skill inventory that I send. I get nibbles from the light-weight one, but they're never the kinds of work even it says I'm fit for and seeking. The detailed one seems to leave them confounded... well, that's the most charitable term. I went through all of the format variants over time, but what it comes down to is that recruiters and hiring managers want a traditional chronological format.

Tony Hopkinson
Tony Hopkinson

I describe myself as a systems integration specialist. The perception of specialist is expert, ie some one who know f'all about anything else. If you want a long career in IT, as opposed to a long stint with an employer( does this still happen :p ) steer well clear of being stuck in a niche is one of my top recomendations. There are those who will disagree, some of them have oh two to three years in the job. :D

RayJeff
RayJeff

The reason I used specialization is because of my work experience. The majority of my work experience has been tech support. It's been very broad, because the support I provide was desktop (Windows programs, etc), hardware, and networking. Now, this is were I use specialization. During the 2+ years I worked at the job where I did the usual tech support things I've been doing before, that's where I worked on the project where I did programming, systems analysis, and database development. Along with that, which I haven't added directly in my resume, I also did data analysis. After I left that job, my next 2 jobs afterwards were basically tech support jobs as well, even though I worked in data center environments as a computer operator, it all still amounts to support. So in my mind, that's why I used specialization because of my work experience.

Professor8
Professor8

Hmm, I'd call up to 5 years just getting started. Some of the literature suggests that if you know 10 or more programming languages you're likely to be pretty good at everything... but tell that to today's body shoppers.

Professor8
Professor8

Yep, too many recruiters want to force people into a rut. If your most recent work was doing X with tool-set B, they only want to consider you for another position doing X with tool-set B. Not even doing X with tool-set A or C or D or E. And if you were the creator of tool-set A, they'll blather, "But have you ever used this inferior piece of garbage from M$? If you haven't used their piece of garbage you couldn't possibly understand how to work with that kind of tool-set.". And forget about having moved from tech support to tech writer to analyst to tech support to software architect to data-base analyst to principal software engineer... In such a case you're not suitable for anything because you're job titles don't line up nicely with their preconceptions chronologically.

Tony Hopkinson
Tony Hopkinson

a specialisation. Nor do I see how a formal qualification will make you less specialised. I sell myself as a developer. My resume is layed out as accomplishments. Then underneath a this made use of my skills in. Almost as an afterthought, though actually to give the buzzword / acronym searchers some positives. I'd like to be able to tell you that the experience, three years is a good amount, does count more than a degree. I don't have one myself, but I've got twenty plus years in , no one gives a crap about my formal education if they can afford me. Unfortunately, three years possibly in bits and mixed in with the support, will probably leave at least the recruiters looking for that bit extra, which would be formal education. If you can afford to do it, do it. Part time might be best, you'll almost be starting again if you take time out in academia. Despecialising for me, is commercial experience in five different languages, four mainstream DBMS's, five operating systems,... I'd call ending up being a VB6 expert with access on win95 bad luck personally. :D It was the mix to have once upon a time, and you could earn good money, nowadays, about as much use Dodo egg recognition. Take every opportunity you can to add more tools to your box. Database design is a skill, programming is a skill, VB6, C#, Fortran, Sybase, OO ... are tools. Very very few people can make it past help desk ( or even to the help desk) without a formal education nowadays, unless they set up their own business and make it. In days of yore, when I started qualified programmers were rare and expensive, so grooming a raw natural talent was a viable option for a business, now it's viewed as heretical. I've had people on this site , tell me I can't program because I haven't got the formal education, or that I have no drive or ambition. Not an uncommon attitude in the industry I'm afraid.

RayJeff
RayJeff

I tend to think that is my problem. I became specialized by chance. For almost 3 out of 7 years, I've done development work (programming and database). Along with the programming, the remaining 4 years I've done tech support (end-user, hardware, networking, etc). This came by chance while being a workstudy employee at the university I first attended. So, it's just been by pure luck and coincidence that I've been working not only in tech support all of these years, but in the education sector. So, in the past year, from June 2006-March 2007, I was really fortunate to work in the private sector doing a completely different job. I would hope that, while my experience in the private sector was brief, it would help to boost up my resume. When I look at my IT experience, I see myself as having broad experience that should help accentuate my programming experience to find a programming job. But in reality...it has me a little discouraged. So, it seems like the only way to "balance" it is for me to complete my bachelor's degree.

Tony Hopkinson
Tony Hopkinson

If you chose to change tracks, you would be just another body. A lot of us are good at what we do, but not rare enough or valuable enough to merit that sort of investment. I've gone to great lengths to avoid specialistaion in order to have a broad appeal to the market, as far a I can make out I've gained more than I've lost on that front. That broad appeal of course means a less specific 'advert', except in rare circumstances.

Justin James
Justin James

You are quite right... since this is an article specific to software developers, there are some things a bit different from the standard resume world, just as your specific industry (probably even for programmers in the industry) has some differences! J.Ja