Wednesday, March 7, 2012

How to Win a Hackathon

For 30 straight hours this weekend, my co-founder, Matt, and I competed in AngelHack (the biggest hackathon in the nation) for $75,000 in prizes, and the potential for recognition of our startup, Rummage.

The product we built, SnapStore.me, placed first on the West Coast, and second overall:

We wanted to share our experience with other hackers/entrepreneurs, and offer some advice on how to make the most of your next hackathon.

Why do a hackthon?

First of all, why would you subject yourself to a grueling 30 hrs of work to do a hackathon? For us, there were three big reasons:

  1. Get our names out – placing in a competition like AngelHack gives you instant credibility and makes it much easier to start conversations with people who can help your startup/career (which in our case is Rummage). For example, it made it much easier for Jason Calacanis to hook us up with tickets to Launch Festival :)  
  2. Network and learn – these events draw people from the whole spectrum of the startup world: from the talented and creative hackers and hustlers who compete, to the savvy, experienced investors who judge and give office hours. You will learn a lot from everyone you talk to. If the only thing we walked away with was the connections we made, we would have still considered the effort a success.
  3. Have fun – win or lose, we wanted to work on something interesting that would complement our startup’s main product, Rummage, and let us play with cool technologies we’ve wanted to try.

Preparation is Key

Hackathon rules vary, but AngelHack encouraged teams to plan their ideas beforehand. We thought of our idea about a week before the competition, and drew up several important screens/flows the day before the competition. Here’s a sketch we did of our homepage:

Figuring out the nuances of what you want to build before you’re on the clock is an enormous advantage.

Bring sharp tools

UI – Twitter’s Bootstrap library makes it a snap to build very clean UIs without being a designer, and we’ve used it for almost every project we’ve built since it was released. But Bootstrap’s not a secret any more, and we knew that many other teams would be using it too. To stand apart, we tweaked several of the default styles including the default black of the nav bar. We’d recommend becoming familiar with Bootstrap, and learning how to use Chrome’s web inspector or the Firebug inspector to let you quickly determine which styles to override.

Deployment – it’s much more impressive if the hack you do is live and accessible to anyone on the web. Heroku is an incredible service that makes this very simple. Whenever we start a project, SnapStore.me included, one of the very first things we do is deploy it to Heroku. Getting through that first release cycle sets you up for fast feedback, less uncertainty, and more productivity. Heroku is known for being a Rails provider, but they also support other Ruby frameworks, Node.js, Clojure, Java, Python, and Scala. We definitely recommend getting familiar with Heroku, even if you’re already comfortable with sysadmin work.

Framework – if you want to build a web app quickly, then using a web framework is a no-brainer. Play to the framework’s strengths and don’t be afraid to cut corners. What you’re building at a hackathon is an MVP – the smallest possible representation of your product in a fully-functional form. The code doesn’t need to be elegant, and it doesn’t need to scale – it just has to work. One cool feature of Rails that we took advantage of was ActiveRecord::Store, which was released with Rails 3.2. This feature made us practically schemaless – we ran one migration per model, and just changed the store’s attributes whenever we needed to add/remove/tweak something.

Bring a team

Hackathons can be a great way to meet new people and have a good time, but if you want to win, it helps to have the team chemistry and a known division of labor in place when you arrive. If you don’t know anyone, go anyway, and try to meet people who you’d want work with in the future.

Practical tips

Hacking’s a lot more fun when you’re comfortable. Here are a few practical/hygienic tips:

  • Eat smart – avoid the candy and carbs, and stay hydrated. Energy drinks are your friend.
  • Bring a toothbrush & floss – brushing my teeth (even just once) made me feel fresh. It was also a good way to signal to my brain that it was time for a new day of productivity.
  • Nap – there’s no shame in grabbing some shuteye. We found some couches and snuck in an hour nap each which definitely energized us. If we’d lived closer, we might have gone home for a few hours instead.
  • Bring earbuds – this one’s a must, and pays off in spades when the DJ running the Turntable.fm room kicks off a dub step marathon at 2am.

Take Time to Network

Talk to as many people as you can, and try to make introductions for others. The more friends you have cheering for you when you pitch, the better :) We learned a lot of very useful stuff when we were there, both on the technical and business sides of things. 

Two examples:

  1. Thomas Korte, one of the judges, walked the floor on the first day of the hackathon, and held an office hours on the second day. We took the advice he gave us, and it made SnapStore.me a much better, more realistic product. He also mentioned us to an AngelHack attendee who then introduced us to someone very familiar with the space that Rummage is in. This connection alone made it worth our attending.
  2. Firebase was a sponsor, and their employees, including the founders, were out in full-force for the entire event. They cheered all the teams on as we worked, supplied all the beer, and were generally just very cool to have hanging out. Andrew told us about his startup’s early days, told us some dos-and-don’ts on how to grow Rummage, and live demoed Firebase’s upcoming API on our laptops. Chris kindly supplied us with an awesome photo of the Firebase t-shirt for us to use in our demo :)

There are LOTS more people we met who we’ll be keeping touch with, and look forward to seeing again at other events.

Understand how you’ll be judged

If you understand the structure of the competition and the audience you’re pitching, you’ll have a good sense of how to prioritize your features. AngelHack’s judges were mostly angels and VCs, so we tried to build something that we could see turning into a real business when the competition was over.

The pitch is everything

The competition really comes down to how you present your product. For better or worse, the judges probably won’t see the sweat and tears behind the code you wrote. And 90 seconds to demo any product doesn’t leave much room for error. The demo has to look good on-screen, and you have to make sure it’s easy for the judges to see what’s unique and valuable about it. There’s little time for mic handoffs, and there’s no time for the demo to break.

What you should do depends on who your judges are, but we tried to give a clear and concise explanation of what we built, why it’s impressive, and why it’ll turn into a good company.

AngelHack was judged in three rounds

Round 1

The twenty regional finalists were decided with a 90-second narrated video demo. The most important thing to do with the video is prove you built something interesting, and make the judges want to learn more. Before filming it, we polished the design, made sure it was functional, and wrote a script to clearly articulate the value of a SnapStore. You can see the video here:

We did several takes to make sure the demo was exactly how we wanted. Start your video with plenty of time to spare. You might have technical problems filming it or find bugs in your app, and you’ll want to mitigate the chance of network/bandwidth issues as people rush to submit in the minutes before the deadline. We made our screencast with Screenr, an excellent free tool.

Round 2

The ten regional finalists and overall regional winners were decided with a 90-second live pitch to judges, followed by 2-minutes of Q&A. To prepare for Round 2, we practiced reiterating the most important points from our video, queued up the main features we wanted to demo in different browser tabs, and worked through some Q&A. After the winners were announced, we made sure to talk to the judges, and understand what they liked and disliked about our pitch.

Round 3

The five national grand prize winners were decided with a 90-second live pitch to a new set of judges on the next day (thankfully after a whole night’s sleep!), followed by 2-minutes of Q&A. We spent the day preparing by revising our pitch based on feedback from Round 2, and fixing some bugs and design issues.

Wrapping up…

AngelHack was an awesome experience. We’re stoked that we could execute on our plan, build a product that we’re proud of, and open up opportunities for our company, Rummage. We also scored some sweet prizes – much thanks to Neil Mansilla from Mashery for the Jambox, Heroku for all the credits, and the investors who will be taking the time to meet with us over the next few weeks.

We also have to thank Greg Gopman, Nick Frost, and the rest of the team behind AngelHack for putting on such a great event, as well as the sponsors, and all the participants for making it a super time.

We hope this post encourages all hackers/entrepreneurs to compete in and win a hackathon.

Help us by following me (@ujeezy), Matt (@minouye), and Rummage (@rummagehq) on Twitter, and please upvote this article on HackerNews!