Your First Hackathon: A Survival Guide
At some point in your life as a programmer, a friend or colleague will tell you about a hackathon. You may imagine green code racing down a black background as someone frantically types at an ancient computer until they relax and say “I’m in,” but that’s not what will happen at your first hackathon.
At a hackathon, anywhere from a few dozen to several thousand programmers come together over a weekend to build the coolest stuff they can in 24-48 hours. There’s lots of food and free swag from companies, and at the end of the weekend, judges award prizes to their favorite projects. While a great hack might have you walking away with a trophy or a brand new smartphone, the prizes are hardly the best part of the weekend — be prepared to meet tons of new people, learn about a bunch of new things and have a lot of fun!
While a hackathon is an environment where you do almost everything on-the-fly, preparing ahead of time helps to ensure success. Hackathons are learning experiences and, while it’s common to see new programmers win big prizes, it’s still a good idea to be familiar with at least one combination of language and framework ahead of time. You’ll be able to jump right into building software as soon as the opening ceremony closes, instead of spending a lot of time learning the basics of programming.
Equally important to having some confidence that you can work in a language/framework combination is having an idea of what to build. Hackathons are short affairs so it’s easy to waste precious time at the beginning trying to think of the perfect project — besides, the best ideas sometimes come from unpredictable, spontaneous sparks of genius. You’ve probably had a spark like that, maybe several times a week! Start keeping a list that collects these ideas. This will prove invaluable in the early hours of a hackathon. That being said, don’t sweat it if you aren’t that creative. There’s always a session at the start of every hackathon to discuss ideas and form teams.
Speaking of teams, they’re another great thing to set up ahead of time, if you can. At a hackathon, teams average three or four people. Close friends tend to work well together, so grab a couple to team up! It’s also good to have a well-rounded team. Judges care a lot about how projects look, as much as how pretty its code is under the hood, so it’s important to have a designer/graphic artist on your team. It’s also great to have a front-end web developer on your team, even if your project isn’t a website. That way, you’ll have someone who can build a landing page to show off all the cool stuff your project does. Beyond that, find people whose skills play in well to your idea. If you think you’ll need a server to store and manipulate data, find someone who knows how to make a good backend. If you’re trying to build the next killer app, recruit someone who knows Swift. Just as a good idea isn’t strictly necessary, you also shouldn’t worry about having a team beforehand because you can always find a team to join or recruit people to join your team at the idea-pitching session. Hackathons are conventions for programmers of all different disciplines, so don’t be afraid to make some new friends who know how to make cool things with skills that you don’t have!
The last preparation to make before you leave home for the weekend is to pack your bag. Many hackers bring just their laptop and a charger, but the pros bring more than just that. In my bag, I also always have my smartphone, any extra hardware relevant to my idea (if necessary), multiple chargers for my gear, a power strip or two, headphones, a pillow, a blanket, an air mattress and/or sleeping bag, a toothbrush, toothpaste, shampoo, soap, a change of clothes or two, and plenty of empty space for the goodies offered from sponsors at the event. You should pack as if you’re going camping for the weekend.
WiFi at a hackathon is almost always slow from the understandably heavy user load, so be sure to download the latest versions of any software you’ll need ahead of time. Before I go, I always make sure to update my favorite text editor, IDE, browser and version control system to the latest versions available.
Once you’ve done all of the above, you’re ready to start your weekend!
The First Night
When you arrive at the venue in the afternoon or early evening of the opening, the first place you’ll go to is the registration table. You’ve likely applied and been accepted to this hackathon weeks ahead of time, so this step is mostly about checking in so the organizers know you’re there. You’ll also probably get a small goodie bag of gifts from the event’s sponsors here, though it certainly won’t be the last! You can expect a long line at this table, so try to get there early to beat the crowd.
Once you’ve checked in, you should head on over to the opening ceremony. In an audience of participants, organizers and sponsors, you’ll be informed about the weekend’s schedule, the prizes you can win, the benefits that the sponsor companies will be offering and any other announcements that you’ll need to hear. No matter how early you arrive, try to find a seat at the back of the auditorium, near the exit doors. Your choice of seating will be important once the ceremony is over. In the meantime, though, introduce yourself to the people nearby, enjoy the presentation and take notes.
When the opening ceremony concludes, your next concern is finding a nice spot to settle in. Any realtor will tell you that a home’s most important asset is its location, and a good work spot is no different. Like a good apartment, you’ll want it to be quiet and cozy, but also near the center of activity. The ideal work area is a smallish study/meeting room, like you’d find in a library or office building. It should have a table with power outlets nearby, but also enough space for you and your team to lie down and sleep comfortably. Ideally, it should have lights you can switch on and off and a door you can close if things get too noisy outside. This room should also be close to all the other important spots you’ll be frequenting throughout the weekend, like the food table, the sponsor tables, a bathroom and possibly an elevator. A good hacking spot is where everybody will have to walk by at some point, so you’ll never have to go far to find someone to learn from or a sandwich to eat. The best places go fast so be sure to find your spot as soon as you can!
After you’ve found your spot for the weekend and have set everything up, it’s time to head to the sponsor tables. Here you’ll find representatives from tech businesses (many you probably haven’t heard of before) who are excited to meet you and give you free stuff from their company. You’ll typically end up with a few new T-shirts, a couple pairs of sunglasses, a few random toys and a bunch of stickers and coupon codes. Many hackers just run through and take as much free merchandise as they can get, but it’s best to not go too fast and to talk a bit to all the representatives you meet. Those reps are there to be as helpful as possible — especially when it comes to using their company’s software, which you’ll likely have to use to win a few prizes. Take some time to develop a good relationship with them, as they’ll prove an invaluable resource throughout the weekend and beyond.
At this point, the rest of the weekend is what you make of it. If you need a team or an idea, you should definitely go find one at the idea pitch session before you do anything else. If you’re feeling hungry, go grab a bite at the snack table, as dinner is likely being served around now. If you hear that someone is leading a workshop about a technology you’re interested in, you should attend. You might think about how you can incorporate what you learn into your project. Relax a bit at your table and spend some time focusing on getting your code off to a good start.
Once it starts getting late or you feel yourself getting tired, get a good night’s sleep. A popular idea in hacker culture is the hardcore coder staying awake and working at their computer non-stop for literally the entire weekend, but this is a short-sighted and ultimately ill-advised idea. Spreading yourself too thin like this leads to burnout. Proper self-care is important, like getting a solid eight hours of rest when you need it.
Building Your Hack
It’s important to remember two things when you begin building your hack:
- You have plenty of time.
- You have almost no time.
While you should pay attention to the clock throughout the weekend, you actually have more time than it seems. Pace yourself. The best hacks are built over a long run, but comprised of short sprints. You and your team members should take regular breaks and go do something else — get a bite to eat, go to one of the recreation events, introduce yourself to new people or just explore the campus hosting the hackathon. You are your own boss this weekend, so be a kind one.
Self-care over the weekend is important, but be careful to not waste too much time, either. It’s easy to spend so much time on cup stacking and paper airplane contests that the whole weekend slips away, leaving you with four hours to build your entire project before the judging. For every hour I spend on a break, I try to work continuously for two to three hours, potentially more if I’m deeply focused.
When you write the first line of your project, you’ll probably have a thousand different ideas you want to implement, but you only have 24-48 hours. It’s important to quickly narrow down what the core features of your hack will be. Focus on building these features as well as you can first, and then start implementing nice-to-have features if you have time remaining. Judges are generally employed by sponsor companies so it’s always a nice touch if you use their APIs in your hack. However, if you’re going to do so, be sure it’s a good fit for your idea from the start. Don’t implement a sponsor API if it compromises the overall quality of your project or if it feels like it was tacked on at the last minute.
While many startups have been founded around a weekend hackathon project, they’re called “hacks” for a reason. You have a weekend to do what companies take months or years to accomplish, so cutting corners under the hood is inevitable. When you face a task, your first thought shouldn’t be “What’s the best way I can implement this?” It should be “Is there already a solution to this problem compatible with my platform?” A great hack is generally a patchwork of open-source frameworks stitched together by code that any developer would be ashamed to push into production. For example: At a recent hackathon where I came in second overall, my app’s authentication system was a function that returned the hard-coded email address for one of the four members of my team and there was no way to sign up as a new user. While you’re coding, remember that you’re building for an impressive demo, not a multimillion-dollar product launch.
The ultimate goal of every hackathon project is to impress a judging panel, so it’s far more important to look nice than necessarily work well. Although they’re often undervalued in hacker culture, hackathons are truly a designer’s place to shine. At two hackathons I’ve attended, my team happened to have the exact same idea as the team that won but we didn’t even make the top 10. The only real difference between my team’s hack and the winning one was that we made the mistake of not recruiting a designer. Even though our code was implemented well and our idea solved a novel problem, our project paled in comparison to the winning hack. Because they cared about user interface and we didn’t, they won.
I should note, however, that a good interface won’t necessarily win you a competition. At another hackathon I attended, there was a team that figured out how to steal data from a computer that was isolated from the Internet by reading the changes in the faint electromagnetic frequencies given off by the computer’s internal circuitry. It felt to everyone watching their presentation that they had just used magic to pull off the impossible, so nobody really cared that they had a text command-based interface and it took 20 seconds to read a single character. Despite some really nice looking projects competing against them, they won by unanimous decision.
It all comes down to the final morning. All your hard work and effort is boiled down to a two-minute presentation. The brilliance of presentation can make or break a team’s efforts. Fortunately, just like the other parts of a hackathon, a little preparation and a good night’s sleep beforehand will take you far.
First of all, make sure to submit your hack to your hackathon’s online submission system before the deadline. Most hackathons use a system like DevPost to keep the submission process running smoothly and so hackers can build a portfolio for themselves. Even if you’re not quite done, you should prepare your submission at least an hour before the deadline. Make sure that:
- You include a few screenshots
- All your team members have DevPost accounts and they’re linked to the submission
- You’ve given thoughtful answers to all of its questions.
For example, here’s my DevPost submission page for Puggr, which took second place at the Fall 2016 VolHacks at the University of Tennessee in Knoxville.
A hackathon presentation is quite literally an onstage sales pitch. Apple keynote addresses are a great template for you and your team to study for your presentation. Like an Apple keynote, every member of your team should participate in the presentation, talking about the particular part of the project they made and showing a live demo of their work in action. Each member shouldn’t take too long to deliver their speech. What you’ve accomplished over the weekend is impressive, but a concise talk keeps audience members engaged and a jumbled presentation can make two or three minutes a long time.
A hackathon team is a microcosm of a startup, and many hackathon judges are key members of startups, so hackathon culture is very similar to startup culture. Likewise, your presentation should feel similar to a startup’s pitch to a venture capitalist. In doing so, many successful startups tell the story of their work, like the problems they faced and how they solved them. They also love to talk about all the cool frameworks and technologies they used. You should dedicate a slide to each of these.
Speaking of slides, they’re a controversial topic in the hacker community. In my experience, hackathon winners usually have slide decks to go with their presentations so I highly recommend that you make one too. Like any good slide deck, this should consist of only a few slides of screenshots/pictures of your hack and bulleted talking points that you’ll expand on in your talk that covers all the topics I’ve suggested.
Last but not least, make sure you rehearse your presentation as a team at least once before you actually perform it, to make sure that your narrative flows well and doesn’t run too long before you go onstage. The ideal presentation is approximately two to three minutes long, so time yourself as you rehearse and adjust accordingly. Practice the live demonstration of your hack so you can be sure that the judges can see it in action. Once your presentation is polished, it’s ready for the stage!
You’re now ready to attend (and hopefully win) your first hackathon — an exciting weekend of coding, new friends, good food, lots of fun and learning. Don’t be afraid to attend, even if you’re new to programming.
For more information on finding a hackathon to attend, you can find some (as well as a bunch of other useful stuff) on MLH’s website and hackathon.io. For examples of projects, check out DevPost’s projects feed. For examples of presentations, check out PennApps on YouTube (specifically the closing ceremonies).
Michael Hulet is an independent software developer from Nashville who specializes in iOS, watchOS, tvOS and the front and back ends of the web, but really just enjoys software in general. He’s also into data security, hockey (especially the Nashville Predators), and anywhere that has a good plate of barbecue. He’s looking for work right now, especially if your company is in Sweden. You can find him online at his website, on Twitter and at GitHub.
Photos taken by Jason Fisch at Rowan University’s “ProfHacks 2017” hackathon, used here with his permission.