How to build a portfolio

I seem to answer this question a lot, so I’m just going to write it all down. I’ve been trying to find junior engineers for my company and one of the things I like to see is a small portfolio on GitHub. This begs the question: how do a I make a portfolio? I’m not expecting much, just a few quick projects so I can see your style. Hell, it doesn’t even have to be Ruby. If you want to do something in AppleScript to automate your computer, go for it!

Your first Ruby script

Your first Ruby project, whether you’re an advanced programmer or a beginner shouldn’t necessarily be in Rails.  Just do something simple.  A good example of this is playing around with RSS stuff.  Ruby has RSS parsing baked right in to make this really straightforward.  You could do something that takes in your favorite news feed and outputs all of the titles or greps out all of the links.  The possibilities are endless.

You could also do something like parsing out a document to find the most common words.

While these two examples have no practical value, they will serve as a good exercise so you can try out Ruby without worrying about Gems or outside code.


If you’ve ever learned a new language or framework, you’ve probably started with a tutorial.  One of the best Rails tutorials has to be the one by Mike Hartl.  It takes you step-by-step through building a Rails application from the ground up and gives you a good basis for branching out from there.  Don’t be shy about putting this tutorial code in your portfolio.  We’ve all had to start somewhere and some of the best out there are those willing to show a little humility and talk about where they started.


Assuming you’re programming on Unix, you likely have a number of configuration files in your home folder.  Put these in GitHub.  I’ve tried doing this a couple different ways and the easiest way I found was to fork someone else’s dotfiles repo.  I personally took this one:

Putting your dotfiles up for everyone to see is a really good way to share simple hacks that you’ve done to make your life easier.  I personally love editing my dotfiles and adding in new shortcuts.

Non-code stuff

I was recently chatting with a prospective applicant and he mentioned that he’s been busy storyboarding out an app he wants to do for a game so he doesn’t have any code yet.  I was kind of amazed that he hadn’t yet put this up on GitHub.  Git makes for a great word editor since you can see your changes and allow for quick collaboration.  This may not be part of a formal portfolio, but it really helps to see how someone thinks through a problem.

Comments are closed.