How to Turn Your GitHub Page Into a Personalized Resume

DZone 's Guide to

How to Turn Your GitHub Page Into a Personalized Resume

It's incredibly easy to get your own GitHub CV. In this article, Rob Hinds explains the process behind making his and explains how you can make your own.

· Agile Zone ·
Free Resource

A little while ago, I decided that I wanted to update my CV. I figured that given I am in tech, it made sense for my CV to be online. I was aware of GitHub Pages, which give you a nice-looking URL. This seemed like a perfect location for me to put my tech CV.


Once I had it looking pretty decent and had updated to modern Bootstrap styling so that it was fully responsive, I thought I would stick it on GitHub as a GitHub page. GitHub provides support for everyone to have a free hosted page with normal HTML, JS resources, etc. (which is pretty nice of them!) and gives you a nice, share-able URL like http://{username}.github.io.

While reading about GitHub pages, I noticed that they have native support for Jekyll (a static HTML generator tool for building websites), which is when I had my second realisation of the day: I could make my CV open-source-able by making it a configurable Jekyll projects that lets users just update some config in their GitHub account, and hey presto — they have a nicely styled, personalised tech CV!

So I started porting it over to Jekyll, which just involved moving the configurable, user-specific items into a config file (_config.yml) and then breaking the HTML sections into fragments to make it more manageable to understand what is going on. The idea of Jekyll is pretty straight-forward. It is just a simple tokenized, template approach to putting together static HTML output. However, it does work well and I really didn't find myself wanting for anything in the process. The GitHub native support was also really nice because all I needed to do was just upload the source of the project to my GitHub account and GitHub handled the build and serving of the site out of the box!

# Site settings
title: Rob Hinds
twitter_username: rob_hinds
name: Rob Hinds

#User specific content
#Links that will appear in the navbar
 - title: Blog
   url: http://automateddeveloper.blogspot.com/
 - title: GitHub
   url: https://github.com/robhinds
 - title: DZone
   url: https://dzone.com/users/899489/rhinds.html

#Any buzzword skills you want to include
 - Groovy
 - Spring MVC
 - Spring Boot

#Blogfeed is optional - including this will add JS to call the feed and populate blog list
blogfeed: http://automateddeveloper.blogspot.com/feeds/posts/default

#Work experience is required
 - title: Senior Engineer
   start: 2012
   end: Ongoing
   employer: Covestor
   description: Covestor is an investment marketplace startup that was successfully acquired by Interactive Brokers in 2015. <br/> I am a senior engineer working closely with the CTO, working across the full-stack, I am involved in all aspects of the technology including the website and back-end services.

#Education is required
 - level: Bachelor of Science (B.Sc.)
   date: 2003
   subject: Artificial Intelligence and Computer Science
   school: University of Birmingham

#This section is optional (as is the image link below)
   profileurl: https://www.coursera.org/user/i/c6362b4056f755a04bef6a791a62102b
    - title: Functional Programming Principles in Scala
      link: https://www.coursera.org/course/progfun
      optionalimage: https://d1z850dzhxs7de.cloudfront.net/topics/progfun/small-icon.hover.png
      date: September 16, 2013

#List of interesting Github repo/projects to include - optional
 - robhinds/twitter-sentiment-analysis
 - robhinds/spring-reactor-twitter
 - robhinds/microservices

#Stackoverflow flair is optional
   profileurl: http://stackoverflow.com/users/258813/rhinds
   flairimageurl: http://stackoverflow.com/users/flair/258813.png

#Mobile apps section is optional
 - name: Chuck the Quiz
   platform: Android
   url: https://play.google.com/store/apps/details?id=com.tmm.android.chuck&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS50bW0uYW5kcm9pZC5jaHVjayJd
   description: A basic early Android app (open sourced)

#An additional info freetext section is optional at the bottom of the page - can be text or HTML
additionalinfo: |
   <strong>JVM</strong>: I am experienced in a variety of Java API’s and frameworks. I have recently worked with Spring 4, Spring Boot, JPA (Hibernate and EclipseLink) in addition to others.  In my current role Groovy is the primary language used - and I am familiar with many of the languages features and quirks (including writing <a target='_blank' href="https://dzone.com/articles/functional-programming-groovy">Functional Programming style groovy</a>).

And that's all that the configuration it takes! The YAML format is pretty readable; it largely just works with indenting. Hopefully, after taking a look over the nested sections of data, it's fairly easy to understand how you can modify parts to make it customizable.

You can see my GitHub CV page here. Out of the box, you can configure lots of aspects: custom text blocks, key skills, blogs, apps, GitHub projects, StackOverflow, etc.

How Can You Have a Custom GitHub CV?

It really is super simple to get your own GitHub CV.

  1. Create a GitHub account (if you don't already have one)
  2. Go to the project repository and fork the repository.
  3. Change the name of the repository (in the settings menu) to {{yourusername}}.github.io.
  4. Edit the /_config.yml file in your repository. It should be pretty straight-forward as to what the links and details are that you need to add.
  5. Visit your new profile page ({{yourusername}}.github.io) and start sharing it!
agile ,career ,github ,resume

Published at DZone with permission of Rob Hinds , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}