How to Make a (Free) Data Science Portfolio Website With GitHub Pages
5 easy steps toward your next data science role
By the end of this article, you will be able to create your own data science portfolio from scratch using GitHub Pages.
Technical Skills Aren’t Enough
Getting a job as a data scientist is not all about your programming and ML chops. A big part of getting hired is selling yourself.
Unfortunately, this tends to be a big weakness for data scientists because we don’t typically focus on this skill set in our formal training or day-to-day work.
I was definitely in this boat when first looking for data science roles. However, one simple thing that helped me get my current job was making a portfolio website.
Aesthetics Go a Long Way
A (pretty) website helps you stand out and gives you credibility as a professional. It gives employers a landing page to learn more about you and your experience.
While this all sounds great, if you’re a data scientist like me, then web development is probably not your strong suit (as can be seen in the screenshot below).
GitHub Pages
Lucky for us all, our good friend GitHub has a solution for this. GitHub Pages is a built-in function that lets you host a website from a GitHub repository for free! Furthermore, GitHub Pages is equipped with a package called Jekyll which automatically translates your repo’s README.md file into a pretty website.
Recent UI change
I used GitHub Pages many times in grad school (2019–2022) to spin up project websites and my own portfolio. However, there was a recent change to the Pages user interface, which made the process a little different (and less convenient) than what is described on the GitHub Pages website.
More details on UI change in YouTube Video 🎥
While their outdated instructions sent me down a rabbit hole for a few hours, I finally nailed down a quick and easy (no-code) process for generating a portfolio website.
Here I break it into 5 easy steps, so you don’t have to struggle like I did 😅.
Step 1) Create GitHub Repo
The first step is to create a new GitHub repository. An easy way to do this is: go to your GitHub profile > click on Repositories > click the green New button.
After doing this, you should get a screen like the one below.
The first thing we need here is to set the repository name. This is important because it will dictate the default URL for your website. There are two options here.
The first option is to use username.github.io. For example, my user name is ShawhinT, so here I would type: shawhint.github.io. With this option, the repo name is identical to the website URL.
The second option is to use any name you like. For example, I can name the repo portfolio. Then my website URL will be: shawhint.github.io/portfolio.
Next, check the Add a README file box. Then click Create repository.
Step 2) Create _config.yml File
The second step is to select a theme for your website portfolio. Before the Pages interface change, this consisted of picking a theme using a built-in GUI.
However, this is no longer the case, and we now need to pick a theme via something called a _config.yml file. This file tells Jekyll how to take the text from our README file and generate a pretty website.
To make a _config.yml file, create a new file in your repo, as shown in the screenshot below.
Now name your new file, _config.yml, and add the following contents to the file.
# add the following to _config.yml file
title: YOUR NAME
theme: jeykll-theme-minimal
Here I pick the “minimal” theme, which I like best for a portfolio. But there are other supported theme options. A full list of them can be found here: https://pages.github.com/themes/
Once that’s done, commit the changes.
Step 3) Fill out README.md file
The third step is to fill out your README. This will become the content of your portfolio website. For now, we can put in basic information but will return back to this later.
The screenshot below shows a basic example of some initial content.
Once you have some basic info down, commit the changes.
Step 4) Build and Deploy Website
With the _config.yml and README.md files in place, you can deploy your website. To do this, go to your repo’s settings.
On the left-hand settings panel, click on the Pages option. Then, select the main branch as your deployment source and hit Save.
Now, we can check the deployment status by navigating to the repo’s action tab. Once you see the green check next to pages build and deployment, click Deployments on the left panel.
You’ll reach a screen that looks like the screenshot below. From there, simply click View deployment to go to your website.
Below is an example of what you should be seeing. It is bare-bones for now, but I find it helpful to run through the whole process before going back and filling out the website content.
Step 5) Customize & Fine-tune
Now that we’ve seen the whole process, you can go back to your README.md file and customize your portfolio. If you want some inspiration, take a look at a finished example portfolio available at the GitHub repo below👇
Final product: https://shawhint.github.io/example-portfolio/
Feel free to steal the code and fill in the portfolio with your own experience. My initial strategy was to copy-paste content from my LinkedIn profile and resume.
However, in the next blog of this series, I will discuss how to make a data science portfolio that will get you hired.
In the meantime, if you have questions on this or a career in data science, feel free to reach out 😁.
Keep up with The Data Entrepreneurs:
👉 Join the Discord | 🎥 Subscribe on YouTube | 📅 Events Calendar
The Data Entrepreneurs
A community for entrepreneurs in the data space. 👉 Join the Discord!
medium.com
Resources
Connect: My website | Book a call | Ask me anything
Socials: YouTube 🎥 | LinkedIn | Twitter
Support: Buy me a coffee ☕️ | Become a member ⭐️
Example repo: https://github.com/ShawhinT/example-portfolio
GitHub Pages: https://pages.github.com/
Supported Themes: https://pages.github.com/themes/
Minimal Theme: https://github.com/pages-themes/minimal