What to do in a hackathon


Introduction

So what exactly is a hackathong? Well it’s just a hackathon with a g at the end of the word. I wanted to write about my experience in participating in my first one. I’ve always thought hackathons were cool, you basically get so much time to get a project up and running. Usually it’s not that much time which forces you under a huge crunch. Mine was a 48 hr competition called the Rails Rumble. The Rails Rumble is a great competition made up of teams from 1 to 4 people. This was perfect for me since I had an idea, and didn’t know anyone else under the notice that was local and wanted to participate.

What to do first?

The first goal was to get the server up and deploying code. I spent the first 4 hours of the competition setting up the server, doing all the configurations and then setting up capistrano to do the deploys. Once that was done I set up the rails project and got a basic index page up.

The next day

I figured I would focus on the administration side first, after all the content for the site would have to be generated from people being able to create it. So I decided to break up the next 8 hrs working on this part next. By 1am I had a functional (ugly) adminstration interface.

The last day

I got the user side of the site up which took me till about 1 am the following morning. I slept for 6 hours and then got up to focus on the design aspect of the site. Everything was very rough, I spent the last remaining hours cleaning up and asking my wife questions on how she would use the site. She actually had some very good points so each time she had found something I would try and put it in. I then tagged my branch and it was ready to be judged. I was pretty freaking exhausted and took another nap to feel better and refreshed.

Lessons Learned

  1. Setup your server first, and make sure you can do deployments before you start getting deeper into your code.
  2. Don’t drink lots of Red Bull and other energy drinks, I stuck mostly with tea and coffee in the morning and water.
  3. Get sleep, it’s ok to work all day till 1 am, but sleep when you start getting frustrated.
  4. Smoke breaks, take them. Even if you don’t smoke, walk away from the computer for 5 minutes and go outside.
  5. If you are a family guy/gal don’t neglect them, help them out, play with them.
  6. Document your site, make it painfully obvious how to use something. Videos, instructional text, blogs.
  7. You are going to write shitty code if you are a coder, but write tests for everything you can.
  8. People and judges will forget that you were in a time crunch, and don’t expect them to be nice.

Conclusion

It’s nice to dream of winning, but chances are you aren’t. Don’t do a hackathong to win, do it for yourself. I was proud of myself after the end of the competition and just knowing that I could build a project from the top of my head in 48 hrs. was awesome and I would probably do it again.