23 August 2015

I’ve had a couple of people ask me about how to write technical resumes particularly applicable to programmers. Therefore, here is a general guide I wrote for improving resumes, I hope it will be useful to you.

A hypothetical employer’s perspective

One of the things I tried to do in my resume is try to include the skills I gained in addition to the things I did. Imagine yourself as a potential employer, you are working on your job and you have too much work to do, or somebody will be leaving in the near future. Therefore, you need to find a new person to help out. Essentially you are busy and have a stack of 100 resumes to skim, then you will read 10 interesting ones in more detail. Your goal is to find someone who will be able to get the job done well, and at some level help you make money. Thus, what you are really looking for is a concise resume that tells you this new person has done something interesting, and they have learned some of the skills they will need in their new job while doing that. It is also good if they show somewhere that they took initiative to solve a problem, are eager to learn, and will learn quickly.

Putting it into practice

My explanation of the employer perspective is all well and good but it may be difficult to put into practice for improving your resume, so here are a few general ideas you might be able to make use of:

  • Only have an address on the bottom, the top is the most valuable space on your resume. I’ve never had a potential employer use my snail mail address until after I was hired.
  • Add “United States Citizen” if applicable, some jobs require this so it is good to have.
  • When I first started working and my resume was short I put a summary of the best stuff for the specific position I was applying for on top to engage readers.
  • Make sure there is a clear flow of information from important and bold on the left to smaller lighter fonts with details on the right. This makes the resume super easy to skim so the reader can find the details they are looking for.
  • Explain what skills you learned from each thing you did in an “additional experience” or “projects” section
    • Some example questions you may want to answer for each project:
      • What was involved in creating the project?
      • Did you devise the plan? Did you collaborate with others on it?
      • Perhaps you took what you learned from the first version and revised it to be better, that would show a useful skill of recognizing where improvements can be made and implementing those improvements.
      • What was the goal of the project? Did you gain any new knowledge or learn a useful skill?
      • What skills did you get from your extracurricular activities?
    • These don’t have to be long, for example in my resume the explanations of what I worked on and what I accomplished or learned are 2 lines each at the most.
  • If you’ve personally earned funding for a project you should include that information, otherwise I suggest leaving it out.
  • I suggest using PDF format when possible when you actually send the resume out, it looks better. I think Word has a way to export to PDF.
  • I keep my resume to one page.
    • If your resume is currently short that doesn’t matter for you right now, but after a few years I dropped the summary section because I had too much info I wanted to include.

Information to consider for programming specific resumes

  • What data did your projects take in and what useful results did they produce? What skills did you learn doing it?
  • Any of the following would be useful examples or experience:
    • Debugging tools
    • Used existing APIs or toolkits
    • Collaborated with others
    • Picked up an existing code base
    • Passed off some of the code or tools to others when you finished
    • Version control tools and experience
    • Worked on some small fun side project

One additional thing that might be worth adding is a noteworthy tool or technique you had to understand or use to analyze the outputs. Any statistics, data structures, or anything else in particular worth noting about the analysis?

Code samples

It is worthwhile to take a small code sample or homework assignment that you wrote and make it perfect and heavily commented so that it is ready to send to employers. One intern we’ve had made a small C program that creates an array containing random ints then spawns 8 threads to count the number of times the value “3” appears. I think it was originally from some assignment but it demonstrated her skills and understanding well.

To decide what to sue for a code sample I suggest either taking a script you wrote recently or an old homework assignment should be fine. Make sure it is relatively short, has a clear purpose interviewers can understand, is well commented, and works. If you have something great on github or another open source project and public repository, you may also refer to specific changes you made although this can be more complex than sending a code sample that is exclusively yours.

I wouldn’t send the sample with your resume, but occasionally potential employers will ask for one. If you have a website you can link to it from there. Also, if you are really happy with your sample you can mention it to interviewers in person or in an email and I bet many will be happy to take a look. As long as the sample shows your skills in a positive light it can only help you!

Website

Some people also set up a website or blog with more detail and perhaps some code people can easily download and look at or videos of something you made, but it isn’t required. It is also great if in emails outside the resume they show excitement about the type of job they are applying for.

Setting up a website definitely isn’t required but a lot of people do so, and it is nice to know how to do. I wouldn’t write one from scratch, if you google around there are some nice blog tools or other ways to set up a simple website without too much effort or nitty gritty.

Conclusion

If you explain the skills ideas and contributions you will be able to bring to an employer that will get you to the next step in the interview process.

Hopefully this is helpful, let me know if you have any questions, would like feedback on your resume, or if I can improve the advice I provide here!



blog comments powered by Disqus