Monday, May 23, 2016

My First Hackathon

I went to my first hackathon, The San Diego SmartCity Hackathon, this weekend and it was absolutely incredible. 

If you're interested in the actual project I did, click here and the code for it is here.
This post is more about the actual experience of attending, which I found to be really meaningful.

Here are the takeaways:
  • GO TO A HACKATHON. This entire post will be mostly be a demonstration of why you have got to go to one of these things no matter how technically incompetent you think you are.
  • I thought I would be intimidated but the environment was extremely supportive and inclusive
  • Wizards are real and they are at hackathons.
  • I joined a team, made some friends, and contributed to a project that I'm really proud of.
  • We didn't win but it was still super worth it.

I almost didn't go to my first hackathon this weekend.

On Friday afternoon I remembered that I had registered to go to some "hackaton" thing on campus that evening. The keynote speaker was someone I had heard about and I was hoping there would be free snacks and coffee. I was tired from the week and wanted to just go party but I thought I might as well check it out because I had a ticket. 

If you aren't familiar with the term, a "hackathon" is an event where nerds amass to spend a weekend building tech projects together. I had heard legendary stories of people who conceived of an idea at a hackathon in San Francisco, worked on it all weekend, and got hired to work on it full time before Monday. I didn't think this kind of thing was real.

I had no intention to participate. I just wanted to consume the coffee, snacks, and free entertainment that I was entitled to. I get to the room where this guy is going to speak and there was free beer and tons of hor d'oeuvres. Nice beer and legit hor d'oeuvres too. Nice. I stood in the corner, stuffed my face, and just kind of observed. The room was full of about 100 people, 90 dudes, 125 computers (some desktop boxes that people must have lugged from home), 10 cameras, 20 pieces of technology that I couldn't quite identify, and one big virtual reality setup taking up a corner. I started chatting with some dude as we were all ushered to the auditorium. 

This dude, Rushil, had been to a couple of these things and programs mobile apps for fun. As we walk to the auditorium, some older guy in a suit overhears our conversation about data visualization and starts telling us about his tech company. After a few minutes, he gave us his card and offered us summer internships on the spot. Woah.

Joining the hackathon

The featured speakers talk for a little bit and it's pretty cool. Then the director of the hackathon invites any teams who want to pick up additional members to present their projects. A couple people get up and talk about what they plan to work on. 

The theme of the hackathon is to help San Diego come up with ideas for how to deliver on it's Climate Action Plan. It turns out that California has a shit load of environmental problems, believe it or not. The city just released a ton of infrastructure data to the public and was interested in whether these kinds of data could somehow be used to ameliorate some of the city's environmental problems. It also turns out that people who are highly technically competent like to solve these kinds of problems just for fun on a weekend, basically for free.

The project presentations begin. They range from, "We're pretty much an early stage startup trying to build a website to gamify environmentalism and looking for anyone who wants to join", to "Wildfires are a problem. Maybe we can use drones or sensors or something?"

Rushil and I start to talk about what is good and bad about certain ideas. He's all fired up to join a team and win this thing. I'm embarrassingly buzzed from my Stone IPA and entertaining the idea of hovering around a team and checking out what this is all about.

After the presentations, we introduce ourselves to the leaders of the groups we're interested in joining. We talk to the drones/something/wildfires guy, whose name is Victor and start talking about how we could work on this. Then we start bouncing other ideas off of each other. We come up with some pretty cool projects but realize we have to think about what kinds of projects we could do with our specific skills.

These are our skills:

* Has completely programmed dozens of mobile apps
* Well-versed in business, economics, and tech entrepeneurship

* Experienced freelance full-stack web developer who can build literally anything on a computer
* Made the website for the event
* Is friends with all of the organizers and seems to know the whole SD tech community

* Claims to be a "neuroscientist" and "data scientist"
* Has no idea what's going on
* Still kind of buzzed from one beer

Seems like we're all about the same level. Nice.


So I guess we're a team now and we head into the coding room to work on ideas together. 

Holy crap. More free stuff. T-shirts, Sandwiches, pizza, high-quality granola bars, Red Bull, soda, and chips. I switch from beer to Red Bull and we start to talk about what to work on. 

We try to solve forest fires. Forest fires are complicated and none of us know how to do hardware engineering. Crap. Next we get really excited about making a fitbit for your house. You'll get points for using less energy, water, and waste. Then you can post that shit on Facebook and brag to your friends. Victor and Rushil can build it and I can do stuff with the data. Crap somebody already made that. Ugh. We think about making an online game that would optimize recycling bin locations and joke about how funny it would be if we could trick people into picking up trash off the ground to get points. Suddenly it's 12:30 AM and we have no solid idea. I'm thinking of quitting my new team. 

Then we think about if there's any way we can use the city's data to improve the bus system and maybe partner public transit with ride-sharing services like Uber or Lyft. I'm not super excited about it but I can't prove to them that it's a dumb idea not worth our time. We head out a little after 1 AM, add each other on Facebook, and message each other til about 2 AM.

I wake up to my phone alarm at 7 AM on Saturday. We had planned on meeting at 8 AM.
"What am I doing awake right now? Am I really going to go back to this thing? I don't even really know these people, our idea is super fucking dumb, and we came up with it in the middle of the night."
I somehow convince myself to get up and head back.

When I get there, I see people who seem like they had been there all night. There are people programming the crap out of some complicated looking stuff and all we have is a weak idea. Somehow the magic happens and we start to get this project rolling. Rushil and Victor start building the backend of a website we can use to visualize bus usage data. I start modeling bus use data and coming up with analyses we use to characterize it. We absolutely crush work for most of the day, not even stopping for lunch.

We meet again in the morning and put on some finishing touches. The 'finishing touches' take way longer than we expect. We frantically finish up our project and barely make the deadline - coding until the second the judges arrive to evaluate us. 

Presenting the project

Our final project kicks ass. It's a dashboard that a city controller can use to visualize bus usage on all of the city's bus routes using the new passenger counter sensors they're adding to busses. We can algorithmically label high-load and surging bus routes (post about this, code I wrote to do this). We have economic value models explaining how a partnership with Lyft could help with bus use surges to make public transit more reliable. The app looks nice.

The first judge comes over. Rushil gives the elevator pitch. Victor shows off his web platform. I begin to speak on the caveats of modeling surges in bus demand at length. I'm cut off quickly. I didn't even get to brag about clever math I used because we only have 4 minutes total to present. This is not a science conference.

Our pitch becomes better with each judge and by the end we sound pretty darn smart.

While the judges deliberate, I look at a couple of the projects and they're unreal. I was completely in awe of what these people could make in a weekend. One group was using sensors to optimize water efficiency when watering plants with hydroponics. One group had the idea of displaying the city's water supply on the treasury building using LED's so the building would look like a giant, kind of empty, cup of water.

The finalists were announced. Unfortunately, we were not chosen but the ones that were chosen were pretty awesome. Remember when I said we were joking on Friday night about making a game out of throwing trash away? The group with the virtual reality setup made a game where you throw objects either into the trash or recycling in virtual reality. They got picked. It actually looked pretty rad. Damn it. One group built a low-cost sensor that could be put in forests to detect forest fires and instantly communicate with the fire department. These sensors could also be repurposed to help 911 identify your location when you call far from a cell tower. They were not even finalists. 
One group received an honorable mention and was publicly offered a job with the city.

We didn't move on to the next round, but we received a lot of positive feedback about our project and we talked to a few people about what our next steps could be. We'll see what happens.

Go to a hackathon

Before I got there I was worried that I would be laughed out of the room for not knowing anything about tech. I was accepted with open arms and I found that I had a niche set of skills that were necessary to make our project work. Not many engineers have the skills that scientists do! Moreover, many projects were in dire need of non-techy skilled individuals like design specialists and people who could come up with projects and keep them on track.

Every person there seemed to be genuinely interested in helping other people out. Staff members and participants were frequently helping out with each other's projects. I heard the following conversation dozens of times: "Oh you're trying to do this? I know all about this. You should use that! Here's how you do it...(technical jargon for 5 minutes to half-an-hour)"

This was one of the best events I've ever been to. The breadth and diversity of technical knowledge at this small room could rival the entire Annual Society for Neuroscience Conference. The encouraging, friendly, and positive atmosphere could probably outdo most music festivals. I found myself in a group with two new friends and we built something in a day that I couldn't have done in a year on my own. 

I got a whole lot more out of this experience than the snacks, coffee, and lecture that I came for.

1 comment:

  1. I’m with you on this one! Although, I have never been to a Hackathon. I bet watching all of those minds come together and create is exhilarating.

    Personally, I have found networking, in some of the disciplines you mentioned, very difficult. I would really like to learn more about when and where these “Hackathons” happening. Are you planning on posting a Hackathon schedule?