As I was deciding what to write about next, I was thinking a lot about what makes a hackathon project great. I then dug a little deeper into how exactly someone could build a great project, and the role a hackathon places in shaping that. It made for something Iâm pretty happy with.
Hackathons are a very tough thing to define. In many instances, I sort of refrain from using the word in casual contexts. The one time I didnât, the person confidently agreed with me when they said âOh hacking? I hear cybersecurity is big in Ottawaâ. [1]
All jokes aside, it is quite hard to define. Saying it is a tech conference sells the event short, since - it excludes all the building. Even if you were to factor in all the workshops and speakers, you still wouldnât really call it a tech conference, since the common association to those isnât really âfunâ. You also wouldnât call it a student meetup, since that sells itself short in terms of the scale and the real world impact of many of the projects at the event.
The best way Iâve found to describe a hackathon is an event to inspire people to build. I leave out a lot here, I donât really say build cool things (as I will explain later on, your project doesnât really have to be cool). I also choose the word inspire, not help, since help makes it sound like in the absence of a hackathon, you would not be able to build something amazing. This is not the case. Hackathons are simply a vessel to inspire you to get to better understand your capabilities and aspirations as a builder.
But the word building getâs thrown a lot without really being explained. So what exactly are you supposed to build? Here is my best crack at it.
The first thing Iâd point out is that, for all intents and purposes, it doesnât really matter what you build. An unfortunate, but real, reality of hackathons - is that most people do not end up submitting a project. This is not the fault of the person. The time crunch of a hackathon, the no sleep, and the overall challenges that come with building something in that timeframe make coming up with a final product a tall ask. That is why, if you are able to submit something at the end of the 36 hours or so, thatâs the real win that weekend.
However, if youâre looking for some more clarity on what to create, I find great hackathon projects generally fall into one of two buckets. The first are projects that are extremely technically proficient. The second are projects that solve a real problem people have. Letâs start by noticing the obvious, which is that if youâre able to create something that is in both these buckets you are almost guaranteed some type of recognition. This doesnât translate well to the real world. When you are selling a product, it oftentimes does not matter how technically great it is. [2]
Many people find themselves in the first camp. Iâm not quite sure why this is, but I have a couple of possible explanations. The first is that CS/SWE education places a unknowingly terrible pressure on the technicalities of software. This is important to a certain extent, but relevant to a hackathon - many people find themselves so caught up in what technologies, frameworks, packages to use that by the time the stack is created, you have less time to actually build anything. The second, is that there is this idea that the judges are likely to be more impressed if your project is really technically impressive. Itâs hard to say whether this is true in a general sense. One thing that cannot be ignored, though, is that no matter how experienced the judges are, they are still human. Everyone likes seeing a well designed app, something that really brings out joy, something that has a nice demo to it. In other words: great technical chops canât excuse a bad product, a great product can (sometimes) excuse bad technical chops.
So does this mean you shouldnât try to make your project technically great? Of course not. There is obviously a place for choosing the right tools for the job. But only to the extent that you can explain your choices. Thatâs what is really important. If you can say with succinct clarity why you chose to do something the way you did, that tends to be good enough most of the time. Judges like to see the link between what you wanted to accomplish, and how you decided what to use to do that.
Less people find themselves in the second camp, projects that solve a real problem people have. This is a very hard thing to do. For starters, itâs hard to really think about problems that people have. Itâs better if the problem you are solving is a problem that you yourself have, since that abstracts the thinking part away quite a bit (you are your own user). Thinking about a problem that other people might have is hard if you donât talk to a lot of people about their problems (and in this context, you donât really have all the time in the world). Also, itâs not exactly easy to think of a problem to solve with the clock ticking behind you. Thatâs why some people come into hackathons with a project idea in mind, and tailor it to fit a company track or challenge.
Itâs important to remember that in most instances the problem you are solving is more important than your solution to it. If you can find a problem that doesnât have a solution to it - then no matter how lame your solution is, someone is likely to see value in it since itâs better than nothing. As well, if you find a problem where the existing solution is not so great, any marginal improvement is likely to incite a reaction positive enough you would get some great results out of it. The marginal improvement doesnât really have to be all that impressive either. I recently saw a great product on Twitter which is effectively a WYSIWYG markdown editor packaged in a nice UI with live-sharing features. Not really a technical leap by any means, but the UX was just so great, along solving an actual problem people had - that it got a ton of recognition.
It also doesnât really matter how âcoolâ sounding your problem is. Cool, on trend, problems are great to solve since the relevance to the person you are pitching to is probably pretty high. But itâs also equally as likely that since the problem is trendy, this is not the first solution to it they have seen. This takes us back to square one in the sense you are now basically depending entirely on your product being a better solution as opposed to solving a better problem. Boring problems are great. Many hackathon projects implement AI into domains that havenât really been all that explored yet. Something that Iâve seen more recently is the use of voice agents in various domains, even if said domains are not the most glamorous.
The final advice I can give is really work on having a great demo. Whether this is a video or a live one, itâs incredibly important. Extra points if there is a working product that the judges can play around with. People like seeing and interacting with things. Slide-decks are great, but relying on them to tell the whole story of your project may not work in your favor.
As you can imagine, a lot goes into trying to cultivate good projects. A significant amount of the onus is on the hacker to create something that is interesting. But as organizers, we play a big role in creating an environment that is conducive to the sort of âbuilder mindsetâ that inspires these great inventions.
One of the ways we do this at uOttaHack through community events. We run tons of fun events including karaoke, Mario-Kart competitions, Spicy-Noodle challenges - just to get people to have fun. You want to be in a mindset of enjoyment in order to build something interesting. Itâs also a great way to get people to meet each other, which contributes more to finding great ideas. If nothing else, you walk away from the hackathon having met new people with new bonds, which is a far greater value than any project could provide.
The second way we do this is an overall mindset shift. A big focus at uOttaHack is placed on the hacker. So much of what we do is to get hackers, the first time ones, the best possible experience learning more about their aspirations and interests in technology. If we can do this through creating an environment free of pressure and expectations, and replace with it fun and engaging events that make them want to come back and learn more - thatâs a great success.
Notes
[1] This happens to be true, but that's besides the point.
[2] Insofar as the technical drawbacks of your product are not revealed to your user. It would obviously be unrealistic to excuse a 5 minute loading time for a website for the sake of "technical chops" not mattering. Most of the time though, products get sold to non-technical audiences and so you may not be interacting with someone who understands it deeply. It is even more important then to be able to separate the solution from the things you did to craft it.