The Ultimate Programmer Resume Guide (and a Fail-Proof Method for Getting Yours Seen)

Written By John Sonmez

Ah, resumes.

I have a love-hate relationship with resumes.

Resumes are so important to getting that perfect job, but they seem like such a waste of time.

It seems like no one actually reads a resume, but rather gives it a quick look and forms a strong opinion about you almost instantaneously.

That is why resumes are both so important and so useless.

Still, anyone who wants to become a software engineer with a great job should have a good-looking, well-written resume that helps them get the interview they so badly want.

Yet… I find that most software developer resumes, well, suck.

If you are reading this, your resume probably sucks.

I don’t mean that as an insult. It’s just reality.

You are probably good at writing code, not at writing resumes.

When it comes down to it, resumes are more about advertising than anything else.

You can think of a resume as a one-page advertisement for you.

In fact, if you want to have a good––nay, a great––resume, you have to think of it that way.

The simple truth is, for most jobs you apply for, the only thing anyone will ever see is a quick 15-second glance at your resume.

It’s in those 15 seconds that the course of your life literally can be determined.

Interview or rejected.

Top of the stack or circular file system.

Like it or not, a good resume is important.

In this chapter, I’m going to help you to create a great one.

First Step: Don’t Create a Resume

Don't Create A Resume

I’m not joking.

Really, don’t.

I get quite a bit of flak for this statement, but unless you are actually a professional resume writer—or perhaps a copywriter—you shouldn’t be writing your own resume.

Yes, I know that sounds inauthentic.

You are worried about being a fraud.

Someone who can’t write their own resume is obviously not qualified for a job.

I’d never hire someone who farmed out their resume to a resume-writing service. I can spot it a mile away.

Trust me, I’ve been doing this long enough that I’ve heard every excuse.

In my book Soft Skills: The Software Developer’s Life Manual, I have a short chapter on resumes. I give the same advice that I’m giving you here, and plenty of people have told me, “I like the book except for that resume-writing part; I don’t agree with it.”

So, believe me, I understand that opposition.

Nevertheless, the simple fact remains: software developers who get their resumes professionally written by a good professional resume writer get more job offers and higher salaries.

I’ve seen it firsthand. I’ve had countless programmers who followed my advice and told me about how much of a difference it made, and to me it just makes sense. Here’s why:

There is an art to writing a resume.

Writing, especially persuasive writing, is a skill.

Like I said before, a resume is basically a one-page advertisement for you.

It’s not much different than a magazine ad that is trying to sell you the latest gizmo, gadget, or beauty product.

There is no reason to think that you, being a programmer, would have any real proficiency in writing a resume.

When I have work done on my house, I hire someone to do it.

Not because I can’t put a floor in or figure out how to tile a bathroom, but because, even though I might be able to get the job done, I know that someone who has done that job 1,000 times before is going to be a significant margin better than I am going to be trying to do it my first time. (I also acknowledge that I suck at these kinds of things.)

Not only is it not worth the 20 hours of my time it would take to tile my own bathroom versus paying someone to do it in four hours, but also it’s just not in my wheelhouse of skills—and I’m OK with that.

Think about your job.

The CEO of your company could probably figure out how to put up a webpage, write JavaScript, and program your product.

But he doesn’t. Why not?

Because he’s got you. You are the professional.

He knows that his time is better spent doing other important things like pretending to work and playing golf instead of programming.

Writing your own resume is just as silly as having a CEO of a company write code.

Yes, it’s possible and, with a large amount of effort, a decent job could be done, but why not hire the professional to do it?

So, my advice to you—even if you won’t listen to it—is to hire a professional resume writer, but be particular with who you choose.

Any old resume writer will not get you great results.

Picking a Resume WriterResume Writer

Picking a great resume writer is really important.

Everything I said above is worthless if you hire a bad resume writer who does a worse job than you could do on your own.

I suspect some of the people who are so against the idea of hiring a professional to write their resumes have either had a bad experience with a not-so-professional resume writer themselves or have been subjected to resumes written by some liberal arts major who couldn’t find any other job and decided resume writing looked like fun.

Therefore, it’s pretty important you get this figured out, don’t you think?

When looking for a professional resume writer, you want to first try to get referrals.

See if there is anyone you know who used a professional resume writer and got good results.

You should be looking for a resume writer who specialized in either software developer resumes or technology resumes.

The worst thing you can do is to get a resume writer who doesn’t know anything about technology and writes something like, “I spearheaded the C++ing of the project single-handedly by applying SQL to the polymorphic programming code.”

Bam. Wastebasket, and you look like an idiot.

Ask a prospective resume writer for samples of their work.

They should be able to provide you with real resumes they wrote for clients with fictitious names put in—or even real ones if they got permission.

Make sure you get samples of actual software development resumes, so you can see if they can actually write a good resume for a programmer.

By reviewing their writing, you will have a pretty good understanding of the kind of resume you are going to get.

If you can’t get samples, do not hire this person.

I also wouldn’t price shop very much here. Quality should be your number one concern.

Expect to pay anywhere from $300 to $500, but an even higher investment would not be ridiculous.

Think about this as an investment.

Having a great resume can easily land you a job paying 10 percent or more of a higher salary.

If you make $80,000 per year and now you can get a job making $88,000, a $500 investment doesn’t seem so pricey anymore, does it?

I am usually hesitant to recommend a resume-writing service, but you can find the one I’ve currently been sending people to here.

Working with a Resume Writer

Just hiring a good resume writer is not enough.

A resume writer can only create good output if they have good input—that part is up to you.

Make sure to have the following information prepared for a resume writer:

  • The exact dates of all of your previous relevant work
  • Titles and job descriptions of each job
  • As many major accomplishments you can think of for each job
  • All your education history
  • Any certifications you have or other honors
  • A list of what you consider your most important or relevant skills
  • A few sample job descriptions of the job or jobs you’d like to get hired for
  • Anything else you think would be relevant

Getting all this information can be a large amount of work.

You might think, “Well, what is the point of hiring someone to write my resume if I am going to have to do all this work anyway?”

The point of hiring someone to write your resume is not to do the grunt work of compiling data; it’s to present that data in a short, succinct, and compelling format that makes you look as appealing as possible.

That is what you are paying a resume writer for.

The better and more detailed information you give a resume writer to work with, the better end result they’ll produce.

You’ll probably also want to ask the resume writer you hire to produce a few different versions of your resume geared towards different positions or presented in a different way.

You’ll also probably want a sample cover letter that you will greatly alter when you apply for specific jobs.

The idea here is just to get something that will be well-written which you can base your highly customized cover letters on when you apply for individual jobs.

One last tip: if you are not happy with the resume or the work the resume writer is doing, don’t just be polite and not say anything—speak up!

This is your future and your career; if you want a good result, you have to be willing to demand it.

If you know it’s not going to work out, don’t be afraid to fire that resume writer and move on to another one.

What Makes a Good Resume


Whether you use a resume writer or write your resume on your own—ahem, cough don’t do it—you should probably have a good idea of what exactly makes a good resume.

This is going to sound strange, but after coaching thousands of developers on aspects of life, I’ve gotten to be pretty good with human psychology, so listen up.

One of the most important things that makes a good resume is…

It looks good. Yes. It looks good.

What? The vanity, the betrayal!

Do people really judge an entire person’s career, their worth as a human being and programmer––nay, their very soul––based on looks alone?

Yes, they do, so have a good-looking resume and wear a suit and tie to your interview.

I’m not even kidding here; people really do judge a book by its cover.

One of the reasons I highly recommend getting a professional to write your resume is because, not only will they make it sound good, but also they’ll make it look good.

Honestly, this is the most important thing because if your resume looks like crap, it might get tossed without even getting scanned.

OK, now onto less superficial things.

Besides looks, a resume needs to communicate, quickly and effectively, what you are all about and what value you can bring to a prospective employer.

I still see resumes that start with an objective section—that’s just plain nonsense.

No one cares what you want.

No one cares that you’d like to find a job where you can utilize your skills C# and ASP.NET MVC architecture while working on an effective team in the medical technology field.

What they do care about is what value you can provide and how much of a hot commodity you are.

The point of a resume is to act as a one-page ad for you—more specifically for the super sought-after, legendary, software developer that you are.

Your resume, then, should be short and to the point, as specialized as possible, and highlight the most important Herculean achievements you’ve amassed over the course of your career.

There are plenty of ways to accomplish this.

You can do it with a traditional resume format: chronological, functional, etc.

You can do it with something a little more avant garde.

You can even do this with a video presentation where you are on camera introducing yourself and talking about your “greatness.”

(By the way, I always advise recording a video resume in addition to your paper resume today. It’s a great way to show your personality and bring something a little extra that is likely to go a long way in getting you to the interview stage.)

An excellent resume is not at all about how much you can cram into a single page, but rather the opposite.

The more you can say with less, the bigger impact you’ll have, and the more likely someone will actually read the contents of your resume.

Ultimately, you want to portray very clearly what your skills and expertise are, how you’ve used them in the past to achieve great results, and how those skills might be transferred to the future position you are applying for.

That’s it.

Writing Your Own Resume

I really don’t recommend writing your own resume, but if you are going to do it anyway, I might as well give you some tips.

What follows are some of the most important things to consider when writing a resume in today’s working environment as a software developer.

Start with LinkedIn

resume-writer LinkedIn

Like it or not, LinkedIn—at least at the time of writing this book—has become the de facto standard professional networking site and web resume.

You are going to need a LinkedIn profile, and you can bet any prospective employer is going to check it, so you might as well start here.

Do the standard fill-in-the-blanks resume to complete your LinkedIn profile, but take the same care you would to create your regular “paper” resume.

Don’t just rush through this one and think it doesn’t matter.

Also, don’t fudge dates or information here, because I can just about guarantee you, if you have major discrepancies between your resume and what your LinkedIn profile says, you are going to get called out on it.

Having to explain how you didn’t actually lie on your LinkedIn profile, and that it’s just a misunderstanding or clerical error is not a great way to start an interview.

So make your LinkedIn profile complete, make it reflect the truth, and don’t forget to solicit everyone you’ve ever worked with for recommendations—those really do make a difference.

Make It About the Value You Provide

Everything you write in your resume should be thought about from the perspective of the value you provide, not what you want.

A resume is not a Christmas list of what you want in a job.

It’s also not a trophy case where you admire how good you are and brag unrelentlessly.

Instead, it’s all about showing how you can provide value to a prospective employer based on your current skills and what you’ve done in the past.

For each job you apply for, customize the resume to show the unique value you can apply to the specific job you are applying for.

What You Did, How You Did It, and the Results You Got

Linkedin Resume Writing Tips

I’m not going to get into the nitty-gritty because I’m not an expert resume writer, and there are plenty of other resources you can find online that show you the format of a resume or how to lay one out.

I do, though, want to talk about one detail in your job history and descriptions that I feel is extremely important.

Instead of writing generic stuff like:

“Used Java and the Spring framework to help develop an application for creating cat-shaped logos.”

Use this format:

  • What you did
  • How you did it
  • The results you got

And be specific.

Something more along the lines of:

“Designed and programmed a unique and innovative cat-morphing algorithm using Java and the Spring framework, which improved the performance and adoption of an application for creating cat-shaped logos by over 500%.”

Then, like a good copywriter, tighten it up, and make it even more specific:

“Derived a new cat-morphing algorithm based on the Traveling Salesman problem. Refactored the cat-morphing module to implement the new algorithm, using the Java Spring framework to improve maintainability. Performance improved 508%, and time spent on bug fixes dropped 34%.”

In fact, it took a professional copywriter, my friend Josh Earl, to arrive at that final rendition.

As he put it:

“What metrics does the hiring manager have on HIS performance review, and how can you show that you’ll make him look good?”

Which is exactly why I suggest you hire a professional resume writer in the first place.

Keep It ShortResume writer

One of the first resumes I ever created in my software development career was a six-page monstrosity.

I listed, in detail, every job I ever held, every single technology I used at that job, every certification I had, and what I ate for breakfast for the last two years.

Well, maybe not the breakfast part, but I think you get the point.

A resume that is six pages long does not get read.

Even when you send that resume to your mom, she only pretends to read it.

A resume, just like a good advertisement, should be as short as possible to get the sale—or, in this case, the interview.

Most of the time, that means you are going to want to have your resume fit on a single page.

This also means you’ll have to make your resume very focused and to the point.

It may seem counterintuitive, but trust me, this is a good thing.

You want someone who picks up your resume and quickly scans it to get a very focused idea of what kind of software developer you are and what kind of relevant experience and skills you have.

It’s very tempting to list every technology and skill that you have on your resume—especially if you have a large number of them—but you must resist the urge.

For example, suppose you are applying for a C# job as a web developer using the ASP.NET MVC framework.

You might have a skill section where you list programming languages, like so:

Programming languages: C, C++, Java, C#, Lua, Python, Perl, JavaScript, Visual Basic, Go, Dart, Objective-C, Cobol, Swift

Seems like a good idea? Right?


Even if you know all those programming languages, you are probably not an expert in all of those, and most of them are irrelevant to the job you are applying for.

The signal is likely to get lost in the noise.

Either you’ll be creating the impression that you are a liar and just keyword-stuffed your resume, or that you are a jack-of-all-trades and not an expert in C# and ASP.NET MVC.

It would be much better to have a section like this:

Relevant Skills: C#, JavaScript, ASP.NET MVC

That doesn’t seem nearly as impressive, but it is much more focused.

At the interview, you can talk about how you know 50 other programming languages. You could also have some other jobs on your resume that highlight a few other languages or technologies you used in the past, but you always want to be as specific as possible.

Think of it this way: suppose you had a nasty tax problem and the government sent a court summons for tax evasion, and you needed to hire a lawyer to represent you in court.

Would you rather hire a lawyer whose expertise was:

Divorce law, tax law, marine mammal law, criminal law, real estate law, cow-tipping legalities

Or one who listed this as their expertise:

Tax law, corporate law

The first one might be more impressive overall, but who are you going to trust to represent you in court?

I know which one I’d pick.

Short, to the point, relevant.

You don’t have to list every single job and every single skill.

You can even put on your resume “relevant skills” or “relevant experience.”


This one should go without saying, but I’ve seen enough resumes with huge spelling mistakes and typos that I’m going to specifically call it out here.

You should proofread your resume at least five times. Forwards and backwards.

Then, you should have two other people proofread your resume.

Nothing says, “I’m an idiot and I’m careless and don’t pay attention to detail,” like a resume with typos, grammatical errors, or spelling mistakes—especially spelling mistakes.

“Porgrammer” does not equal “programmer.”

Some employers will throw your resume directly into the trash bin if there is a spelling mistake or typo without even looking at anything else.

It may seem harsh, but would you ever want to hire someone for any important job if they lacked attention to detail or were careless?

Would you hire the tax attorney to represent you in court for tax evasion if he misspelled lawyer?

Have Multiple Versions

We’ve already talked about this a little bit when I told you how to apply for a job and that you should have a resume writer create multiple versions of your resume, but let’s rehash it here for good measure.

You are going to want to have more than one base version of your resume that you can use for different kinds of jobs you might apply for.

Most software developers, especially those starting out, are willing to take different kinds of jobs using different technologies.

If this is you, you should specifically create base versions of your resume targeted at these kinds of jobs which would highlight the specific skills and technologies needed for those jobs.

You should still customize your resume for each and every job you apply for, but having a few different base resumes to start from may help save you time and keep you somewhat consistent in how you apply for jobs.

Make It Unique


Finally, we’ll wrap up this chapter by talking about an often-overlooked resume factor: uniqueness.

The idea of a resume is to stand out.

When you are applying for a job that 100 other software developers are also applying for, you are going to want to find some way that you can stand out and be as unique as possible.

This doesn’t mean you have to do anything crazy, but it is a good idea to do something slightly unconventional or to do something that will make your resume stand out in some way.

You want someone who looks at your resume to remember you because you appeared unique or special.

One great way to do this is to get creative with the format of your resume.

Once upon a time in my career, I created a skills section on my resume, and I used stars to indicate from one to five how high my skill was in a particular technology or language.

Since then, I’ve seen this tactic used by many developers, but at the time that I did it, it was fairly unique, and I received a great deal of comments from recruiters and interviewers who remembered that I was the guy with star ratings on my skills.

Some employers or interviewers will appreciate uniqueness, and others won’t, so it’s hit and miss, but I’d rather stand out in a few places and get outright rejected in some than to be forgettable and dull everywhere.

This concept is called polarization, and it’s good when used appropriately.

I’ve often advised software developers I’ve coached to include a short video version of their resume—or just a short video introduction—as a unique way to stand out.

Don’t be afraid to be creative. Like I said, some people won’t like it, but plenty of people will. And you’ll stand out in their minds.

One word of caution, though: don’t let your creativity interfere with the readability and communication of your resume.

Remember when everyone started putting Flash intro pages on their websites?

If you don’t, that’s ok, but there was this era in the technological world where everyone thought it was cool to make Flash websites that had horrible navigation (see Web Pages That Suck.)

Anyway, it was creative but a bad idea because that kind of design greatly detracted from the content of the web pages and made them difficult to use.

So, be creative and be unique, but use them to enhance your message, not detract from it.