Zero to Hero in 36 Hours — A Hackathon Project Guide

Introduction

So you’ve either just gotten accepted, or arrived at a hackathon — that’s amazing!

VaultBoy copyright Bethesda Softworks

Out of the Gates

Planning! This is arguably the most overlooked aspect of the hackathon project process. The first thing that hackers should ask themselves is ‘what is my main goal here?’ Am I trying to get my feet wet with some new hardware, flesh out an idea with a stack I’m familiar with, or maybe something that falls somewhere between the two? Do I already know what I want my project to accomplish, or do I really just want to use one particular piece of tech?

Setting Goals

Being able to hit the core functionality is crucial; let yourself add bells and whistles as a reward afterwards. Fleshing out the logistics and core functionality of a project will take the vast majority of the time at a hackathon. Prioritize accordingly.

‘What is my core product/idea?’

Use your group to its fullest potential

Build something that can utilize the strength of your team, or at least will enable learning in a way that will maximize your group’s efficiency. Getting bottlenecked really can hurt production and increase stress on one particular group member — be sure to help that person out, or be careful to design your project in somewhat of a modular fashion so that downstream features can still get started while the upstream components are polished off.

Teamwork is a major key to success

Draft your project with a ‘wireframe’ or ‘skeleton’

It’s easy to get caught up in what functions your product will have, but drawing out potential screens of a mobile app, pages for a web site, schematics for hardware, or a schema for a database will all help you stay focused and keep on track for delivering on your goals by the end of the event.

Execution

Communication

Depending on your group’s technical composition, you will likely be working on different aspects of the same project simultaneously. Be sure to keep each other updated with how things are going, or if any problems/bugs arise. Simply ‘thinking out loud’ can lead to helpful collaboration, innovation, or unexpected breakthroughs. Further, manpower can be redirected towards larger problems when needed! This expands heavily on the planning/wireframing from the last section, as knowing exactly what each person is responsible for will only help expedite the process of combining the individual parts.

Every project starts with a single line of code

Self-checkpoints

Beyond setting long term goals for the project over the course of the entire event, be sure to set smaller goals for yourself and your team while trying to accomplish your specific task at hand. Setting smaller, more attainable goals will allow you to more effectively monitor your progress, and will help you feel good about the work you’re accomplishing as you’re hacking along. You’ll also be able to more easily figure out when it’s time to ask for help.

Healthy Hacking

With all of the time one spends hacking over the course of an event, it’s easy to get lost in the heat of the moment. Take breaks, get refreshed, have a power nap, rehydrate, and maybe go for a walk. Eat some of the delicious food too, hackathons are a great way to try amazing, diverse food from a variety of different regions!

As with many other things in life, moderation is key.

Being proactive about your health and wellbeing at hackathons pays dividends, as you will be thinking clearer, feeling better, and be more properly equipped to finish building the amazing product your group has already come so far with. As a mentor, the overwhelming majority of problems I have helped to debug near the end of hackathons are simple in nature, typically syntax related mistakes due to sleep deprivation/fatigue.

Take a breather

There’s also what I like to call the ‘mid-event lull’. As you’ve likely been hard at work for many hours, potentially sleepy and/or hungry, it’s important not to get held up in this transitional phase where productivity may have dropped. You could use this time to run your project ideas by a mentor, do something fun that isn’t hacking related, or come and play one of MLH’s fun mini events!

The Home Stretch

Finishing Touches

For most teams, function takes place before form in the context of a hackathon project. Although I would personally advocate for a design schema that has a symbiotic relationship with the hack’s functionality, last minute design touches are extremely common. Think deeply about the most critical functions of the application, as well as the parts of the hack that the user will interact with the most. (Ex: Don’t spend 4 hours trying to just design a logo if your web page still looks like plaintext).

It’s your 36 hours, I can’t wait to see how you use it to change the world.

Testing

Don’t just assume all of your moving parts will fit together smoothly, be sure to test it yourself (don’t forget the edge cases)! Hackathon code will by no means be bulletproof, but formulating an idea of how you plan to demo your product will help in ensuring that the project works for the use cases that you intend without needing to hard code anything last minute.

Version Control (Git)

I figured I could tie this in here, although it could’ve easily been mentioned earlier. Git is a wonderful tool that allows you to make documented and incremental changes to your code, such that your last ‘checkpoint’ will ideally always be a version of your project in a functional state. With git, you can easily collaborate with code amongst the group, track changes, or roll back to any prior version of your code. There are many different hosts for your cloud git repositories, but Github is by far the most popular (and offers an awesome Student Developer Pack to boot)

Beyond the Hack

Documentation

Contrary to popular belief, not all hackathon projects live and die within the confines of the event! ‘Clean’ coding with proper notation is not just good programming etiquette, but it will help yourself and others in the future if your hack is to be expanded. Proper documentation will help cut down on unnecessary frustration during an event, both for yourself and your groupmates.

Open Sourcing

Interested in sharing your project’s code with the world? Get on github! Github is THE place to contribute to the open source community, as well as to meet other people who may be equally as passionate about your project as you.

Demos

The topic of demos warrants an entirely separate post for itself, but here is a fair synopsis.

What to avoid when doing your demo*
This kid knows what ‘cool’ is.

Hackathon Submission Page

Here’s where you can tell the world about your project! Talk about problems you faced, the tech stack you used, and future direction of the project. The hackathon submission page will help colleagues, mentors, and judges understand more about your project — you can even turn it into part of your portfolio down the line.

In conclusion,

Hackathons are an unparalleled environment that allow you to literally turn your dreams into reality. You can enter with an idea and walk out with a prototyped product, built alongside a team of people you hadn’t met until you arrived at the event, made possible by a proverbial mountain of resources from software to mentors that otherwise would have cost hundreds or thousands of dollars. Get out there and make the most of it!

--

--

Developer Relations at Amazon Web Services. Formerly MLH, Datmo, Wolfram Research.❤️ esports, AI/ML, and dunkin donuts coffee.

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Nicholas Walsh

Nicholas Walsh

274 Followers

Developer Relations at Amazon Web Services. Formerly MLH, Datmo, Wolfram Research.❤️ esports, AI/ML, and dunkin donuts coffee.