How to Build a Programming Portfolio on Github After Graduating Coding Bootcamp
Well done, you! You did the research, found a good coding bootcamp, did their pre-work, found funding, and quit your job or took a leave of absence and committed 3+ months to acquiring a new, valuable, skill. Most importantly, you persevered through what was no doubt an intensive few months of algorithm challenges, learning new languages and frameworks, and wrapping your head around all the tech jargon and software development technique your brain could handle. You’ve accomplished what many could not and you should be extremely proud of yourself.
The question is: what now?
Well, obviously, now you need to go out there and find yourself a development job! The real question is “how do I achieve that?” There are many articles on the many steps you need to take to find your first development job out of coding bootcamp. I have even written about the topic and will likely write more about it in the future. Today, however, I want to discuss a specific aspect of the job search: building an excellent programming portfolio.
The Challenge of Finding a Job After Graduating From Coding Bootcamp
Plainly and simply, the primary challenge with getting a job when your only development experience is a coding bootcamp is being able to prove yourself to potential employers.
According to the Friedman Doctrine of “Shareholder Value”, the only goal of a company is to provide value to its shareholders. While modern thinkers typically disagree with this philosophical outlook on business and argue that companies have a social and societal responsibility as well, the fact remains that the primary goal, if not the sole one, is to make money. That being said, most business decisions are based on the premise of creating the quickest and safest return on investment. What this means for employment is that employers don’t like to take risky bets, such as hiring potentially unqualified employees. Universities have a history of consistently producing well-rounded, relatively skilled, employees. Coding bootcamps, on the other hand, are a new and odd sounding concept to most hiring or development managers, most of whom simply are looking for another team member and who don’t have the luxury of re-inventing their corporate culture or taking hiring risks.
What does this mean for you, as a coding bootcamp grad? Well, it means you aren’t operating on the same terms as a graduate of a traditional 4-year school. However, whenever we operate from a place of perceived weakness we must utilize the famous Marine Corp mantra: “Improvise, Adapt, Overcome!”.
How Can We Overcome Our Perceived Disadvantage As Coding Bootcamp Grads?
What were we constantly taught in coding bootcamp? That we are learning practical, usable, and modern techniques for web development today. Fine, we didn’t learn graph theory or how compilers work. But we can smash out an MVP fullstack web application is less than six hours. Use that! When a recruiter or a company asks about your experience you need to have something that balances out your lack of knowledge. The best possible way to overcome that obstacle is by empirically demonstrating your ability, specifically, by showing them a project, or several, that you’ve worked on.
GitHub
You need to know how to use Git and GitHub. Period, full stop. While your contribution history graph may not necessarily matter to a potential employer, having a healthy commit graph is a way to show that you are working to better yourself as a developer. More important than your graph is what you actually commit. You need to work on real projects that you can demonstrate to people. Additionally, an important sign of a decent developer is being able to write good commit messages. So, if your commit message history is full of messages like these, try again. Make smaller commits if that’s what it takes in order for you to be descriptive.
// Example of how NOT to write commit messages.“commit #17”“this better work”“programming suxxxs!!!”“The real, real , final, commit”// Examples of how TO write commit messages.“Updated local packages to version 1.1.0”“Added models and updated services”“EOD (End Of Day). Breaking changes to MyProject.Services”
You must absolutely commit at the end of each work day.
What Kind of Project Should I Work On?
That’s a great question.
I usually found myself in one of two states. I either had too many ideas, or none at all. I love working on teams and do my best work when I have people who encourage, motivate, excite, and hold me accountable, so I highly recommend finding a fellow graduate to team up with . If you work best alone, power to you.
I would highly encourage choosing a project that is either specifically relevant to the field you wish to enter, or generally impressive. If you want to enter the field of robotics or work or medical devices, you better buy a Rasberry Pi and program the heck out of it. Create a 3D printer from scratch or develop a program that improves the efficiency of 3D printers. Perhaps you find some cheap, industry standard equipment and find a security flaw in it, and release a patch to the community, or maybe simply improve upon its codebase.
If you want to enter the financial world, build a financially relevant application. Maybe you can build an app that takes the target pricing from the top 1000 analysts and generates an aggregated stock pricing algorithm? I know that the financial software industry typically pays better than average, so I hoped to end up in that industry. To that end, I convinced my team during our last team exercise during bootcamp to build a financial application that mimicked some of the features of Yahoo Finance. We called it TCKR (short for stock ticker). You can read more about it here (part 1, part 2). We spent a significant amount of time trying to make sure our front end looked nice for that “wow!” factor that would hopefully provide us some upfront legitimacy. Our backend was pretty decent due to our integration of a live stock trading API. That API made us the most impressive of all the projects in our cohort, by far.
The coolest thing that you can do, that shows how much of an asset you can be, is to create a website, mobile app or service that people actually use. If you show up to an interview and demonstrate an app that has a thousand users. that is a major ace up your sleeve. The interesting thing is that such an application does not necessarily need to be complex, but rather, fill a unique and unidentified need.
Here are a few examples of super simple ideas that have found their way to a wider audience than you and your grandmother.
The Kardashian blocker.
An net-positive contribution to society, someone whipped up a filter that blocks or removes all mention of anyone having to do with the Kardashians. Now that’s a great way to gain some publicity that you can leverage at your next interview.
https://www.businessinsider.com/k-blocker-app-blocks-all-kardashian-content-from-your-iphone-2015-11
https://chrome.google.com/webstore/detail/kardashian-filter/kbnhlagadnlfihhgjkmcaffjadkadoap?hl=en
SpaceX tracker.
Comcast slow WiFi automatic Twitter complainer.
Conversely, I think it is terribly lame to clone some popular website or service, especially if that is a literal copying of every single bit of style and functionality. The world has enough Yelps (I confess, I did a Yelp clone), Instagrams, and OKCupids. Another dating site will not endear you to a company, no matter how cleverly you wrote your models. It’s so hard to demonstrate your abilities when the product you are showing off is so par-for-the-course that the effort to build it seems negligible. Even if creating another, more interesting, application is, in fact, easier. I believe that creating that more unusual application will give you more positive exposure.
I strongly recommend that you find and utilize free and publicly available APIs to superpower your program. Data is what drives the modern world. Therefore, if you want to create something worthwhile, you need to connect to, or create, an interesting or important data source.
Regardless of what you choose, I feel strongly that having a clean and impressive front-end is very important. We tried to make our TCKR application have a clean and consistent interface that looked professional, even if only had a small handful of features. That site garnered me good responses when I demonstrated it.
Deploy it
Have your project ready to show! One of the worst possible things is to show up to an interview and offer to show your super cool website and then have to do a bunch of debugging or configuration in order to launch it (true story). Deploy your site and have it publicly available via URL (keep the URL simple and easy to type for non-tech people). Put that URL on your LinkedIn, resume, email signature, and anywhere else you can get people to go visit your site. You want to shout your expertise to the world, not hide it in an obscure Git repo.