I used to think of CVs as a relic of an antiquated system of prestige. But working on some software changed my mind. CVs are, it turns out, pretty complicated artifacts. They reveal a great deal about the professional life of academics and all of the systems on which they come to rely.
Like most academics, I found it difficult to keep my CV up to date. I was surprised to learn that there was not a straight-forward system for managing this information. I thought that there should be a better system. It turns out, I'm not alone. About a week ago, Daniel Laurison posted the following to Twitter:
it seems like there should be an app or something so that every time you do a thing that ought to go onto your CV, you just enter the details & the appropriate category and it populates the right field on your CV and updates the web version, your home version, etc... is there?— Daniel Laurison (@Daniel_Laurison) September 11, 2018
Daniel's tweet offered a good opportunity for me publish a project that I have been working on for years: a Django web app designed to update and curate a curriculum vitae. Although it did present the perfect opportunity, it turned out that I needed another week to figure out how to get GitHub to work correctly, load the documentation, and publish to PyPI.1
The package is called
django-vitae. I made the source code available on GitHub and also packaged for inclusion in the Python Package Index. The (as yet, limited) documentation can be found at ReadTheDocs.
I started the a rudimentary form of the project nearly a decade ago as a practical application to learn how to serve dynamic web content using a database. During the years since it has morphed into a more serious project.
As I worked on it, the number of categories surprised me. I ended up with 18 different categories of reporting. These include things like our degrees, the positions we've held, the honors we've accrued, etc. I did not program an exhaustive list, but I think that I hit most of the major ones. It made sense once I wrote it out in a formal way, but I had not realized that many categories fit into a single CV before.
But each one of those categories includes a substantial amount of ancillary information. For example, every publication includes not just authors, but authorships since we care about the order of authors and whether our collaborators are student colleagues. We want to report the classes we teach, but also when those classes were offered.
I learned a great deal about programming by working on the project. It feels odd to let the software go. It's not perfect, I'm sure that it has a ton of bugs. There are a few features that I really wanted to put in before I released it. I see all the warts and problems. I worry that I will show how terrible I am at programming.
But I also see that I created something cool and I have the ability to share it with others. That feels good and I am proud of what I accomplished in putting it together. I need to learn to let go a little sooner, a lesson I should probably live by.