Survival Guide for a Hackathon, Part: the First

Thinking about joining a hackathon but aren’t sure where to start?

Hackathon participation sounds awesome. But…it can also feel intimidating. Much of the ritual appears to be tribal knowledge among its veterans.  So how are newcomers able to get involved and benefit the most from their experience?

The trick is to just go: have a great time hacking, making friends and learning!

I participated (and won a prize!) in my first hackathon yesterday.  By reflecting on my experience, I’m hoping to demystify the process and provide some encouragement for other hackathon newbies.

definition of a hackathon

Part: the First

This post will be a general summary of my newfound wisdom, acquired on Nov 16 at the NYTimes Hack Day 2013.

Aside from the awesome swag, prizes and internet glory, there were a few things that made my experience worthwhile; here’s what I learned.

Many questions before the hackathon

  • How do I come up with an idea?

My only plan was to show up, make a team and brainstorm an idea together.  I had a desire to work on something politically-related, but was willing to stay open-minded.

Highly competitive hack days may have teams who design their idea ahead of time.  I’m sure that helps, but it is also totally possible to wing it.  Hackathons are perfect environments to pick a fairly new topic to work on.

  • What tools will I need to use?

The NYTimes 2013 Hack Day was sponsored by a number of companies, who were promoting the use of their APIs.  I did not prepare any code beforehand and used an API for the first time in my life during this hackathon.

The NYTimes and other sponsors setup workshops to demonstrate their APIs and were available during the event to help and offer support with the tools. The promise of API-handholding is why I chose this to be my first hackathon. Learning to use new technology can be time-consuming, so be mindful of your constraints and improvise with mock-ups, if needed.

Decide what you want to get out of it.  My tools goal was to learn how to use an API to scrape data and Python to do something interesting with it.  I knew that no matter what the outcome, I would be able to achieve my goal.

  • How do I build up a great team?  What if we can’t agree on an idea?

I wanted to create a team ahead of time by inviting some friends and being super friendly to the registered hack day participants in the PyLadies meetup group.  None of my friends were able to attend, but a few people on meetup messaged back indicating they’d be happy to work together. At the event, we grabbed a table and got to know each other during breakfast.

Halfway through the brainstorming, we realized there were two great ideas worth pursuing. A few people wanted to work with the Twilio API to build something related to telephone calls. Some others, myself included, preferred to dig into the political content available on the NYT Developers and Sunlight Foundation APIs.  Since there were more than enough people, we split up to form two separate teams.

Within my team, we still had to agree on an actual project, but nailing down the overall strategy early in the day gave us time to work it out.

  • What am I supposed to contribute to my team?  Do I go solo-bandito and work by myself?

There’s always something you can contribute. The main point is to write some code, but anyone can participate in brainstorming sessions, documentation, project management and the demo presentation. A successful team will divide up responsibilities to get more out of a limited timeframe.

Some people prefer to work alone. There were a couple of presentations from individuals, who built impressive apps by themselves. If you prefer to work alone, that’s totally cool.  If you would like a team,  speak up and get to know other participants!

  • How can I build a working app to demo in a seriously short amount of time?

Some groups had a finished app loaded up on the web (example), but most of us had something running locally that was only “presentation-ready”.  If you’re worried about getting your application finished before the tight deadline: strip down the features to the bare minimum. Keep track of your ideas, but stay realistic about what gets you the most bang-for-your-buck.  It’s ok to implement a superficial scaffolding to get your app to do “something” in the last moments of the event.

Team Python Super PAC got our code working in the shell, but didn’t have a fancy front-end. The idea behind our SayWhat app was to create metrics of phrases legislators use during public record and correlate it to bills they are sponsoring.

We demoed the code running live in the shell, scraping phrases and displaying match statistics.  For some quick graphics to demonstrate our content, we created a few word clouds.  More about that in my next post.

  • What if we don’t finish, should we still present?

You should always demo, no matter what. Even if you’re ashamed of your project, think of this as a great way to practice your presentation skills and get a much-earned round of audience applause. You worked hard and even if you didn’t finish everything you set out to do, you have spent time creating something.

One guy at the NYT hack day wasn’t able to get his computer to project properly. Instead of giving up, he went through a detailed demo verbally explaining his idea and how he developed it. It was a great reminder that the enthusiasm you have for your work is appreciated beyond the application itself.

The presentations were really fascinating!  When it was our turn, I was super nervous presenting at first, but couldn’t help getting excited to show off my team’s hard work. The 2min presentation flew by and before I knew it, everyone was clapping.

We found out at the end of the hackathon that SayWhat won the prize for the best use of the Sunlight Foundation API.

And the prize for best use of the Twilio API went to the other PyLadies group that branched off from us in the morning! They built PocketNSA – record a digital copy of a phone call.

Most important lesson from my experience was that hackathons are fun.  I had a great time, made new friends and got to finally explore an API. The sponsoring companies did a great job providing the environment, food and tools that we needed to create some amazing apps.

How was your first experience at a hackathon? What did you learn or what would you have done differently?

Part: the Second: Next post will include technical details about the application SayWhat built by my team, “Python Super PAC”.

1 thought on “Survival Guide for a Hackathon, Part: the First

  1. Pingback: Survival Guide for a Hackathon, Part: the Second | punkrockpolly

Leave a comment