The World of Hackathons

It’s been around 8 months since I joined my second and favorite (so far) hackathon where I got to build a really cool product that I was excited about. It’s also been around 9 months since I joined my first hackathon where I had no idea what I was doing, and ended up being mildly disappointed at the very product that I had built.

If you’ve never been to one yet, you might be wondering what exactly is a hackathon? I’m not gonna get into the technicalities or formal definitions, but I will talk about my experiences and hopefully show you what it’s like to hack.


It’s not really hacking

Well, not in the traditional pop-culture depiction of hacking, anyway. Hollywood is obsessed with this image of a programmer furiously typing on their keyboard, while a barrage of texts and windows fill the screen. After 5 seconds of suspenseful music, programmer yells triumphantly, “I’m in!”

Nope. The closest scenes like these emulate are black and white hat hacking, which do test for security vulnerabilities in computer systems, but the image of how it’s done is not at all accurate. Moreover, security hacking is only a small subset of the vast world of hackers.

Instead, hackers are just people who code to build solutions to problems. This can be something as small as something you run into regularly, such as registering for classes, or even something as grand as building an Uber, but maybe for boats. The point is, projects can span just about anything you can code a solution for. In fact, that isn’t even completely accurate, as I’ve seen hackers who work more with hardware than software and come up with cool results.


My experience at hackathons

My first hackathon was at HackRice, and I had absolutely no idea what people are supposed to do. I just knew coding was going to be involved, so I signed up to try it out.

I’m not a beginner at coding. I’ve taken online coding classes for Java and C++, and I’ve competed in informatics olympiads that made heavy use of algorithms and data structures. But in the world of hackathons, I was a complete newbie.

The thing that makes hackathons different from these academic pursuits is that you’re fundamentally building a product. This means that it’s not just an algorithm you have to implement to solve a challenge, or just a B+Tree you can code up, but rather, an end-to-end product that people can interact with. Because I didn’t know hot to do any of this back then, I joined a random group, which consisted of one novice programmer from another school, as well as another Rice student who was also relatively new to the hacking scene.

The project we ultimately settled on was rebuilding the Texas DPS Website into something more aesthetic. It was pretty, and we worked hard on it. But I realized that what we did was not really reflective of the innovative projects that people work on in hackathons. Instead, we were just mindlessly translating components of the old website into better looking ones, which I felt sort of misses the spirit of the hackathon to allow you to do something exciting and cool.

Now I’m gonna be very clear here: even though I was kinda sad that our website was just a static one, I had never dabbled that deeply into HTML and CSS before, which really means I didn’t miss the whole point of hackathons: I still got to learn and try something new, which I really appreciated.

Of course, working on a cool project and learning something new is not the only point of hackathons. Some people go to these events exclusively to meet other hackers and network, some go there to meet with potential employers, some go to gain interpersonal skills and experience working on a technical project with a team, and some just go because it’s fun to be surrounded by people who are all working on their projects!

My main takeaways:

  1. Learn how to use git. Version control is very useful, but the best part about using git in hackathons is that it allows you to work on a shared project with other people.
  2. Get a good text editor, like VS Code, and learn to use it well. If you’re gonna be coding a lot, might as well learn how to do it in the way most convenient for you.
  3. Be bold with your ideas! Google wasn’t built because they wanted to index a small part of the internet. They wanted to index the whole internet.
  4. Sleep is important. Some people will stay awake the whole 24-36 hours the hackathon runs for, but it’s important to do what works best for you.
  5. Technical skills: HTML, CSS.

After surveying other projects at HackRice and getting a better feel for what sort of projects fly at hackathons, I decided to join a second one. But I didn’t know which one yet.

Pro tip: MLH, which sponsors a lot of hackathons, has a good and comprehensive list of these events.

Since I was based in Texas, I looked for hackathons in the area. On a whim, I applied to HackTX even though it was 3 hours away by bus, and even though I didn’t know anyone else who would be going there nor where I’d stay.

Luckily, the hackathon had a Slack channel where I was able to find teammates, and one of them was a Rice student who agreed to drive me there.


My second hackathon

This time, we worked on an awesome project I was excited about. There were 5 of us in the group, representing 4 universities in Texas. I’d have to say that this was indeed an ideal team, for a few reasons:

First, one of the team members already had a great idea before the hacking even began: use facial gestures to adjust reading on screen. We were gonna build a web app for this, and we discussed tech stacks before starting to hack. It was a clear enough idea, which made developing easier because we had a clear vision on our end product. Second, that same team member was very good at leading (i.e. being a product manager), so much that he kept the team motivated throughout the 36 hours of hacking and also helped us reach a consensus when we were unsure on how to proceed. This was complemented by the rest of my teammates, who were experienced and were clearly capable of devlivering a product.

Perhaps the best part of working with this team was that they were very supportive. Even though I had basically no experience in the tech stack we were using (React and Node), in the end, I was able to add critical components to the project, such as a feature to automatically summarize texts, and was also able to pick up React and Javascript along the way!

My main takeaways for this hackathon were:

  1. Have a good idea to begin with if you want to win prizes. At its core, the best hackathons look for the most innovative and most compelling ideas.
  2. Learn how to use git (again). You’ll never get enough of it, and merge conflicts are pesky.
  3. Learn how to use APIs. They basically allow you to build great products without having to rebuild all the small components that have already been built by other people or other companies. A lot of the projects I’ve seen uses APIs, but some don’t due to the nature of what they’re building. Here’s a good list you can try out. (Bonus points if you use an API by a company sponsor of the hackathon. They usually give prizes to the best ones.)
  4. Learn how to present! Our PM was really good at this, and he did so by presenting it as a story. Having been to a few hackathons now and being the chair of judging for one of them, I can say that while we strongly encourage judges to judge by the quality of the idea and the technical difficulty of the product, judges are still human and can’t avoid bias. Deciding between two good ideas may come down to which was presented better.
  5. Get feedback. During the hackathon, we walked around a lot to show other people our product and get feedback, especially since we needed to calibrate the detection of facial gestures. This allowed us to interact with other groups and see the cool stuff they were working on, but also receive feedback on how our product looked and worked with other people.
  6. Be nice and have fun! I have been fortunate enough to have only positive interactions with the people around me at hackathons, and being more experienced now, also help beginners work thorugh problems. But I also know how incredibly disheartening it is to be a beginner in the tech scene and be surrounded by unsupportive people.
  7. Technical skills: React, Javascript, using and understanding APis.

We actually ended up winning this first place on this hackathon!

me and my teammates after a combined 8 hours of sleep in the last 36 hours

me and my teammates after a combined 8 hours of sleep in the last 36 hours

This was also how I landed my first internship! I met the CEO of Pilosa, who judged our project and was impressed enough that he gave us his calling card. I followed up with him through email and applied, which eventaully led to my joining of their team.


Conclusion

Hackathons can be fun and exciting, and I found that I am able to learn and build up skills here that I otherwise wouldn’t by just taking classes.

Main takeaway: go and have fun! See where hackathons lead you and take everything as a learning experience.