5 reasons why Git based resume is awesome
Kay Gosho

Kay Gosho @acro5piano

About: A Full Stack Developer. CTO of Remotehour ( https://remotehour.com )

Location:
Tokyo, Japan
Joined:
Feb 1, 2018

5 reasons why Git based resume is awesome

Publish Date: Apr 27 '18
438 79

I created and update my resume on GitHub. This is not a normal way but works well for me.

[edited]
I use GitHub to save and share my Git repositories, so I assume GitHub as default git repository service in this article. If you are familiar with other version management system or git repo service, please read "Git / GitHub" to any other words, like "Git / Gitlab", "Mercurial / Bitbucket", etc.

Based on the twitter discussion.

[/edited]

Why I uploaded my resume to GitHub

I have an account of LinkedIn. LinkedIn was an unique service for making public individual resume, and communicating with others online. I like the idea, so I always make my resume public.

When I applied to a company, it is required to make an A4 resume, typically created with Microsoft word or something. I used Linux Laptop (powered by Arch Linux) at that time, so I did not have Microsoft office. I could use Google Document, but it did not allow me to use various shortcuts, and was hard to edit during offline. Thus I decided to create my resume with HTML, CSS, and Webpack.

It seems that creating my resume with that stack is even easier, interesting, and cheaper than getting Windows machine or installing MS Office to my Linux Laptop.

When I create something, I always run git init and control the versions with Git and upload to GitHub. This is for backup, because I sometimes fully uninstall Linux OS for some accidents. So I upload my HTML-based resume to GitHub.
I do not care if my personal information is open to the public.

I found that managing my resume with Git brings me a lot of benefit, so I will introduce them here.

1. Portability

I can show and edit my resume everywhere. From my MacBook, Linux Laptop, even someone's PC. My GitHub resume url is so short as to type directly in a web browser's url window.

https://github.com/acro5piano/resume

In fact, I have typed the url with someone's PC. I prefer this way to send the PDF to someone via Facebook Messenger or something.

2. Receiving Pull Request

I did not expect this feature at first, but really easy to brush up my resume.

the PR

I have asked my friend, great Polish developer, to check my resume before applying to a company, I sent him to the URL. He saw my repository and corrected my mistakes and created Pull Request. He refactored my resume! I check the difference and merged the PR. Really great experience.

3. Easier to design

I can customize my resume layout with my knowledge of CSS. It looked easier than customizing it with MS Word. I could not even implement flex-box like vertical layout.
I can use Sketch to customize design, but Sketch is not for writing, though it is great tool for creating design prototype.

4. Less management cost

With Git, I can ensure this resume is definitely new one. When I created with MS Word, I had multiple versions, like

  • resume-kaz-gosho.docx
  • resume-kaz-gosho__updated.docx
  • resume-kaz-gosho__2018-04-28.docx
  • resume-kaz-gosho (1).docx

I could not trust which is the newest one.

We can even show difference between versions with git log -p.

5. Stack free

I can use any text editor to edit my resume. This is a really good point for developers, because developers tend to favorite a specific text editor. For example, I am not good at the interface of MS Word, because it does not guarantee layout (and missing "mode" concept... unlike Vim).
I can export .docx to .pdf with MS Word, but it requires at least three clicks, which is not comfortable for developers. If we use HTML and webpack-dev-server, we can convert HTML to PDF with one-liner, like:

chromium --headless --disable-gpu --print-to-pdf --window-size=1200,1900 http://localhost:3000/
Enter fullscreen mode Exit fullscreen mode

Or use conversion tools such as wkhtmltopdf.

Of course, we can add that command to NPM script:

"build": "chromium --headless --disable-gpu --print-to-pdf --window-size=1200,1900 http://localhost:3000/"
Enter fullscreen mode Exit fullscreen mode

Then run

yarn build
Enter fullscreen mode Exit fullscreen mode

which is really short. Headless Chrome is really awesome. Furthermore, we do not have to run that command if we properly set up CI.

Todo

I would like to go further with HTML-based resume. Currently my big todos are:

  • CI. Hopefully, hook git push to master branch and generate PDF file and take screenshot, then save them to somewhere (maybe S3).
  • I18n. Two languages en and ja are required.
  • Web Page. Paradoxically, I do not have web page of my resume. Maybe I use React.js for rendering.

Conclusion

I will continue to keep my resume on GitHub. If you are interested, please try it!

(...At your own risk, because CV has some sensitive data)

Comments 79 total

  • Kay Gosho
    Kay GoshoApr 27, 2018

    Thank you for the comment Erildo!

    I don't have my best projects on GitHub yet, but placing my resume works.
    Why don't you share your best projects?

    And private repository also works to some extent!

  • shaiay
    shaiayApr 28, 2018

    Nice!
    However I don't think I'll use this approach myself since sometimes, when applying for different jobs, you might want to send out different versions of your cv, emphasizing different skills. And I wouldn't necessarily want all of this to be public ...

    • Kay Gosho
      Kay GoshoApr 28, 2018

      Thank you for your comment, shairay.

      When applying for different jobs, you might want to send out different versions of your cv, emphasizing different skills

      Yeah, we exactly should do this.
      Personally I have never created different versions for different jobs (so I failed to get a job, haha), your opinion bring me other point of view.
      Maybe we can create different branches or tags on Git and manage multiple versions for jobs we apply. Basic information would not change so much, and we can update master branch and merge to each branches if some breaking change happened. Thus I think this approach also works in this way :)

      I wouldn't necessarily want all of this to be public ...

      I know how you feel. We should not make our personal information public. In that case private repository may work, but you do not have to do this paying additional cost!

      • shaiay
        shaiayApr 28, 2018

        What I meant is that the rationale of "personalizing" your cv per application also means that you might not be interested in the company you are applying to seeing exactly what changes you made.
        Remember, this is your information, and you should exercise care in what you reveal and to whom!

    • Martin Kiesel
      Martin KieselMay 8, 2018

      LaTeX & git branches all the way and of course private GitHub project.

  • Sagar Bhattacharya
    Sagar BhattacharyaApr 28, 2018

    Great idea !

  • Stephen Corwin
    Stephen CorwinApr 28, 2018

    I personally use markdown to represent my resume on GitHub.
    github.com/stephencorwin/resume/bl...

    This lets me also declare it as a dependency on my portfolio website. Leveraging react-markdown, I can output the latest version of my resume on each deployment automatically.
    github.com/stephencorwin/stephenco...

    Live:
    stephencorwin.me/resume

    It's been working out great for me so far. Glad to see others taking a similar approach.

    • Cameron Spear
      Cameron SpearApr 28, 2018

      Hey, nice resume. Small world, we were at UA for an overlapping time as contractors. I think I vaguely recall seeing you around on Slack or GitHub or something. :)

      • Stephen Corwin
        Stephen CorwinApr 28, 2018

        Lol. Yea, for sure. The interwebs are smaller than we think. :P

    • Kay Gosho
      Kay GoshoApr 28, 2018

      Thank you for sharing your approach, Stephen.

      Markdown is more declarative, maintainable, and elegant way! And you create your own website with interactive user interface with React. You also have your portfolio in it, deploy script and linter. They are what I have to do build as my current goal.

      I got great inspiration from your repository. Thanks again!

      • Stephen Corwin
        Stephen CorwinApr 28, 2018

        Thanks! When I was rebuilding it, I never did finished fleshing out the content of my portfolio -- it's a bit stale (4+ years old). I suppose that it is a side effect of no longer searching. Less motivation to update it once you have landed the job. ;)

        Feel free to reach out if you have questions. GL on your job search!

        • Kay Gosho
          Kay GoshoApr 29, 2018

          Less motivation to update it once you have landed the job. ;)

          Yeah exactly. However, it is even easy for me to update the resume via Git (and hopefully CI).

          Feel free to reach out if you have questions. GL on your job search!

          Thank you very much!

          • Stephen Corwin
            Stephen CorwinApr 29, 2018

            The resume is maintained via GitHub, but also published on npm. Whenever I make an update I can just bump the version number and npm publish. If the portfolio website is using @lastest in the package.json, redeploying should grab the latest version. You can also just run the command npm i --save @stephencorwin/resume@latest to force an update to the latest.

            • Kay Gosho
              Kay GoshoApr 29, 2018

              Oh, you publish your resume to NPM! I have never imagined it. I have just installed your latest resume on my PC :)
              Why do you publish this to NPM?

              • Stephen Corwin
                Stephen CorwinApr 29, 2018

                It's scoped under my tag @stephencorwin so as to not be confused with others. Part of the reason to use both is so that we can have "source of truth" files that we generate other files from. We don't necessarily want to always publish the generated files on GitHub, but it does make sense to publish them on npm since the audience there intends to use them in projects.

                Mainly though... It's because I use Zeit Now to host my projects and they do not recognize any "change" when deploying unless I either dockerize the container or version bump the dependency in my package.json.

                This is in part due to aggressive caching.

                Please note that you can use a GitHub repo directly as a dependency in your package.json though.

                "@stephencorwin/resume": "git://github.com/stephencorwin/resume"
                github.com/stephencorwin/stephenco...

                • Kay Gosho
                  Kay GoshoApr 30, 2018

                  Mainly though... It's because I use Zeit Now to host my projects and they do not recognize any "change" when deploying unless I either dockerize the container or version bump the dependency in my package.json.

                  Got it! Nice hack.

  • Matteo Rigon
    Matteo RigonApr 28, 2018

    As Kaz said in his Todo section you can have a private repo with CI pipelines that build the pdf and save it to an S3 bucket or Dropbox and always have a public link of the latest version.

  • Jack Zhang
    Jack ZhangApr 28, 2018

    Well, apparently you've never tried something called Word online, which does everything you described better and easier.

    • Kay Gosho
      Kay GoshoApr 28, 2018

      Thank you for commenting and sharing your solution, Jack!

      I have tried Google Document but never Word online. I thought Word online has the same user interface as Google Document and MS Word.

      In fact, I am not good at MS Word's user interface, and I would like to manage my document as Ascii text as possible. .xlsx file is actually ZIP file so I cannot diff the changes and show history, so I am comfortable with HTML, Markdown or any ascii text.

      As you said, Word online is better and easier solution. Definitely I agree :)
      I actually would like to put my technical skills into practice, to create my resume and maintain the document with any stuff I learned. That was just for fun, but I found some benefit from Git management so shared it here! Thanks.

      • Jack Zhang
        Jack ZhangApr 28, 2018

        I understand your point, I just wanted to point out about Word online in case you didn't know about it.

  • Kevin Slattery
    Kevin SlatteryApr 28, 2018

    You can host pages on your GitHub personal page, like I've done here: kslattery.github.io

    • Kay Gosho
      Kay GoshoApr 28, 2018

      Thank you Kevin!
      I saw the url and your resume is easy to read! Yeah I will create my web resume on GitHub pages soon! Thank you for sharing it.

  • Kay Gosho
    Kay GoshoApr 28, 2018

    Thank you for your comment Matteo and Erildo.

    First, I think Dev.to is a community for all developers, so it seems natural that Matteo replied to Erildo's comment. Hopefully Anyone can join other's thread because Dev.to is open community :)

    As Matteo said instead of me, we can still have a public URL of our resume if we build some CI system. Although this approach takes a little time and cost depending on which service we use, it may be not a matter if we have skills or passion to create automated work flow. Even if we do not prepare automated build system, we can get the benefit of ascii data version management and one liner NPM script.

    If you do not spend a lot of time in GitHub, I am sorry that I assume almost all developers use Git and GitHub heavily.

  • Aleksandr Pasechnik
    Aleksandr PasechnikApr 28, 2018

    I love this idea but I’m not keen on having my resume in a public repository. Instead of GitHub I’ve had good experiences with repositories on my own machine that can be git remote add-ed over ssh. Even works on iOS with Working Copy!

    • Kay Gosho
      Kay GoshoApr 29, 2018

      Thank you for commenting, Aleksandr!

      I’ve had good experiences with repositories on my own machine

      Great, you manage your own Git repository server (or local git). I personally do not take this way because I am afraid of losing my data unexpectedly, but it will work fine if you can manage the remote repository :)

      Even works on iOS with Working Copy

      Oh really. I checked the app and it seems to work well!

  • Loi Tran
    Loi TranApr 29, 2018

    If you are looking for an office for Arch, I recommend to give WPS office a try. It's available on AUR.

    • Kay Gosho
      Kay GoshoApr 29, 2018

      Thank you for sharing, Loi!

      I have never tried WPS office and did not know we can install it via AUR. I usually use Libreoffice so next time will try WPS!

    • Maximilian Berkmann
      Maximilian BerkmannMar 13, 2019

      I second that.

  • Avalander
    AvalanderApr 30, 2018

    Wow, thanks for sharing! I never thought about this possibility!

    • Kay Gosho
      Kay GoshoApr 30, 2018

      Thank you for your comment, Avalander!

      I am happy to hear that! Give it a try.

      • Avalander
        AvalanderApr 30, 2018

        Absolutely, will try it.

  • Evan Oman
    Evan OmanApr 30, 2018

    Love this article, I have a Github resume for most of the same reasons you listed.

    For me though I originally made my resume in LateX so I host my .tex source in the repo. I now have Travis CI set up to build the pdf and post it on my personal website.

    You can check it out here

    • Kay Gosho
      Kay GoshoApr 30, 2018

      Thank you for the comment, Evan!
      I am glad to know you take similar approach.

      I now have Travis CI setup to build the pdf and post in on my personal website.

      Great feature, CI saves a lot of time of us. I feel I should set up my CI environment ASAP. LateX seems to work well to structure documents!

  • Erin Quinn
    Erin QuinnApr 30, 2018

    This is awesome! May as well go for a resumap, too ;) blog.mapbox.com/diy-resumap-cef744...

    • Kay Gosho
      Kay GoshoMay 1, 2018

      Thank you sharing Resumap, Erin!

      Resumap and Mapbox are really cool! Great work.

  • mgaruccio
    mgaruccioApr 30, 2018

    This is absolutely how I plan to set up my next resume. Also any objections to me using some of your formatting choices in my own resume?

    • Kay Gosho
      Kay GoshoMay 1, 2018

      Thank you for your comment, Mike!

      Also any objections to me using some of your formatting choices in my own resume?

      Welcome! Feel free to folk my repository to yours. Thanks.

  • Sean Hull
    Sean HullApr 30, 2018

    Kaz, that's badass! bravo. I like the layout & color scheme and I agree it is an easy way to keep things up to date.

    For me with consulting, I have new projects to add a few times per year, so this would be idea. Bookmarked!

    • Kay Gosho
      Kay GoshoMay 1, 2018

      Thank you for your reply, Sean!

      For me with consulting, I have new projects to add a few times per year, so this would be idea. Bookmarked!

      Great, you can easily add new projects to your resume only with your favorite text editor!

      • Sean Hull
        Sean HullMay 1, 2018

        emacs! LOL

        Actually lately I've been using sublime text more and more.

        • Kay Gosho
          Kay GoshoMay 1, 2018

          I think Emacs is a great editor :) Everything will go with Emacs Lisp!

  • Shannon Crabill
    Shannon CrabillApr 30, 2018

    I thought about doing this a while ago, but haven't gotten around to it. I'm terrible about updating my resume, so maybe this would help me to keep it current

    • Kay Gosho
      Kay GoshoMay 1, 2018

      Thanks for commenting, Shannon!

      I'm terrible about updating my resume

      I also think it is bothering to keep my resume up-to-date. Git and CI and any developer-friendly tools are helpful for me, because I use them everyday!

  • lukaszkuczynski
    lukaszkuczynskiMay 1, 2018

    I did something similar while looking for jobthe last time. It is using elasticsearch for bacdkend. I made it github.com/lukaszkuczynski/search_... and deployed here bio.lukasz.usermd.net.
    Good job, your resume is very readable

    • Kay Gosho
      Kay GoshoMay 1, 2018

      Thank you for your comment, lukaszkuczynski!

      It is using elasticsearch for bacdkend

      Cool! I took a look at your repository, and found Dockerized backend. Great Stacks!

  • Hugo Dessomme
    Hugo DessommeMay 1, 2018

    Interesting idea and great workflow! Will give it a try!

    About your "git hook" upgrade, I was just reading about Husky which could simplify it for you. I've never tried it but it seems to be the perfect article for sharing it :)

    • Kay Gosho
      Kay GoshoMay 1, 2018

      Thank you for your comment, Hugo!

      Husky looks really nice. Thank you for sharing!

  • Rémy 🤖
    Rémy 🤖May 2, 2018

    I pretty much agree, though I prefer to use LaTeX for this purpose (and especially the moderncv class which is very easy to use and produces awesome results)

    • Kay Gosho
      Kay GoshoMay 7, 2018

      Thanks! I don't know a lot about LaTeX, but it looks great for structured documents. I like the color scheme and layout of moderncv!

      • Rémy 🤖
        Rémy 🤖May 7, 2018

        LaTeX is the only word processor that plays nice with Git :)

  • Pratik Ambani
    Pratik AmbaniMay 2, 2018

    resume-kaz-gosho.docx
    resume-kaz-gosho_updated.docx
    resume-kaz-gosho
    _2018-04-28.docx
    resume-kaz-gosho (1).docx

    Hahah,
    This was one of the primary reasons for me to move from doc/pdf to GitHub resume.

    pratikaambani.github.io

    Development in progress....

    • Kay Gosho
      Kay GoshoMay 7, 2018

      Thank you for your response, Pratik!

      This was one of the primary reasons for me to move from doc/pdf to GitHub resume.

      Yeah, we can manage a lot of versions of resume with Git.

      By the way, I visited the link and found Java J2EE Developer, which may make your resume stand out focusing on the specific position. Thanks!

  • Sadra Isapanah Amlashi
    Sadra Isapanah AmlashiMay 4, 2018

    Dear Kaz, you can use atbox.io to make easy html5 resume

  • Jonathan Irvin
    Jonathan IrvinSep 24, 2018

    Using Git, you could reasonably create branches of your resume to apply for different things

    • Kay Gosho
      Kay GoshoSep 25, 2018

      Yes!
      Really cool way, as it does not cause resumes conflict. We may even "merge" resumes, if the "master" resume changes or importing changes of "feature" resume.

  • Kay Gosho
    Kay GoshoMar 11, 2019

    Thank you for your comment, Victor!

    I am glad that you like the way ;)
    We can update our resume without worrying about which is the newest version. And customize resume for certain companies by branching out!

  • Gustavo Cunha
    Gustavo CunhaMar 11, 2019

    For i18n, you could consider a library for that like github.com/fnando/i18n-js and, during build time, create a static rendered html version for each language, just like you do with pdf version.

    I personally decided to create a custom CMS-based solution because that can showcase my development skills on Github, such as backend development, some frontend, testing, etc, and still have an easy way to change data without having to create commits, PRs, etc on github. I was often letting changes to pile up before updating my website. I plan to have a printable version of the website, where instead of downloading a PDF version from it, you can just print the CV from any browser.

    My code is in github.com/gmmcal/gmmcal.com.br

    • Kay Gosho
      Kay GoshoMar 11, 2019

      Thank you for your information!

      Your website looks really cool!
      As you pointed out, we can show our server-side skills as well as frontend skills, if we create our resume with CSM.

      Some recruiters still demands PDF. Actually I don't maintain it recently, but when I start to look for jobs again, I will write some scripts to generate multi-language PDF.
      Maybe I will use puppeteer now.

      • Gustavo Cunha
        Gustavo CunhaMar 11, 2019

        I liked a lot the idea of using chrome headless for PDF generation. When I get to the point of having a printable version of the website, I'll try to use that approach instead of uploading one to CMS :)

  • janvt
    janvtMar 11, 2019

    I do the same, except I wrote the whole thing in HTML / CSS and host it in a sub-folder of my Github Pages site. No hosting / deployment overhead...

    janvt.io/cv/
    github.com/janvt/janvt.github.io

    • Kay Gosho
      Kay GoshoMar 19, 2019

      Thank you for the comment.

      I have tried that simple approach, but I switched to hosting in Netlify.

      The reason is that if we add some build process (like compiling jsx, compress & uglify assets, etc...), we have to commit these files to git.
      I always use webpack or something to bundle my code, so hosting service is necessary for me...

      But Netliy makes the deployment process quite easy!

  • Alex 👨🏼‍💻FullStack.Cafe
    Alex 👨🏼‍💻FullStack.CafeJul 15, 2019

    It's actually a great idea but you should use JSON resume format. I would also recommend to check the fullstackresume.com service where you could build your Full Stack Resume in less than 30 seconds. Instead of writing all the content by yourself the service will generate it for you based on your unique experience using the minimalistic A/B tested resume template! Alex.

    • Kay Gosho
      Kay GoshoJul 15, 2019

      Thank you for the information! The service looks pretty cool.

  • Corey McCarty
    Corey McCartyJul 29, 2019

    Thanks for the ideas. I currently have my resume in a JS/HTML project rendering JS data file into a [my name].dev thing. I didn't realize that I could render the word file and pdf from that directly. I'll be adding it into my CI process right after I get my ES5 transpiling to work.

    • Kay Gosho
      Kay GoshoAug 5, 2019

      Hi Corey, thank you for your comment.

      Adding CI process to our resume is a good strategy to keep the resume up-to-date. Actually I want to do it if I have time to working on this.

      I think statically built file + interactive web page is the best combination for resume.

  • Dennis
    DennisSep 11, 2019

    This is a great idea. I have seen something like it done with many different approaches. I think I will put up my own resume on GitHub and do it using the HTML/CSS as well (maybe with webpack). But as simple as possible, so it is easy to maintain :)

    Great post!

    • Kay Gosho
      Kay GoshoSep 12, 2019

      Thank you for your comment! Simplicity is very important to keep our resumes up to date :)

  • Vijaya Anand
    Vijaya AnandJan 29, 2020

    Please check out this project for creating free resume online github.com/VJAI/about.me

Add comment