Hackathon

hackathonIn the last few years I’ve been reading a lot about a new (to me) type of endurance programming event called a Hackathon.  As a career programmer, I felt like I had to try this at least once.  So I decided to do www.hackvt.com which was Oct 19& 20th.

You have to find a programming team ahead of time, and after asking around a bit a guy I met through programming user groups, Micah Mutux, said his team from Branthropology had room for 1 more, and so I joined their team!  Brandthropology works with the same exact technology as we do at EatingWell so it was a good fit.  Here is a rundown of my teammates, in no particular order:

* Micah Mutrux:  He did a lot of our front-end web programming, fancy JavaScript stuff
* Cooper Fellows: I think he was the youngest on our team, a very quick backend programmer who knew how to work with the Google Maps plugin we ended up using
* Nicholas Szumowski: He has a strange mix of server admin skills and the programming behind making the web site look good
* Jason Greeno: He actually had no programming skills but was an excellent graphic designer, as you can see from the style of our final product.  Also he has experience from working on a ‘Gameathon’ before and served as our project manager, keeping us all on track, and did one of the hardest jobs of all which was to give the final presentation.  So he very much pulled his weight on our team or even more even without any programming skills.
* And myself, Rebecca Grenier, an all-around programmer with more experience in the back end, worked on everything else, spot entry (that complicated tagging/categorization system!) and both the list of daylists and the single daylist view.

Here is our final product: http://www.vermonttripplanner.com

On that Friday at work I was really tired, I had slept poorly the night before and pretty much the last thing I wanted to do after work was go program for another 24 hours straight.  All day I racked my brain trying to think of an excuse, but there just was nothing that would not leave my team down a programmer so I made myself go, and I ended up being very glad I had done that.  Because 10 minutes into it, the excitement got into me that we were in a contest and I lost myself in the work and the time FLEW by.  There is a picture someone took of 3am (at the top of this post), and I remember kind of looking at the clock and seeing that it was really late, but then there was this feature I was trying to finish so I got back to work.  And then I saw it start to get light again outside!  I can’t remember the last time I pulled an all-nighter, maybe it was a decade ago, that long.

The location was spread over the downstairs of the Champlain Mill building in Winooski, I think there were about 120 teams inside a few different areas and the central hallway.  Each team had a folding table and folding chairs, not the most ergonomic setup and so a few of the more experienced fellows had brought their own chairs.  Which I definitely will do next time as well, as that was my only complaint.

One of the small storefronts had been converted into a napping area with darkened windows and blow-up mattresses inside, which I did not make use of.  I wasn’t there for a slumber party!

We had chosen our topic ahead of time and my team had made up wireframes already of the parts of the website that needed programming, so we got right to work.

Twice throughout the night we were all called out into the central hallway and there were Quick Fire puzzles that took maybe 5 minutes each one to finish.  The first one was a math problem that was done with bits of trivia you look up online, and the second one was a complicated bit of psuedo-code to work your way through.  For each of these two small things the winner recieved a 10″ tablet computer!  Seriously, the prizes were great.  There were random drawings throughout that only people who were still there could win, of which I won one that included a 2-night stay for 2 at Stowe Mountain Lodge!  And my teammate Jason won an iPad with a nice set of headphones!

The rule was that we had to STOP programming at 3pm, and that was when the presentations started.  Each team had to give a 3-minute presentation on their project, and that was what we were judged on.

As we progressed into the afternoon we were all in somewhat altered states of mind, which is a little like being drunk I think.  Now, our idea is a great idea, actually, and we were all pretty convinced that we would win.  It was looking like we would finish our minimum viable features and have a basically working thing to present.  And it even looked great due to Jason and Nick’s work.

Jason had done that Gameathon previously, where his team had experienced something unfortunate: in trying to add one more thing to the game they broke it so close to the cut-off time that they did not have time to fix it, and so they had nothing to present at the end after all their hard work.  So at around 1:30 – 2pm while the rest of us were madly trying to get working our current feature he was starting to say “ok, let’s start thinking about freezing this codebase while it still works” which none of us programmers wanted to hear and we hissed at him that we wanted to finish our features.  But he kept at it and after a few gentle repeats got us to mostly stop at around 2:15, Cooper still had to fix one big issue which wasn’t really done until 2:45-ish.

Then, the judging which we were SUPER excited for.  There was some real prize money at stake and not a ton of teams left to compete with.  I’d say we had maybe 60 presentations, of which around 10 were student teams.  First place was $4,000, second place $3,000, and third $2,000 and the best student team also got $2,000.  And three honorable mentions.

The presentations were long but kind of entertaining, seeing a lot of tired teams and students make presentations.  One kid had planned on gathering data by having a bus driver take along his iPhone on the route that morning, which apparently the bus driver had refused to do so he said “Yeah, so that didn’t happen.” and sadly all he had to show us was a blank map.   There was a few technical difficulties where the projector malfunctioned so the audience did not get to see the app, but in that case the team showed the judges directly on the device.

Then the winners were announced!  Unfortunately, our project was not selected.  Now I’m not even sure we were playing to win, but if we had been there were 2 things I would focus on in the future:

1. You can’t show a ton of features AND introduce a whole concept in a 3-minute presentation, it is just impossible, so really you needed a very simple one-page thing to present, that you could talk about and show completely in the small amount of time.  We spent so much time on these small features that had no hope of making it into a 3-minute presentation and so did not help us in one bit towards winning.  (But will help greatly in having a website people can actually use).

2. We didn’t pay that much attention to the theme/instructions of the whole event, which was to find a new way to use open data in a way which would benefit Vermont.  Our app didn’t use any open data, except the Google Maps which is not Vermont-centric except for we based our app here, but it could be based anywhere.

So the winners were all things that specifically had to do with Vermont open data and benefited Vermonters.  First place went to a elegantly done app where they had used google maps and Vermont socioeconomic data to show on that map where different types of businesses had existed over the last 50 years.  Hard to explain, but it was all on one page and easy to use and demonstrate. (Here is a blog post about that: http://beerlington.github.com/blog/2012/10/21/how-we-won-hackvt/  It just was very well done and they definitely deserved it.

Anyway I had a great time and am so glad I did this, and I want to do it every year from now on!