Codementor Events

How I maintain my resume and why

Published Nov 07, 2023

As a coder, I would be remiss if my process for maintaining my resume didn't demonstrate the values I expect in a good software development process. Therefore, after reading a few blog posts about other developers' processes, I decided I needed a process of my own. I laid out the following requirements.

  • Make my resume accessible
    • Host it online with a direct link
    • Have .docx available as well as .pdf
  • Automate the tedium
  • Utilize version control
  • Don't create an undue burden learning something like LaTeX. I don't have other uses for LaTeX to ammortize the cost of learning over.

I settled on the following setup, which is fairly unique. Most other processes diverge in that they use something that forgoes the ability to generate .docx and they bring in a lot of complication trying to support generating both HTML and PDF. I decided that since nearly all browsers will directly open a PDF, HTML is unnecessary. It also creates unnecessary friction finding the PDF version from the HTML version.

I edit my resume in LibreOffice. The master format for my resume is FODT. That stands for Flat Open Document Text. ODT is largely functionally equivalent to DOCX. The main differences are that DOCX brings a lot of legacy baggage from DOC. ODT was designed fresh as a new standard intended to be easy to implement, including for people that didn't have the existing Word codebase at hand. DOCX and ODT are both ZIP files containing XML files. FODT skips the ZIP container and stuffs everything in a single XML file and is thus friendlier for version control. It's not as human readable as something like Markdown or HTML, but it satisfies the ability to do things like a git pickaxe search. Honestly it's not particularly important, but as someone very comfortable with git, it feels silly not to take advantage of what git offers. In theory I could have different versions living in different branches, although I wouldn't want to try merging branches until I handle another issue mentioned below.

When it comes to handling tedium, I made a build script. I hadn't touched Make since college, but my needs are simple. I scripted two things

  • Converting from the source format to the desired output formats, in this case just DOCX and PDF
  • Uploading to my webhost. In this case it's my Digital Ocean Wordpress droplet for my blog.

I have a nice vanity link to my resume: https://hire.ericrie.se This was easy to set up since my domain registrar has a redirect service that hosts a simple webserver that serves redirects for subdomain links like this. So this link actually uses a different SSL cert than my blog. I could set up the DNS and I guess an .htaccess configuration to not depend on this service, and I'm sure I will sooner or later.

I configured LibreOffice to generate a hybrid PDF. That means it embeds a copy of the ODT source into the PDF. That means I can open the PDF in LibreOffice and start editting in a pinch, although that breaks my git and build script workflow. But someday it will come in handy. Microsoft Word can open ODT files, but it doesn't understand this kind of hybrid PDF.

My setup isn't perfect. I wish recruiters and ATSs supported structured data formats such as JSON resume so I could confidently upload that and not worry about how they guess at the meaning of my resume as expressed in the document structure. I might be able to improve it a bit just by formatting the employers as headings instead of bolded text. I heard multiple columns are hard for ATSs to parse but I think it's a matter of how you implement them and I think I did it right. LibreOffice creates a lot of noise for git since it bumps up an internal version number when you save and spreads that number throughout the document. It would be nice if it that could be turned off. Maybe I could create an XSLT script that undoes that change.

You can find my resume git repo at https://github.com/er2/resume

Discover and read more posts from Eric Riese
get started
post comments2Replies
Mike Schinkel
a year ago

This is a excellent post. I have always hated maintaining my resume, but recently I have found I need to. Giving me the idea to turn it into a software project is exactly the type of spin I need to get me motivated to do it. Thank yoU!

Geo Dancer
a year ago

Very nice article, but I would never publish my resume in .docx because I think it is too easy to edit by others. I don’t want anyone to receive a modified form of my resume. Sure, even a PDF can be edited, but my paranoia can only go so far. ;)