My thoughts on hackathons
- A note
- On with the post
- My stomach and head hurt; all the health problems!
- A dumpster fire of JavaScript, corporate APIs, AI, and stuff I don’t understand from Stack Overflow
- What are we trying to solve here?
- Not beginner-friendly if you don’t already know how to do everything
- So what am I doing now?
Update: Jan 2022
A note
I used to be involved with organizing hackathons and speaking at them. Unfortunately, I don’t vibe with hackathons anymore. When I was in my first year of university, everyone around me (computer science students) was buzzing about hackathons, so I thought I had to attend and like hackathons.
However, the environment and atmosphere of hackathons were soon unappealing to me. Move fast and break things. Sit for 8 hours and eat junk food. Kiss up to companies. Hack together a prototype. These mantras were all against who I was: I liked to sit and think and stare, eat vegetables and move around, do projects slowly and little by little, and I never cared about working for a company before attending a hackathon.
So why keep going to hackathons and organizing them if hackathons didn’t align with my work style, thought processes, and life goals?
I don’t know if I will continue to speak at hackathons because many hackathons don’t align with my values anymore, so it wouldn’t make sense for me to be active in hackathons, even as an external speaker. I may do 1:1 mentoring or coffee chats instead. If any of my workshop/panel topics interest you, please reach out by email, LinkedIn, or Twitter.
On with the post
I’ve attended a few hackathons, in-person and remote, and at first, a hackathon seemed like the perfect event. Free food, tech companies, and swag? What else could you ask for? Well, under all the free food and company shirts lies copy-pasted Stack Overflow code, dry eyes, and more. Attending hackathons now seems like a chore I need to check off as a computer science student. And frankly, I feel guilty for feeling this way. But after reading Design Justice[1], this blog post from Jacky[2], and various other posts such as this[3], this[4] and this[5] I’ve realized that everything I feel towards hackathons is valid. For some context, I started going to hackathons in 2019 in my first year of university, so my hackathon experience may not match yours. These are purely my own experiences and may not reflect the majority of hackathon experiences.
My stomach and head hurt; all the health problems!
When I attend a hackathon, I always plan for the next day to be a recovery day. From sore eyes to a constipated stomach, a throbbing headache, and back pain, that’s the type of day I can expect right after a hackathon. The impact hackathons have on my health is a major reason I stopped attending.
Something like the hackathon diet always messes up my digestion for anywhere from a day to a week. I’m easily constipated by a lack of vegetables and a high intake of junk food. For instance, a hackathon diet made of a glass of orange juice and bagel, a few slices of pizza, and Chinese takeout is low in protein, vitamins, and minerals and high in fat, sodium, and sugar. And this is without the energy drinks and snacks one may eat throughout a hackathon. For me, a day eating at a hackathon causes painful bloating and constipation the next day.
Hackathons rarely offer healthy alternatives, aside from some fruit at breakfast, and it makes eating difficult for me. Yes, I could bring my food but that involves packing 3 meals, carrying those meals around, and making sure those meals don’t go bad. And having healthy options is always a positive, as it’s proven eating unhealthy food makes you think and respond slowly - everyone wants maximum brainpower at a hackathon, right?
Additionally, the lack of sleep nearly every participant will experience can cause anything from a slower cognitive response to a throbbing headache. Then there’s the back pain from sitting all day and the dry eyes from staring at a screen. And leg pains from sitting cross-legged if you’re me. A hackathon forces your body in awkward positions for hours.
Unfortunately, this is what you can expect at 99% of hackathons.
A dumpster fire of JavaScript, corporate APIs, AI, and stuff I don’t understand from Stack Overflow
I have a burning hate for JavaScript (I’m sorry). JavaScript with a couple of APIs from Google (hopefully a blockchain deep learning API) and Stack Overflow posts gives you the typical hackathon project. This type of project is "built fast" and breaks even faster. I also believe that hackathons perpetuate the cycle of using JavaScript for everything and anything (which I do not agree with). One might argue JavaScript allows for an idea to quickly turn into a product, which is true and very attractive at a hackathon. But if you want that JavaScript product to last, you’re going to need a team and a lot of time just to maintain it. Now using another programming language like Reason might take longer to create a product, but the time needed to maintain and fix bugs in a project in Reason is almost none[6].
Messenger used to receive bugs reports daily; since the introduction of Reason, there have been a total of 10 bugs (that’s during the whole year, not per week)!
and
Refactoring speed went from days to hours to dozens of minutes.
In a world of exploding technological innovation, thinking about sustainability and maintainability is a must when building a product. And I believe using JavaScript is not the answer to creating sustainable or maintainable technology. This is my very personal opinion. Will I still work on projects with JavaScript, like at work? Unfortunately yes. But in my own time, I will be staying away from JavaScript as much as I can.
Additionally, I don’t learn much by hastily copying a piece of code from Stack Overflow or using an API endpoint that does everything for me. And to be frank, there is no way I will produce any remotely helpful or useful in 24 hours. Much less so a functional product. Can some people do it? Maybe, but the vast majority of hackers have no understanding or a basic and lacking understanding of the context of an issue. This leads to my next point below…
What are we trying to solve here?
It’s funny how a microbiology class fundamentally changed the way I went about thinking about solving problems. In MICB 202, I learned about cholera, an acute diarrhoeal infection caused by ingesting water or food contaminated with the bacterium Vibrio cholerae. How would one go about reducing the number of cases of cholera? Well, by cleaning up the water. But how? Using chemicals? Using energy to kill off bacteria? While these are solutions, there’s one thing we are forgetting about: the context of the problem[7], and those who are actually affected. The context is that the location (Bangladeshi villages) where cholera is still an issue is in places where water is used for everything, usually not being filtered or cleaned before the water is used. The water that people use to drink is also used for washing. So you can’t just dump chemicals into the rivers and hope for the best. Additionally, there’s a lack of resources. Who’s going to synthesize chemicals and where would you even purify the water? Even boiling water would be a strain on resources (it would be better to use firewood for heating or cooking). To someone that is unfamiliar with the context of the issue, it’s easy to slap a solution together and actually cause more harm than good.
So what was the solution the researchers came up with? The solution is quite simple and is a solution that can be easily adopted and pushed out into the public. It was to use a sari[8], a piece of cloth worn by Hindu women, but also now frequently worn by women of other religious groups. This solution is one I didn’t even think of when my professor presented the case study in class. Why? Well because I didn’t have a good or even basic understanding of the context of the problem, such as the cultural practices.
It is common practice in villages in Bangladesh to use cloth, frequently a flat, unfolded piece of an old sari, to filter home-prepared drinks. In laboratory experiments employing electron microscopy, we found that inexpensive sari cloth, folded four to eight times, provides a filter of ≈20-μm mesh size, small enough to remove all zooplankton, most phytoplankton, and all V. cholerae attached to plankton and particulates >20 μm. Laboratory studies showed that sari cloth folded at least four times retained the V. cholerae cells attached to plankton, effectively removing >99% (>2 logs) of V. cholerae (30).
Hackathons occur very frequently in privileged Western societies that are so isolated from the world. This means the context of a problem is ignored, and this results in most solutions being useless, or even worse, harmful. Hackers go away with the feeling that problems are easy to solve and that technology is a bandaid for all problems, which is simply not true. These tweets below also offer insight into my thoughts:
Want to help? Have technical skills? That's probably not a good idea. Here are some thoughts based on 10+ years seeing well-meaning technical folks getting involved in crises 🧵
— Alix Dunn (@alixtrot) February 28, 2022
In hard times, technology is intoxicating. It can feel like a shortcut to impact in a moment of impossible hardship.
— Alix Dunn (@alixtrot) February 28, 2022
It's not.
If you are getting high on your own supply, take a beat and think critically.
This is why I hate hackathons with a passion - they let volunteers do the fun part of the work and feel good about themselves, while sticking someone else with the burden of trying to implement and maintain something that's only half-done at best. (5/10)
— Andrew Therriault (@therriaultphd) February 27, 2022
I’ve seen horrible takes on hackathon projects trying to solve a problem. One was an "eating disorder diagnosis" and "treatment" project, which was a static website involving the user filling in a multiple choice quiz (to determine if they had an eating disorder) and then very generic tips for someone with an eating disorder.
First of all, anyone can have an eating disorder, and these types of quizzes can lead someone to believe they don’t have an eating disorder when they do.
Additionally, generic tips like "don’t look at calories" or "make sure you are eating a balanced meal" are phrases people with eating disorders can warp and bend into dangerous behaviour. If someone decides to stop looking at calories, they may just eat as little as possible because they live in fear of overeating and have no way to check if they are eating enough if they don’t look at calories. Part of my recovery was calorie counting to make sure I was eating enough.
As someone who has had an eating disorder, I understand the intention is to help. But some things (like recovering from or diagnosing an eating disorder) cannot be solved with a web app.
We have to stop slapping code on everything and realize sometimes (most times), problems would be better off without the intervention of websites and phone apps.
Not beginner-friendly if you don’t already know how to do everything
While hackathons are great places to be introduced to so many new concepts, are they the best place to learn and understand these new concepts? Hackathons celebrate this culture of "move fast and break things", and this implies that one must learn fast too. I don’t know about you, but I don’t learn fast, and especially not if I’ve been eating nothing but chocolate candy bars for the past 5 hours. Coupled with learning about something I’m not interested in, such as a company tool for a prize category, hackathons have made me lose the joy of learning about technology. It’s also demotivating to see a team of highly skilled individuals who come into an hackathon with every move planned out; not everyone has the time to plan for a hackathon weekend. And I am not as skilled as someone who’s been programming since high school. Always feeling "behind" others is partially why I felt like dropping out of computer science, which propelled my decision to pursue a minor in biochemistry[9].
I’m a slow learner, and I’m slowly (haha) coming to terms with that. I’m also rediscovering the privilege of learning about things you’re interested in for no goal but to learn about these things; I’m not trying to become the next Elon Musk. For instance, I’ve recently become interested in developer tooling like Semantic[10] and strongly typed programming languages like Haskell and ReScript. I’m learning them when I feel like it and as slow as I want to. I’m also a chemistry nerd at heart, so I’ve added a biochemistry minor to my degree for no purpose but to nerd out in biochemistry.
So what am I doing now?
I’m not attending hackathons until I see that hackathons can become places where you are only expected to learn and to tinker, and there’s no pressure to become the next startup or solve some worldwide (or local) problem. I’ve also stopped organizing hackathons. I’m also just learning topics that interest me, in my free time and at school.