What Should A Bootcamp Grad Portfolio Project Look Like?

What Should A Bootcamp Grad Portfolio Project Look Like?
Post Author: Aaron Decker | Screenshot from coronaviruscases.com on 2/3/2020
Date published: February 03, 2020

The hiring market is really tough for new grads coming out of programming bootcamp programs.

Generally speaking, employers can't see any relevant work history and canned coding exercises don't necessarily convey that somebody coming out a bootcamp can get things done in a real-world environment.

I think employers should be willing to spend time training candidates like this, but we all know that most of them don't want to take the risk and just want somebody who can hit the ground running.

However, what if you do have the opportunity to hire a recent bootcamp grad, what can you look at?

Portfolio Projects

If you don't have work history to look at, the next best thing is seeing some good functional portfolio projects.

What should a portfolio project look like? How can you evaluate something like that?

I think it's pretty easy. It should have these things:

  • Has a clear purpose
  • It works and solves the problem or does the thing is sets out to do
  • Demonstrates some skill on the UI / Backend or both
  • Is deployed out somewhere and you actually get to it and use it.
  • Ideally, they open sourced and you can read the code on Github to evaluate programming ability.

OK here is an example.

So recently in the news you might have seen there is a new Corona Virus in China that has been causing a lot of mayhem. It's a very serious issue: more than 17 thousand people have been infected and more than 300 have died at the time of writing.

Two weekends ago I was watching the news coming out of China and I decided to make a very simple tool to track cases of the Corona Virus (nCoV 2019 is the official name) in a way that was easy to see and understand.

I wanted to simply see how many cases of the virus were reported but I was annoyed at having to go to crappy news sites full of advertisements. So, I bought coronaviruscases.com and spent a day putting together a site to do this.

Here is why this is a good example of a portfolio project:

  • It has a clear and relevant purpose
  • It actually works
  • It was quick to build
  • But, it was still complex enough to show I can handle UI work, APIs, and Databases.

A breakdown of how the project works

Okay so let's go into a bit more detail so you can understand the component parts of a little project like this and all of the technology involved.

Here is how it works:

1. Lambda Function Scrapes Wikipedia

I have an AWS Lambda function scrape Wikipedia every hour to get a current count of nCoV 2019 Cases. I wrote the function in Node.js and used serverless framework. Here is the page I scrape:

wikipedia scrape

2. The Data Goes in a Database

I insert this data into a DynamoDB table that is keyed by Date.

DynamoDB example

3. Lambda Functions For A REST API

I built an API, again using AWS lambda functions written in Node.js and the serverless framework to provide this data to the website.

Lambda functions

4. REST API is Exposed in API Gateway

I have these lambda functions wired up to API gateway so that the website can grab the data using AJAX (client side JavaScript).

API Gateway

5. Website Consumes the API and Displays Current Cases

I built a simple website using Gatsby that consumes this API. Basically it just clearly displays the current number of cases of nCoV 2019 recorded and there is not much else. No advertisements, no extra junk.

Corona Virus Front Page

6. Website Consumes 2nd API With Historical Data

The gatsby site also shows cases for the last 10 days and displays a graph.

Corona Virus Graph

The Technology Used

That might sound like when I explain all of the parts, but its actually not. It took about a day to build this whole project. It uses varied technology, it works, and it solves a single problem - it shows I can actually build something and should display that I'm a competent engineer.

The candidate should be able talk about the technology used and why they used it. For example here is the list of things I used to build this:

  • AWS Lambda Functions
  • Serverless Framework (using Node.js)
  • AWS DynamoDB
  • AWS API Gateway
  • Gatsby - shows I can use React & GraphQL.
  • Basic UI work - I also had to use some CSS and a library called Chart.js to style the page and build the graph.
  • Axios - a Node library to consume REST APIs
  • Cheerio - a Node library to scrape web pages

FYI, I have most of these terms defined in the job keyword tool.

Want to know why I used all these AWS tools? They are actually all part of "AWS Free Tier", which means I can use them pretty much for free until I get a ton of traffic (which I won't, this little project was just for fun).

Things You Should Ask

In addition to basic questions about the technology used, here are some good things to talk about with a candidate to understand their thought process.

  1. What additional features would you add next?
  2. What sort of monitoring would you put in place to handle issues?
  3. If you could automate something about this project to make your work easier, what would do?
  4. What kind of technical issues did you encounter building this project and how did you solve them?
  5. What changes would you make if your project suddenly started to get a lot more traffic and had to scale?

Summary

Evaluating bootcamp grads is hard. The best thing they can often show is a good portfolio project.

It can be difficult to tell if a project is "good" or not at first glance, but once you dig in with some of the questions I talked about you should be able to get a better understanding of what went into a given project.

By the way, I've been kicking around an idea with a friend of building a site to help bootcamp grads share, rate and showcase their projects. Drop me a comment or an email if you have any thoughts! I'm interested if recruiters think having something like this will help them sell employers on less experienced candidates.


Want updates?

Want new posts about tech topics emailed to you? Sign up to the list below 👇

Also, if you are interested in learning technical topics through a video course specifically created for recruiters, don't forget to check out the courses I offer.

The main course "How to Speak Software Engineering Jargon for Recruiters" is specifically designed to help tech recruiters get up to speed fast on technical topics.


Written By Aaron Decker

I'm a full stack developer specializing in Node.js and React. I have worked as a Tech Lead and hired teams, and as a Senior Software Engineer at multiple fortune 500 companies building large products. I also did a brief stint teaching programming courses as an Adjunct Instructor at a local community college.