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?
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:
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:
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:
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:
I insert this data into a DynamoDB table that is keyed by Date.
I built an API, again using AWS lambda functions written in Node.js and the serverless framework to provide this data to the website.
I have these lambda functions wired up to API gateway so that the website can grab the data using AJAX (client side JavaScript).
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.
The gatsby site also shows cases for the last 10 days and displays a graph.
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:
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).
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.
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.