How to Run a Hackathon.
How to run a hackathon.
About three months ago, I decided it would be a good idea to run a hackathon. I suppose that I thought that it would be fun, and that I’d probably learn something, since I had never run one of these before. The truth is, I had not attended that many hackathons either. No matter, I was decided.
About
This post is going to give an outline of what went into the planning, mainly different details and considerations. Check out my post on the story if you’re interested in some of the initial planning and decisions. I couldn’t have done this without the help of a bunch of people. Please see my THANK YOU! post for who contributed to the event, and what they did.
Dates and times
When I originally had this idea, I booked the large event room at Hacker Dojo. We would have been able to use the space from 7pm-10pm on Friday and 8am-10pm Saturday and Sunday, though we would have ended at 6 or 7pm on Sunday. We ended up going with 24 hours straight from Friday night at 7pm to Saturday at 7pm, and holding it in San Francisco.
The whole weekend version seemed as it would have allowed things to be a little more relaxed, and not quite as pressed for time. In practice, we would have been just as for pressed for time, though being able to get sleep in between would have been helpful. I’m not sure that one would have worked out better than the other, and in the 24 hour model, we had most teams finish and submit something.
I’m not entirely sure that the location much of a difference. While we had initially hoped to grab attention from I/O attendees, the GDG leaders summit was closer to our event, and several of our attendees were in town for that (as well as I/O). Maybe the next one will be the weekend before the GDE summit.
Venue
There are several reasons that it is important to get this figured out first. First, obviously, you need to hold the event somewhere, and you need to be able to tell people where they’re going to go for the events. Second, for us, we knew that people would be traveling to the area, and the sooner we could let them know about our event, the better. Finally, again, you can’t hold an event nowhere, well, you could, I guess, but it would be a different thing, and that’s not what we’re talking about here.
The venue was chosen by our primary sponsor. I had initially booked Hacker Dojo, but we wanted something in San Francisco, and they were excited about Galvanize. Since the sponsor was taking care of the venue, I didn’t get too involved in that decision. The venue ended up costing $3k, and while Entangled paid for that, the money could have gone to other things, like prizes.
In retrospect, the space was the easy part, and we could have likely gotten a cheaper, larger space. We actually had several offers for a venue from several different people. Here are a few other considerations when looking for a venue:
- insurance coverage
- security
- registering
- cleaning
- power outlets
- WiFi
- tables
- find out about kick-out time
- sleeping rules
- white boards or flip charts
- food storage, refrigerators
- coffee maker
Lawrence warned, “take nothing for granted, especially without a big corporation to host”. It turns out that our paying a decent amount for the space bought us most of the things that we wanted. We still needed to rent tables, and get our own insurance, but they did have security, a cleaning staff, and allowed us to hack there all night.
The people who worked at the space were also great, and I have no real complaints. They actually stayed most of the night to help with issues. One team did have issues with certain ports being filtered on the internet, but they were able to work around that.
For us, it was certainly a trade-off, where we spent more money than I would have liked, but I also had a little less that I needed to be concerned about. Then again, we needed to rent tables, and convert a working space ourselves, then convert it back at the end. In terms of planning, the fact that our sponsor was so gung-ho about it, and that they were just sort of handling it, meant one less thing for me to take care of, and that was a huge plus.
I’m going to quickly respond to each of my points with what our solutions were:
- insurance coverage
- I bought event insurance online for $125
- security
- the space had security
- registering
- we had organizers at the door checking people in
- we required people to have bought tickets on Eventbrite before coming
- cleaning
- the space mostly took care of this, but I hired a TaskRabbit for the final cleanup
- power outlets
- the space provided plenty
- WiFi
- the space had adequate WiFi
- tables
- we actually had to rent these
- find out about kick-out time
- we were good for the full 24 hours
- sleeping rules
- we told people who asked to book a room if they wanted sleep, but napping was fine
- in practice, there were a couple couches and dark, quiet corners that people slept in
- I took a few short naps overnight
- white boards or flip charts
- the space had these
- food storage, refrigerators
- there was enough space to store all the non-perishables
- we used a cooler and bought ice to chill drinks
- coffee maker
- the space had one, and one of our organizers brought one
- we also purchased coffee from Starbucks on Saturday morning
- there were tons of energy drinks
Schedule
You’ll need to have a schedule, and I wanted to give something tentative when I posted the event. There were some minor tweaks over the course of planning, like giving more time for presentations, but it’s fairly close to the original. If you don’t have a schedule, you’ll have no idea how you’re doing, and whether or not you’ll actually be able to finish the event on time. If you’re doing 24 hours straight like we were, finishing on time is fairly important, because everybody will be very tired at the end of it.
6/20
- 7:00pm
- Meet & Greet
- Start forming teams
- 7:30pm
- Announcements
- Brief talks
- 8:30pm
- Finalize Teams
- 9:00pm
- Start Hacking!
6/21
- 3:30pm
- Demo work to judges
- 5:30pm
- Judges deliberate
- 6:00pm
- Winner announced!
- Get packed up
- 7:00pm
- Event is over
We somehow managed to stick to this schedule. The only real issue was that we didn’t give enough time for team formation. There were several teams with three or four participants, and several people who wanted to join teams. We should have carved out time for the entire group to do pitches, and had a more organized team formation effort.
As for how we stayed on schedule, Allen helped quite a bit with that. It was mostly just a matter of announcing a warning, then announcing what was going on, and making sure that everyone followed up on that. When we needed to convert the theater from presentation to work mode, then back, we just asked people for help, and then the organizers started working. Once they saw us working, they all pitched in, and it took us about 10-15 minutes to flip the room inside out.
One oversight was that we should have made more time for team formation. We should have also made it a little more explicit, giving partial teams a chance to do pitches that everyone hears, and let people know how many they can take on. This would have helped a bunch of people, and we just didn’t think this through ahead of time.
Helpers
We probably had about 15 people helping out with various aspects of the event. Your needs may vary, but you will need people there. We broke up the 24 hours into shifts and had several helpers there during each shift. Don’t put yourself in the position of being the only one there, you need help!
Food
The food came nearly entirely from Costco. We used Google Shopping Express to deliver all of the food that wasn’t prepared/fresh, and then one of our organizers went on food runs to pick up the rest. Here’s a link to a detailed food budget and inventory.
One decision that we made was not to provide alcohol. This was primarily pragmatic, as we were holding a 24 hour hackathon, and alcohol tends to make people sleepy, or at least me. I also wanted to provide food for dinner on Friday that would energize people, as opposed to making them full and sleepy, but I wasn’t in charge of Friday’s dinner.
We had a cooler available, and filled it with ice, soda, and energy drinks. There was space for us to stack the boxes of stuff that we had delivered from Costco. We also had an organizer do a Costco run on Friday night, to get food for breakfast on Saturday, since Costco doesn’t open until 10am. There were some perishables that had to be taken to someone’s home overnight, since we didn’t really have access to a refrigerator. The bagels and muffins were mostly fine, though some people started getting into them overnight.
On the question of caffeine, we had two 12 cup coffee brewers. I think that we really only needed one of those. I had forgotten to bring filters, but luckily one of the brewers had a reusable nylon filter. The thing is though, when it’s hot out, and you have lots of energy drinks available, people are probbaly going to go more for the Red Bulls than coffee. What’s more, we bought several boxes of brewed Starbucks coffee for Saturday morning, and those did get used up. In the morning, people are going to want coffee, and it’s good to have a bunch ready to drink.
SWAG
It was important for us to be able to give something to every attendee, especially since we were charging a fair amount for tickets. We went back and forth on this, and came up with a couple of ideas, water bottles and t-shirts. We were initially split on the decision, so I posted a SurveyMonkey poll, and landed on t-shirts. The Glass team also provided some cool swag, small Google Glass branded notebooks and stickers.
For the t-shirts, I put in an order for nearly 150 shirts of various sizes. Some on the very small end, and some on the very large end, with the bulk of them evenly distributed between small and extra large. Here’s our order details:
- Type: Gildan Ultra Cotton T-shirt - Cherry Red, single color graphic on front
- Quantities (Y is youth):
- YM: 2
- YL: 2
- YXL: 10
- S: 30
- M: 30
- L: 30
- XL: 30
- XXL: 10
- Total quantity: 144
- Cost: $936.00
Prizes
Nearly all of the prizes came from sponsors. I was able to use about $500 from ticket sales for prize money, but everything else was from sponsors. The following is a break-down of all of the prizes.
First
- $6,500 value
- $1000 cash
- up to 5 HTC One (M7) phones (one per team member)
- Metaio SDK ($3500 value)
Second
- $3,675 value
- $1000 cash
- 2 tickets to Wearable Technologies Conference ($890 value each)
- 1 ticket to GGDevCon ($895 value)
Third
- $500 cash
Entangled’s Pick
- $500 cash
Sponsors
Entangled Ventures was the first to step up, and basically underwrite the event. They secured a great venue, as well as contributing prize money. We wouldn’t have had much of an event without Entangled. Thank you, Entangled!
The Google Glass team paid for the food for the event. Having the food covered was a huge help, as it freed up ticket sales to go to other things like swag and prizes. It also gave me some assurance that no matter what the ticket sales ended up being, we would be able to feed people. Additionally, they provided some really cool Glass swag, that everybody loved! Thank you, Google!
Metaio also pitched in for food, taking care of dinner on Friday night and enough energy drinks to plow through the entire 24 hour event. They also offered an SDK as a prize, and gave out an SDK to a participant during the event. Thank you, Metaio!
HTC offered HTC One phones to each of the members of the winning team. In addition to prizes, Dario was on-site to help out during the event. Thank you, HTC!
Wearable Technologies Conference contributed prizes, in the form of two tickets to their conference, as well as a cash prize. Thank you, Wearable Technologies Conference!
GGDevCon offered a ticket to their conference as a prize. Thank you, GGDevCon!
NotionKit gave all of our participants access to their beta tools for prototyping and previewing Glassware. Thank you, NotionKit!
Budget
This is our complete budget, broken down by sponsor, as well as totals.
Tickets
- funnel (where did buyers come from)
- graph of sales
- promotions & effectiveness
- free codes
- discount codes
- both used to help see where sales were coming from
- what should we have done?
- price-points
- what this paid for
- what we thought this would pay for
Let’s look at some Eventbrite data.
Total Ticket Sales
This is a graph of the total ticket sales from when we first posted to when we stopped selling tickets. The last couple of days are a little skewed because I introduced a free ‘Spectator’ type.
Ticket Sales by Type
This chart shows the gross amounts that each ticket type brought in.
This is a more detailed look, showing how many of each type were sold, and what was not sold.
Here’s what was leftover, after sales ended.
Promotional Efforts
This shows a breakdown of the traffic that came through Eventbrite’s channels. You can see that it only accounts for roughly 10% of sales.
Here, we see the discount codes that I generated. These were typically generated such that each group that I shared with got their own code.
Finally, here are the access codes, that are used to unlock hidden ticket types. Some of these were for participants, some for helpers and organizers. Again, I generated individual access codes for various promotional efforts.
Logistics
The logistics of the food worked out fairly well, though timing was a little tricky, given the heavy traffic in San Francisco. Make sure that you take into account all of the time that it’s going to take to drive over there and back, and do whatever needs to be done at the place to pay. Plan on sending someone over with enough time to return when you want the food or supplies there.
As for supplies, make sure to have markers, pens, pencils, paper, whiteboards and whatever else you think will be useful to participants. You’ll probably want to have name-tags, and those are very easy to print straight from Eventbrite. We didn’t have paper or whiteboards, and that was a bit of an issue.
Check-in can be done with the Eventbrite check-in app, but you will need a few people to pull this off. People will also trickle in over a few hours, and if you want to make sure to check everyone in, you will need someone at the door that entire time. We had two people, and it mostly worked out. Also, badges help this a lot. Pro-tip: there’s an Avery badge that comes with sleeves and lanyards.
I hired a TaskRabbit person to come and help clean up after the event. This was totally worth the hundred dollars.
Hangers-on
There were a couple of people asking for free tickets, a couple people showing up at the event without tickets, a spectator telling participants he was a judge, and a potential sponsors who we didn’t hear from after not allowing them an email list. There will be people who try to take advantage.
The thing that I tried to keep in mind was that I should be fair. I should be fair to the participants, and I should be fair to the sponsors. I was not going to let people in at the last minute, because the other participants were responsible enough to handle the tickets at the appropriate time. If I had found the guy pretending to be a judge, I would have thrown him out.
As far as the sponsor wanting an email list, it would not have been fair to the other sponsors, or to the participants to give that out. I didn’t want my people spammed forever because we thought we needed a couple bucks.
Tools
Here’s a list of the main tools that we used in planning and executing the event:
- Eventbrite
- Github/Bitbucket
- Google Docs
- Google Shopping Express
- ChallengePost
I would absolutely use most of these again. Eventbrite made the a lot of things really easy for us, and I would definitely use them again. Google Shopping Express was a huge help; I use that service a lot anyways. Google Docs made the organizing and judging much more sane, no surprise there. Github/Bitbucket were used by teams who added me to do a code-review at the end of the event.
The one issue that I had was with ChallengePost. They have been very good about getting in touch and taking feedback. Hopefully the issues that I experienced will be addressed. While I may use them again, here were the issues that I had with them:
- There were 5 teams who were unable to submit anything. I’d like to be able to get them into the submissions section.
- While creating the event, I didn’t realize that I needed ChallengePost support to push the event live. I had initially thought that I was good to go after a first pass, until one of my organizers told me that it was not live.
- While setting up the event, there were a bunch of required fields that I didn’t necessarily want to fill in immediately, like the judges, because it wasn’t clear what the outcome would be, or it was earlier than I wanted to announce that information. There also appeared to be repeated information blocks, or blocks that sounded more or less the same.
- When signing up for the event, people were having issues adding people to their team. There appeared to be a UI for that that flickered out of existence in about a half second. This confused a number of people. When people sign up for an event/challenge, they should be able to form a team at that time.
- The timing was really difficult to deal with on ChallengePost. I had to specify explicit times that were only at one hour intervals, where certain features were locked out based on the time. This was incredibly frustrating, and made the tool difficult to use for me, as the organizer, and difficult for the judges.
- The judges were confused because until the judging started, there was no clear path for them to associate themselves with my event as a judge. This confused everyone including me.
- There’s probably more that I don’t quite remember now.
I’m not trying to slam ChallengePost here, again they were very pro-active in terms of contacting me, and doing their best to make sure that we had a good experience. These are simply weak spots to watch out for.
Rules
Teams
- A team is limited to 1-5 members
- All teams must have a Team Lead
- Team Lead is the sole point of contact with organizers
- Glassware presentations are led team lead
- Any prizes won will be given to the team lead, to be distributed to the team
- No remote team members
- Limited outside consulting is ok, no code commits
Tools
- Teams will use BitBucket, GitHub, or similar version control tool for code collaboration
- Teams will register themselves on ChallengePost
Only the actual work done during the hackathon should be considered.
- Teams are to add John (or another organizer) to their project on GitHub/BitBucket
- Organizer does cursory code review during presentation
- Check for commits by non-members, commits before the start of the event, after pencils down
Judging criteria
- Completeness/polish
- Glassware UX
- Difficulty
- Does it solve a problem?
- How big is the problem?
- Is it a good solution?
- Would it make a good product?
Participants will be scored by a point system
- Judges will use ChallengePost for voting
- Teams will be tracked on ChallengePost
We had some other soft rules, like the people probably shouldn’t expect to sleep overnight. Our philosophy was that if people ask, tell them no, and then let them do what they want. You can’t control everything, and people are usually pretty good about respecting the boundaries. I’m not sure how well this method would scale.
Judges
You should get more judges than you think you’ll need, because one or two of them might bail. We had two of our original line-up not able to make it. We were able to replace one, and go without the other. I feel like we had representative judges, one with more educational background, two with education technology, and one with Glass specific expertise. Given that this was a Glass hackathon for building education solutions, I think it was a good balance.
Once again, I would like to thank all of our judges, for carving out the better part of their Saturday to come and watch presentations, deal with technical issues, and work out who the favorites were. Thank you, Kim Jacobson, Josh Salcman, Allen Firstenberg, and Kevin Adler!
Pitches
We gave each team 5 minutes to present, then an additional time for Q&A. The pitches that teams made at the end would have benefited from a bit of advice. Start with telling us what you did, and showing us a demo, then explain the problem afterwords. Five minutes is not a lot of time, so you need to get to the point quickly, and get the demo out of the way - if you do a live demo at all. Live demos are good, but they can, and do, go wrong. Oh, and if you have two team members, have one start talking, and the other setting up the demo - if it isn’t set up before coming on stage. Try to do an elevator pitch, and then use the rest of the time to build your case for why this matters. We had a lot of teams get to the end of the 5 minutes, just starting to set up their demo.
If you don’t finish your project, that’s no big deal, 24 hours is not a lot of time. However, don’t make excuses, and go on and on about why you didn’t finish. Instead, talk about what you were able to get done, and where you planned on going. Finishing isn’t the only metric for judging, but if all you focus on is how you didn’t finish, then it will cast a shadow on your entire presentation.
If you’re an organizer, a good idea might be to find an alarm clock that you set up on stage so that the presenters can see how much time they have. When you’re coming up with the length of time allowed for pitches, consider that each team is going to take a couple minutes setting up and tearing down, and that each team will have some Q&A time. It may not be smart to bound the Q&A, since the judges might have lots of questions for one team, and very few for another.
Lessons Learned
Honestly, everything went really well. Next time around I would probably start pushing on ticket sales earlier in the process. I would also try to make connections with press, and really try to get them there. Another big missed opportunity was that we didn’t organize anything about posting content during and after the event. Having a hashtag for people to use when posting pictures would have been really nice. Probably the biggest thing, that we lucked out on, was recording the pitches. John Scott was recording them all, and gave me what he had, but this should have been an explicit effort that we made. I should have asked for slide decks from everyone.
Conclusion
The above was a detailed account of my experience. Here are two other sources that might provide some good additional information: