How to Write a Software Resume

One of the fun things I did in college was screen resumes and interview candidates for various reasons: as a student programming lead, then as a technical adviser to nonprofits at my university (the trust conferred on me was rather novel at the time). The good candidates have stayed in my mind as vividly as the terrible ones. I later got to see hundreds of resumes while recruiting for Microsoft, and there are patterns to the best and worst resumes. Here are some of them:

  • Use keywords: C++, Java, Ajax, ATL, pthreads, MongoDB. Preferably in the context of stuff you worked on. I’m trying to judge how hard the projects were, and it doesn’t help if you just say “built an e-commerce system.”
  • Show some expertise. Don’t just spam keywords but rather clusters of related ones to show you’ve actually explored something in depth rather than just dabbling in 30 languages. “Java 6, Ant, JBoss, Spring & Hibernate” says a lot more than “Ruby on Rails, Python, PHP, Java, Lisp.” As a corollary, make sure you list where you worked with these languages under your experience. If you list “Java” a single time on your resume, I can pretty much guarantee you do not know Java.
  • Don’t give mundane details. If it takes you more than about a sentence to describe your role, you’re probably doing it wrong. I want to see accomplishments and specific projects and technologies you worked with. As a general rule, ruthlessly remove every word that can’t conceivably change my mind about you. “Filed reports and assisted customers with inquiries?” Shut up.
  • Don’t lie or exaggerate. Don’t even stretch the truth. “Assistant to the Manager” is not an “Assistant Manager.” A “4.0/5.0” GPA is not “a 4.0”. Reviewers pick up on these tricks.
  • DO NOT PAD your resume. If you’re a college hire or looking for an internship, we understand your experience is light. This doesn’t mean you need to go on endlessly about your volunteer work or have 5 bullet points about your cashier position at CVS. I don’t need 4 lines of crap about how you worked at a dog shelter. Adding drivel de-emphasizes your relevant experience and drowns out the signal with noise.

This last point is particularly sensitive. Many people don’t feel comfortable filling out 3/5ths of page, or even 4/5ths. They must fill the whole page, with anything. I have seen college sophomores who insisted on 2 full pages, size 10. The perpetual fear among this population appears to be: “I am so young, how do I prove I am mature, responsible, and capable without bucketloads of meaningless accomplishments?” To that I answer:

  • Your grades. Especially in computer science, but also peripheral classes. It’s important that you do well even in courses you don’t like, because that’s the sign of a responsible adult (doing things you don’t want to do: story of a grownup’s life).
  • Length of employment and/or extracurricular involvement, rather than quantity (or needless details). Being able to stick through things for medium and long term commitments is the sign of a mature person.
  • Projects: open source contributions, bootstrapped web-apps, whatever. This is the next best thing to work experience, displays initiative, and is the best time for you to experiment before you get beaten down by the everyday stresses of life after college. True story.

Leave a Reply

Your email address will not be published. Required fields are marked *