Portfolios are a representation of you, and they're often one of the first impressions a recruiter will have of you and your work.
Thus, it's imperative you build a portfolio which encompasses you, and your work, at your best.
Let's take a look at some of my tips for building a great technical portfolio.
Note: These suggestions are built off of my personal experience. There are many ways to build a great portfolio, so use these as guidelines, not hard-and-fast rules. If you have a different approach that works for you, feel free to share it down below!
Portfolios explain who you are as a person and what type of skills you bring to the table. They're also a great way to showcase your development skills! There are a few key things you should incorporate to ensure your portfolio is top-notch.
portfolios are your way to shine! What do you like to do for fun? What's your life story in a nutshell? What do you want people to know about you?
By adding in some personal touches, you're giving potential employers an idea about what it's like to work with you!
Here's a little snippet from my portfolio's about page. Feel free to check out the full page here.
If you have any projects or work that you're proud of, and which exemplify your coding or design abilities, your portfolio is the place to showcase them.
Many companies produce proprietary (confidential) work, thus you may be wondering how you can incorporate these into a public portfolio.
Unfortunately the answer is…you can't. My suggestion is to have two to three side projects which showcase your abilities. I know this isn't feasible for everyone, but there isn't much you can do when your work is confidential.
To display your work, describe the technologies you used, what your role was within the project (if applicable), include a screenshot or two, and post a link to the code (if you're able to).
Here's how I laid out the work section of my portfolio. You can check out the full page here.
One great way to catch an employer's eye is to use your portfolio as a side project. I used Gatsby with React.js in order to build my portfolio simply because I wanted to experiment with a site generator and showcase my React skills.
I also designed my entire portfolio in Sketch prior to building it. I recommend drawing out a hierarchy of how you want to display your information.
Check out the "What Technology Should I Use To Build My Portfolio?" section below for more details on the different ways in which you can build your portfolio!
Recruiters and potential employers may be searching through your portfolio, even if you haven't updated it in years. Thus, it's important to keep your information as up-to-date as possible.
If you take on a new role, update your portfolio. If you build a cool new app, update your portfolio!
You want this to be a representation of you and your current skill-set. Thus, it's important you build something easily maintainable and which will stand the test of time.
You should always provide a method of contact in your portfolio. Truthfully, at this moment in time, I don't have a method of contact listed within mine (shame on me!).
If you don't provide a method of contact, recruiters can't contact you about potential roles.
So include a link to your social media (if you use that as a primary means of communication), your email, or your phone number (if you don't mind receiving a multitude of calls).
Give them some way to get in touch with you.
Designing a portfolio can be the most difficult task, especially if you are a back-end developer or have little to no design experience.
When I'm building a site or application, I use dribbble for inspiration and color palettes. Additionally, you can check out Wix and Squarespace to see some of their templates. I'm not advising you rip off someone else's designs, but it's a good starting point for getting inspiration.
I recommend keeping the design fairly simple. You want something that will look good five or even ten years from now. Choose simple, but accessible colors. Use readable fonts at an appropriate size.
It also helps to write out an information architecture. What information do you want on your portfolio? How do you want it laid out? Single-page? Multiple routes? Make these decisions prior to coding and you'll save a ton of time.
If you need graphics, I recommend unDraw. They're free to use and easy to customize!
There are many different technologies with which you can choose to build your portfolio. Let's take a look at some of the choices for both back-end and front-end developers.
Back-end Developers
If you're a back-end developer, or aren't comfortable building a UI, you have several routes you can take.
1. Leverage a CMS
Content Management Systems (CMS) manage the creation and maintenance of digital content.
WordPress is one of the most popular content management systems out there, and is a great choice for developers who aren't super comfortable building their own UI.
2. Use vanilla HTML & CSS
A great way to branch out if you know a bit of basic web development is to build your site using vanilla HTML and CSS. Don't feel like you need to go overboard in the design/styling of the UI if that's not where your skills shine. But building your site in HTML and CSS show your ability to learn skills outside of your comfort zone.
You don't need to have JavaScript in order to create an awesome portfolio!
3. Use a CSS framework
If you're decently comfortable with basic HTML and CSS, but want a more consistent UI, you may want to check out a CSS framework.
CSS frameworks make it easier, and quicker, to style elements. It's important to note that if you're applying for a front-end developer role, using a CSS framework may not be the best option as employers will be looking for a developer who is comfortable developing CSS. But for a back-end developer, these can be a great option.
I recommend checking out Foundation, Bulma, SemanticUI, or Bootstrap.
4. Use a website builder
If you just want to get your content up as quickly as possible, you can also go the route of using a website builder such as Wix or Squarespace.
These make it extremely quick and easy to deploy a website. You can even integrate a custom domain.
If, however, you are applying for a front-end developer role, I caution against using a website creation platform. This is a chance to showcase your development skills! Go big or go home!
Front-end Developers
If you're a front-end developer, there are many more options available for building your website.
1. Use vanilla HTML, CSS, & JavaScript
You can never go wrong with a simple vanilla website. There's no need to over-complicate the architecture of your portfolio if you don't want or need to. Just the simple fact that you built your website from scratch shows potential employers that you're willing to take some extra time to showcase your skills.
2. Use a JavaScript framework
You may want to use your portfolio as a way to practice (and showcase) your JavaScript abilities by leveraging a framework or library. I suggest choosing one you're comfortable with (or to heck with it, choose one you've been wanting to learn!) or which is pertinent to the types of roles you'll be looking for.
Often, these frameworks or libraries have a CLI that you can use to create a starter project. These can save you a ton of time with setting up an environment, and will keep you from having to compile, minimize, and lint your code on your own.
3. Use a static site generator
Static site generators are gaining notoriety in the tech industry with the adoption of popular libraries and frameworks (React, Vue, Angular, etc.). I built my portfolio using Gatsby: a site generator for React.
There are many different site generators to choose from such as Next.js for React applications and VuePress for Vue.js.
These offer many benefits such as plug-ins for image optimization, mobile-friendly responsiveness, and accessibility.
Tips For Coding Your Own Portfolio
- Ensure your code is organized in a thoughtful and efficient way. It's extremely easy to throw all of your content into one page (and you can do that) but breaking different sections/content out into native web components or HTML pages can make a big difference.
- Ensure your CSS is clean and organized. Try to stick to more modern CSS for positioning elements (such as Flexbox or CSS-Grid over floats). This shows you stay up-to-date with the specs.
- Make use of semantic HTML. Structure your code into a hierarchy with the major regions defined. Use these landmark regions (
<section>
,<nav>
,<header>
,<aside>
,<body>
, etc.) to denote important landmarks of your portfolio. Try to use<div>
and<span>
sparingly.
I always recommend including the following sections in your portfolio:
- About: Who are you? What do you like to do in your spare time? Any fun facts?
- Work/Projects/Skills: What technologies have you worked with? What projects have you built?
- Blog (optional): If you have a blog, showcase it here.
- Contact: How can recruiters get in touch?
Again, this is my personal preference. You may want to just create a landing page which routes to different platforms (social media, GitHub, etc.)
Your portfolio should be a representation of you. There is no one-size-fits-all for portfolios. Make it yours!
I hope this blog was useful and will encourage you to build an awesome portfolio to showcase your work. If you have any questions, don't hesitate to reach out on Twitter! Happy coding!