Hackathons are difficult and by reading this you can learn what a hackathon is, how they work, and what you can expect to find when hacking at one.
This guide is set up in a question and answer format, and is designed to give an answer to most questions you will have about hackathons. We currently have answers to the following questions, and are interested in adding more.
- Do I need a team?
- What if I want to fly solo?
- What makes a good team?
- How do I find additional members?
- Can't I just drive myself?
- I'm broke, how can I possibly go?
The day of
- What is the typical schedule?
- Who are companies that sponsor hackathons?
- What is swag / what is given out?
- Where should I put my code?
- What should I watch out for?
- Someone committed passwords! How can I remove them?
What is a hackathon?
"The word "hackathon" is a portmanteau of the words "hack" and "marathon", where "hack" is used in the sense of playful, exploratory programming, not its alternate meaning as a reference to computer crime." A hackathon is a time and a place for you to make something. Doesn’t matter if it’s a web app, a mobile app, a desktop app, or something in between.
Where can I find hackathons?
There are many hackathons running every weekend, but unfortunately they are not all in one place. For students in universities in the United States, Major League Hacking (MLH) provides information on hackathons based on where they fall within university semesters. In order to attend a MLH-sponsered hackathon, you must be a student who is either attending a university, or sometimes a student in a secondary school such as a high school.
For those looking for hackathons outside of the United States, or hackathons that are not directly associated with universities, Hacker League also sponsors hackathons hosted in both the United States and internationally. Hacker Leauge also provides information on hackathons hosted during the summer and hackathons not directly associated with a university, but instead associated with an external company or cause.
What should I expect?
If you are going to your first hackathon it may be unclear what you should expect when you get there. Most hackathons are 12 to 48 hours in durration and they typically follow a similar schedule.
- The opening ceremony will introduce event sponsors and speakers. It may be usefull to mentally note any sponsors that are providing interesting resources to hackers.
- Talking with sponsors After the opening ceremony, everyone exits to go meet the sponsors at their booths. This is the time that you will want to spend acquireing swag, and talking with mentors from sponsors booths to find out more about what they are providing.
- Team building will be possible if you need additional members to add to your team or if you need a team to join. You can usually find an event coordinator after the opening ceremoney to ask about this.
- Find your hackerspace, you will need to find a place for your team to work. The host should indicate what areas are available for people to use. They will provide tables to work at and there should be some form of internet connection available. Since wireless networks can get overloaded at these events you may want to strategically choose a table near a ethernet port or hub.
- Planning / coding, planning your project is critical. Make sure everyone is on the same page and knows what there part is.
- Not sleeping Most people end up sleeping for at least a few minutes. Your hackathon host may provide areas where sleeping is permitted. Otherwise you may just want to hide put your head down on a folded up hoodie.
- Judging After the coding session, judges will come around to evaluate each team's project. It will be important that you convey how you used technlogy provided by sponsors and explain why your creation is a useful hack.
- The closing ceremony is where awards will be distributed.
- Going home It is not a good idea to drive after not sleeping all night. Make sure that you have a plan for someone to pick you up.
And don't forget: tons of food will be served by the host throught the hackathon. You should not need to worry about bringing anything to eat.
Hackathons are great group experiences, but they don't always start off that way. Whether you are attending a hackathon on your own, or with a group of others, there are a few things to consider.
Do I need a team?
Not always! Many hackathons allow for a team of one, and some people find that they work better alone on their own projects. It is still recommended to be near other teams, even if it just means sitting at a table close to some friends (or new hackers that you meet), as it's always useful to have someone to bounce ideas or fixes off of, and to socialize with.
Teams are great for larger projects or when you are working with technologies that you've never tried before. They are also useful if you are attending a hackathon for the first time, so you can get an idea of what to do (if your team members aren't also new) or try things out as a group (if nobody has been before).
What if I want to fly solo?
It's common when you are dedicated to a project to want to work alone. This is perfectly fine, but it is recommended to sit near an active group or be around others who are also flying solo.
What makes a good team?
There are a few things to consider when forming teams
- Balance skills across the team - Having a team full of people who all have the same skills can create gaps, especially when you run into roadblocks. Try to create a team with people who share different skills.
- Find people who are interested - If you have an idea for a hack to create, pitch it to your team members. Working on a project which doesn't interest you can get boring, so make sure everyone enjoys what they are working on.
- Find people you can work with - Have you ever worked on a project with someone you didn't want to be with? It's not enjoyable.
- Break out of your comfort zone - While it's fun to always hack with your friends, try to hack with someone who you have never hacked with before. You might be surprised about how it turns out.
How do I find additional team members?
Most hackathons will have team building events either ahead of time or right after the opening ceremony. These events are a great way to find team members who complement your skill sets, and who are interested in working together to make a great hack.
If the hackathon is hosted on DevPost, there is an option when you register to tell everyone that you are looking for team members. Look through the participant list and see if there is anyone who looks like they might be interested in what you are working on.
The day before
The day before the hackathon, you should make sure that you have done the following.
- Create an account on DevPost
- Print a few copies of your resume
- Pack your bag
In preparation for a hackathon, you should attendees create an account on DevPost. DevPost is where MLH tells hackathons to handle submissions and many hosts will handle their judging through this website.
What should I pack?
- A laptop that you can hack on (many hackathons provide extra laptops in the hardware you can borrow).
- Power cables and adapters for your laptop and any devices you may be bringing.
- An ethernet cable - Wireless access points may become unavailable due the the number of people connecting to them. Be sure to bring an ethernet cable to connect to the internet with.
- A large backpack that can store all of the devices you are bringing as well as any swag that you accumulate throughout the hackathon.
- Hygiene items (toothbrush, toothpaste, deodorant, etc.)
- Comfortable clothing, you never know what it is going to be like in the hacking spaces.
- A pocket folder with about 10 to 20 copies of your resume.
- A flash drive to share files in case sharing them wirelessly isn't an option.
- Head phones or earbuds, the hacking arena can get rather noisey. If your project ends up using sound in any way it may be a challenge to hear it on your laptop's speakers. These may also be usefull if you just decide you want to listen to mucic.
Many of the sponsors who go to hackathons are actively recruiting new employees or interns. A hackathon can be a great way to get an internship with a company or get a job and start your career.
Creating the hack
When you're at the hackathon, you will get the chance to meet with sponsors and learn about what APIs, development tools, and hardware kits they are providing.
Where should I put my code?
This document lives on GitHub, which is a web-based Git hosting service. There are many other code sharing services out there, like Bitbucket from Atlassian and CodePlex from Microsoft. For a hackathon, your team should decide if the project you create will be open source or private. Most Git hosting services are free for open source projects, but GitHub requires a paid plan for private projects and CodePlex does not allow them. Bitbucket allows you to create private projects for free, which allows enough people for a standard hackathon team.
GitHub also provides a student developer pack that provides students with free private repositories. The student developer pack also includes a list of other services that are available to students, many of which can be useful during hackathons.
What should I watch out for?
If it is your first time at a hackathon, and even if you have been to many hackathons before, it is useful to know what to watch out for when creating your hack. We encourage those who have been at hackathons to improve this section (or the entire guide) with quick tips for those starting out.
- Keep it small - The larger the hack, the longer it is going to take. You're not there to make a startup, you're there to make a hack.
- Make it look good - You're going to be presenting your hack to others, polish it up and make it visually appealing.
- Look at the sponsors - Many sponsors will provide hardware or APIs that you can use, and some even provide the prizes.
- Have a plan - Don't go into a hackathon blind, have an idea of what you are interested in creating.
Removing sensitive information
You've been creating your hack that uses an impressive third-party API, and you notice that your API keys are sitting out in the open in your public repository. Accidents happen, but make sure to remove the keys as soon as possible and more importantly: generate new ones.
You should never commit keys, passwords, or any other private data to your repository. Even if it is private, you should still avoid doing it as removal requires rewriting history and still leaves you in a tough spot.
The first thing you should do when you discover that sensitive information has been committed to your repository is invalidate the key or change the password. This will ensure that even if someone was able to record the sensitive information, they will not be able to use it.
Once you have generated new keys and changed your passwords, you should remove the information from the past commits. Git allows you to rewrite history, along with most other source control systems, and GitHub provides an excellent guide on removing sensitive information from your repositories. If the change was recently committed or the repository does not have many commits, which is typical for a hackathon, you can quickly remove the information by amending the commit after deleting it.
In order to prevent committing sensitive information, it is best if you put the
sensitive information in a configuration file that is excluded from version
control by a
.gitignore file. You can distribute the excluded files to your
teammates outside of the repository, and this will prevent anyone from
committing the information.