This past weekend I volunteered at Seattle Give Camp(SGC) with #VetsWhoCode(VWC) where Eddie Prislac and I helped the Navy SEAL Foundation(NSF) with their application. I wanted to talk about the experience of my first fully virtual hackathon.
Eddie and I took NSF's Wordpress site and fixed one of their plugins (Classy) and got it so it could display data from their backend API. The idea for the plugin is to track fundraising campaigns for the non profit. The issue with Classy was that it really didn't display enough information that would add value to the app. So we put together a proposal they could take to their board for alternatives that would be more in line with what they wanted to do. Secondly we finalized testing their app for the Google Play Store and got it to the review stage for the Store, which was a fairly straight forward process.
What took the most time was submitting to the Apple Store. There were multiple credentials that needed to be setup, multiple Apple products needed to be owned and the errors provided by Apple to help troubleshoot the process was a nightmare. We eventually got it successfully submitted. The downside was Apple came back rather quickly and let us know that because the app didn't use Apple hardware APIs there was no reason for it to be distributed on their app store. Not a complete loss since the app was a PWA but definitely a bummer.
I've done a few hackathons in my time. I've found some of them can be real stinkers. For me here are some key indicators for a successful hackathon.
Just like at your regular dev job project requirements need to be clear. For example, sometimes you'll be working with a non-profit and their answer to all your questions are along the lines of:
Them: "I need an app" Me: "What kind of app?" Them: "An app with all the data." Me: "Okay, can I have access to data." Them:...
That last part there is a ghost. Also the opposite of this is scope creep hell.
Another bummer at hackathons is lack of expertise. Sometimes no one at the event has the expertise to help solve your technical problem. You end up spending an entire weekend trying to get your stupid Gatsby Webpack setup to build and end up building a SPA from scratch using plain JS (which helps no one).
Thirdly, I find that there's quite a bit of downtime during hackathons so being able to socialize is key. This is mostly due to working on rather small projects with a number of folks so we end up blocking each other on a number of things. So, being able to walk around and mingle with other teams for me is huge. It keeps me engaged in the event.
Lastly, it's important for the event to actually be administered well. I'm throwing a bunch of stuff into this bucket: ticketing, tech working, announcements not taking forever, sticking to the agenda, keeping folks engaged and accountable throughout the experience.
My synopsis of Seattle Give Camp, 10/10 great experience. They did a ton of leg work with the non-profits to clarify their asks and keep them goal oriented. There were a number of subject matter experts on Wordpress there, which is the tech that most Non-profits are running and need help with. It was nice not to feel blocked by alien tech working in a weird way. Furthermore, never having used Microsoft Teams myself I was hesitant to be excited about a weekend of teams. But honestly, it was such a smooth experience to have our own workspace for files, chats, and breakout rooms. There would have been a lot more confusing setup required to get that same functionality for the Google Suite. In the end you can tell it was run by pros and the quality really showed. I was impressed how all the teams were able to deliver great solutions over the course of the weekend. I'm really happy I went and would recommend it to others as a way to help non-profits with your tech skills.
I think in the end though I still prefer in person hackathons over virtual. It's nice to be able to hang out and have fun with folks. I think no matter what over the internet there is a level of disconnection. I'm in my house you're where you are. I don't know if virtual will ever solve for that. But in the times of Covid I think virtual does the job.