Wouldn’t it be amazing if you could boost your connections, get job offers, promote your project and learn a lot in 2 or 3 days?
Look no further!
There is such a thing, and it’s called a Hackathon.
In the past 3 years I’ve attended several, taken prizes off most of them, and even helped with the organization of one. When you’ve made preparations and have the correct mindset, a Hackathon can be an amazing experience.
I am here to help you get the most out of each one you attend!
What exactly is a Hackathon?
“… an event in which computer programmers and others involved in software development, including graphic designers, interface designers and project managers, collaborate intensively on software projects.”
That’s the boring, wikipedia definition. In layman terms: A Hackathon is an event where developers work on a project, usually over a weekend, then they present their project to predetermined judges, where a winner is chosen. Most of the hackathons out there are for teams, this is not a solo game.
There isn’t a strict format and no strict rules.
The common scenario is 2-3 days, from Friday night until Sunday afternoon. Usually you aren’t allowed to do development work on your project before the hackathon.
There are prizes, although the financial gain isn’t what usually attracts people; rather the fun and competitive spirit is what brings them in. The organizers of the Hackathon take care of food and drinks during the weekend.
In most cases you are allowed to stay and work through the entire night. There is a theme which should be followed (e.g., Internet of things, video games, and so on) and it is strongly encouraged, though not mandatory to follow the theme.
The scenario above is my preferred setup. Everyone is in one place, you can work uninterrupted, and you don’t have to take care of the food and drinks.
There are several other formats worth discussing:
- Online Hackathons: you attend from the comfort of your own home, presentation is via a stream or video, and you buy your own pizza.
- Single-sponsor Hackathons are organized or paid for by one company. The difference here is that usually the theme of the hackathon is using a product already being developed or actively engaged by the company. Behind the scenes, this is usually a big interview for the participants, and the best teams get lucrative (job) offers. For these Hackathons, it’s normal to have a 2-3 person per team limitation. (Personally, I don’t like this type of hackathon, since I don’t feel that a possible employer deserves 30-40 hours of my free time, but then again the prizes are usually big.)
- Marathon Hackathons have an uncommonly long duration. It can be anywhere from a week, up to a month. If you are looking to fill a portfolio with good projects, these Hackathons are a great choice. If you work daily, that is plenty of time to get a project to a decent version, which can be showed off to future employers.
When I was reading up on some articles to see what other blogger nerds have to say about Hackathons, I met quite a few unhappy people. Their criticism ranged anywhere from:
“They promote an unhealthy lifestyle.”
“They are for people without a life.”
And my personal favorite:
“The best projects don’t win.”
Let’s dissect these one by one:
- “They promote an unhealthy lifestyle” – If you live healthy, you will find a way to eat healthy and get some exercise, regardless of where you are. You aren’t chained to a cubicle or something during this time. In fact, most hackathons offer cooked meals.
- “They are for people without life” – Because being around people sharing common interests with you, and making new friends, is for losers. Right?
- “The best projects don’t win” – This is sort of true. An amazing presentation and an innovative idea will usually win over a more technically advanced or complete project. Accept this, and make it an advantage, not a liability.
Hackathons can suck if you don’t go prepared or you go with a bad mindset.
So let’s see how we can prepare ourselves!
How do you get the most out of a hackathon ?
You must have clear goals for what you want to accomplish.
The first step is setting your expectations straight. Otherwise you risk losing your own time, which is horrible since most Hackathons take place during a weekend (aka the best time of the week, aka your free time).
There are three more common options. You can:
- Attend to compete – give it your best shot, show what you can currently do
- Attend to enhance your network of contacts – because there are rarely enough people for a project when you need them
- Attend to learn – hackathons offer a good environment for learning things fast, so might as well use it
No Team? No Problem.
Let’s assume you don’t have a team but you want to attend a hackathon.
As soon as you decide you are attending the event, start communicating with other attendees. Attendee lists are always public, so send an email to as many people as you can. Don’t get discouraged if a lot of the attendees don’t answer your email, since you only need one team.
Furthermore it’s people you don’t know, who don’t know you. They don’t owe you anything, even the courtesy to respond back to your email (given it isn’t filtered as spam).
Even if you haven’t found a team until the hackathon starts, you should still go. Most hackathons will let you join a team, or form a new team, in the first few hours of the hackathon.
Unless the rules explicitly say you can’t form teams at the hackathon, don’t rule this out.
So, you’re competitive and you want to win?
Alright, let’s see how we can increase your chances.
The biggest shock for a lot of people is that the presentation and what you showcase have bigger value than what you have actually coded.
The judges won’t care about your unit tests, automated build, or detailed configuration. You should still do all these things if you want to continue working on the project after the hackathon, or if you want to put it in your CV, but the judges won’t care too much.
In order to increase your chances to win, you should have something shiny to show and a good presenter.
I can’t help you with your presentation skills (that’s for another post), but I can tell you that pretending to give (or actually giving) a fuck seems to put you in the upper half.
What I can help with is what you will show. Something shiny means something which is usable, or at least appears to be. If you have deployed your software somewhere, or you give a tablet/laptop to the judges so they can test it out, you will get a lot of points.
Your goal should be exhibiting a demo. You can prepare by finding a nice presenter and thinking about interesting ways to show off your project.
In some hackathons, the judges or sponsors will come visit the teams and get to know the people and projects. If the hackathon you are attending is like that, you should try to always have something to show, even if it isn’t finished.
The easiest way is to keep the master branch of your project with something that can be showcased, regardless of how many hard coded values there are. If you are not sure if the judges or sponsors will be meeting with the teams during the event, just ask.
Your Secret Weapon — To Protect Against Other Secret Weapons
If you compete, one thing which is often forgotten is to prepare your development setup beforehand.
You can hire a decent VPS (virtual private server) for 10$ a month. I’ve personally failed once before because it literally took me and my team 15% of the entire hackathon to set up everything. Don’t make this mistake!
We did everything we could possibly do wrong: used one of our PC’s for development (which meant we had to create a user with which to connect over ssh), we had to install and configure our web server, db server install our programming language and it’s packages, and so on and so on. This all had to be done during during the hackathon, which is a pain in the ass and, as I’ve written above, lost us 15% of the time for development on this particular hackathon.
In order to save so much time simply:
- Get a VPS
- Set up the environment for dev
- Make sure everyone has the access they will need
- Test test test
Making friends and future business partners
Maybe you are a the talkative type and want to extend your network or meet possible mentors? You should consider going alone and working on some mini project during the weekend.
If the sponsors/mentors come, you could show them you are doing something, but spend some extra time talking to them. Usually if they are interested, they will make an offer, but it doesn’t hurt mentioning that “you are looking for new opportunities” as the headhunters on LinkedIn like to say.
Connecting with the other developers there is a bit more tricky, since most of them are there to work on a project, and aren’t up for chit chat. You should time when you go and talk to people. The best times is around food breaks and late in the night, when participants are already tired and relaxing into a more conversational mood.
Want to make this a learning experience?
You will learn a lot by competing, but if you want to maximize the amount of things you take in, you should do some research on what technologies the other teams will be using. Get familiar with some of those technologies and during the hackathon read the source of the 1-3 most interesting projects. If you have questions, just go and ask the developers (during the correct times!), they will be more than happy to help you out.
Additionally you can talk to the judges/mentors for general guidance, book recommendations, and so on. Most of them are really friendly and will also be glad to help.
Next Level: Organizing a Hackathon
Maybe you want to organize a Hackathon?
In short: you will need money.
While you can get sponsors, it is pretty hard to gather money for a first time Hackathon. Here is a list of your expenses:
- Place / Venue – Where the people will go? This is usually one of the more expensive things. If you are short on money, you should consider doing an online hackathon since you won’t have to pay much for this. When picking a venue remember: If it doesn’t have a good internet connection (Wi-fi) you will have provide it somehow. Unless you have excess routers you most likely want to keep this on the top of your list when looking for a good venue.
- Food – Another thing that you don’t have to pay for if it’s an online hackathon. Coffee and tea is mandatory in the real world. Usually you can get good offers if you negotiate in advance with some local restaurants. Also, since it’s 2016, do consider vegetarian/vegan/gluten-free (and whatever the next hip thing will be) options. Everyone will be happy with pizza, but I would try to get some cooked food. (In fact, my favorite local hackathon manages to put out cooked food every time, which is just amazing)
- Website / promotion – You will need a website, but you can get a one on WordPress for $5 and a domain for another $5. In terms of promotion, as long as you contact local schools and universities (depending on your target), you won’t have to pay a lot. Maybe a few Facebook ads or a few sponsored content posts from influential local technology related blogs/Facebook pages? In any case, advertisement for this sort of thing is generally cheap.
- Prizes – Since most people go for the glory/fun/learning they don’t have to be something grand, but keep in mind that a lucrative prize will attract more people
- Technical team and presentation equipment – You will need people to take care of any internet and other technical issues that might come up. Since there is a very small number of issues that can occur in a hackathon, you can usually get away with calling a favor from a friend or doing it yourself. Keep in mind that it is pretty annoying, especially if there are a large amount of people. To me it was so annoying that if I ever organize a Hackathon on my own again, I will pay some poor souls to deal with this.
- Swag – You MUST have stickers and shirts. Everyone loves them, and I can guarantee you will end up looking cheap if you don’t have them. Other optional things include notebooks, pens, mugs…the standard giveaway things.
If you want to view an example of a world famous hackathon you should have a look at NASA’s SpaceApps challenge. It is a yearly hackathon, and hundreds of locations around the globe host a spot,so chances are you can compete in the next one! Go and check it out.
How do you find hackathons?
There are several platforms, but most of them are glitchy, have outdated or sketchy hackathons or just host a plethora of the “2 day interview”hackathons which aren’t really to my liking.
What I do recommend is googling “Hackathons in <your city’s name>” or sending an email to the nearest university which teaches some form of CS.
That’s what worked for me and frankly I’ve found more hackathons I can attend.
Let’s sum up
- You must have a goal, something you want to achieve for the duration of the hackathon
- Once you have a goal you must do as much preparation as you can before the hackathon
- Do not lose focus and try out many things you didn’t plan on doing (you can still try some though!)
- Have fun and make this a positive experience for you and the people around you
Now that you have learned the ropes go, make some new friends and build something awesome!