How to set up your portfolio

Whether you are a stage one student hoping for a summer placement, a stage two student thinking about a year in industry or someone in stage three applying for roles after university, your portfolio is an essential part of your career as a computer scientist. But how do you make a good one? 

Your portfolio is the best impression employers can get an idea of not just what you’ve done, but what you can do. Showing your different projects, the coding practices and how you have applied your knowledge will be much more beneficial than your CV when it comes to applying, hence why showing your work in the best way possible is so important. 

Here are some recommendations on how to best show off your work in a portfolio as well as some tips to make the projects you show really stand out for employers. 

GitHub 

Chances are you have heard of GitHub, certainly so if you are in your second year or above. The version control titan is the bread and butter for every programmer, allowing you to make use of git to store multiple versions of your projects and access them wherever you may be. But if used correctly, GitHub can be an excellent place to host your portfolio. 

On your GitHub profile you can see all your projects in something like this: 

It likely won’t be too exciting and certainly will not stand out against a slew of other GitHub profiles. But it is a suitable place to start from, you can show off some of your best projects and talk a little bit about yourself in a personalised ReadMe. And it turns out that going that extra step is a lot easier than you would think, all thanks to something called GitHub Pages. 

Making your own website has its advantages (something we will get into later) but some aspects like hosting can be difficult, expensive and time consuming. GitHub Pages solves those issues by letting you use GitHub to host your own portfolio website. And it only takes a few steps! 

GitHub Pages allows you to transform your existing repositories into websites to show off things like your portfolio, projects, or documentation. This is a great next step as it allows you to add your own unique spin to your projects that will make your applications stand out.  

You don’t need to worry about databases or servers; however, you will need a bit of HTML knowledge. But even if you aren’t confident with web development, this is a fantastic way to get some experience and really show off to employers. GitHub pages can be used with Jekyll to ease this process and make use of templates (look here for more details). 

The official documentation for GitHub Pages has a great video breaking down how it works and there is an abundance of content to help support you as you build up your very own portfolio. 

https://youtu.be/2MsN8gpT6jY

It is worth noting that while GitHub Pages does allow you to host your own website, this is limited to one per GitHub account. But you can have unlimited project sites. 

Making your projects “Portfolio Ready” 

Making your portfolio look nice is great, but you want to make sure it isn’t all style and no substance. Here are some tips on making the content of your portfolio really stand out. 

Tidy up your existing projects 

Good, readable code is an essential part of programming, and even more important for employers. When looking at your portfolio, employers won’t spend much time trying to understand your code, so making it as clear and efficient as possible is a great way to start things on the right foot. It will show employers your coding style and make it easier for you to understand your own work when you come back to it down the line!  

There are lots of different ways you can add subtle improvements to your code either as you do it, or in retrospect when working on your portfolio. Making sure your code is consistent with things like sensible names for variables, methods and files is a great place to start. 

One mistake many people make is to comment every single line of code to explain what is happening. This can almost double the size of your files and make them a lot messier than they need to be. If you think you need to explain each line, then you may need to go back and refactor your code with better variable names and simplify it as it is likely too complicated.  

But that doesn’t mean removing all comments in your files. Giving brief descriptions of methods and their return types is a fantastic way of reducing the amount of time you read, as it gives a quick understanding of what something does without having to go line by line to understand it. Just make sure to use comments only when you feel they are needed. 

Here is a simple example below for calculating a factorial: 

Bad factorial function
Good factorial function

Both functions work in the same way, but one is clearly more understandable than the other. The first only uses generic variable and function names whereas the second uses sensible names for both. This makes it a lot clearer even without the excessive commenting that the first method. 

Now that your code looks good, there are some things you can do portfolio side to make your projects stand out before employers even start looking at them. 

Give a brief description of what your project is, indicating the key features that you want to show off, what your contribution is (especially if it’s a team project) and what languages are used. This tells people looking at your portfolio what you can do straight away and make them more likely to look at your work more closely. Here is a good example: 

Work on projects outside of your degree 

One of the great things about your degree is that you get the opportunity to work on several different projects that can help you build up the solid foundations of a portfolio. The only issue is that every other student in your year, ~300, will have similar projects, hence why it is important to work on projects outside of your degree. 

This allows you to explore your interests and fine-tune your skills for the field you want to go into, and it also looks great for employers as you are showing them how you work independently and what your interests are. Also, having more projects is always beneficial as it allows you to be more flexible with what you want to show to different companies. 

When building new projects, it can be quite daunting to figure out exactly what to work on, especially with other commitments, including your degree. But don’t worry, you don’t need to be making some cutting-edge development with every project you have. Practicing new features and developing your programming skills is a great way of showing your personality through your portfolio.  

A great type of project to work on to help build up your portfolio is to recreate existing projects. Be it something as simple as the Instagram home page, it is great practice to try to build something from the ground up and try to understand how it works. It helps give insight into how companies develop software and there is always the opportunity to iterate and improve, something especially good when you end up applying for the same company! 

Tailor the projects you are showing off to the companies you are applying for 

Now that you have tons of professional-looking projects on your portfolio, you need to choose what to spotlight, so be sure to tailor it to the company you are applying for.  

You may have projects covering a wide range of things, but chances are you will be more confident in some than others and each will highlight different skills. Aim to show the breadth of skills you feel are most beneficial for your employability, but make sure not to focus on only one or two. Highlighting six projects that are all the same only gives no real indication of everything you can do.  

Be sure to show a mix of work that highlights your strengths and weaknesses. Team projects and solo projects, different languages and different topics show not just your range of abilities to employers, but who you are as a person – something which should be a focus of every portfolio. 

Remember, Rome wasn’t built in a day, and neither will your portfolio. Take your time and do it in iterations. Be sure to make use of University resources both in and out of the School of Computing to help you as you develop your portfolio and always ask people to check it over.