By Gowri Grewal (Hackbright Academy – summer 2013 class)
As a newly-minted Hackbright graduate – a software engineer – I was eager to test my skills on some “real” engineering. The past 10 weeks of Hackbright Academy have been sitting in a room and coding with a bunch of smart, friendly women who have grown to be a true support network to each other.
I was hesitant to join the TechCrunch Disrupt hackathon – a big, impersonal event where 90% of the attendees are men.
Hackathon Lesson #1 – Push yourself and aim high. Then, put yourself in a position to be lucky.
I decided to try and attend the TechCrunch Disrupt hackathon after seeing my Hackbright colleagues sign up – they bolstered my confidence and I thought, “What’s the worst that could happen?” My theory is that trying something that seems beyond my reach is the best way to really test and improve my skills.
I learned quickly that tickets are a hot commodity and not easy to get – I was alerted three times on Twitter and email each time a new batch of tickets were released up, yet failed to register in time before tickets sold out. Luckily, one of my colleagues with a coveted ticket was unable to attend, and I was able to take her place. With an odd combination of ambition and luck, I got my chance to enter the hackathon!
Hackathon Lesson #2 – Start small and iterate rapidly.
My colleagues from Hackbright and myself showed up at the hackathon as the doors opened on Saturday morning and spent the first hour meeting with the various API representatives in attendence. The goal was to come up with the most creative way to use one or more of the featured APIs at the event, ranging from Chevy to ShopStyle (and everything in between).
I needed to pick an API to work on and then find a partner. We started with a big idea from Becca about combining Wunderground weather forecasts and ShopStyle fashion advice to help choose a wardrobe for travel. Although we came up with dozens of potential features, we quickly broke it down into our minimum viable product (MVP): we needed to get input from the user on location, retrieve some minimal temperature forecast data from the Wunderground API, and then use that to call the ShopStyle API and recommend an outfit.
After some research, I realized that we could only really get forecast data for today and the next 10 days through the Wunderground API. This means that to plan a “trip” more than 10 days in advance, we’d need to rely on average historical data rather than a “real” forecast.
We bet on the forecast data being more compelling because it was “real time” and decided that our MVP would focus on trips that were starting in the next few days, so that we could take advantage of the limited range of the forecast. Most of my programming time was spent retrieving the 10-day forecast and calculating the average high and low temps.
Hackathon Lesson #3 – Take time to plan and set achievable interim goals.
We took the time to sketch out a strategy and high-level architecture of our project. This enabled us to divide-and-conquer, which ended up being critical in the late-night hours when we had to go home and work separately. I took on the task of learning the Wunderground API and deciding which weather data to pull first for our MVP. Because Becca needed to know what weather data was available before she could design the ShopStyle interface, she worked on building a sharp front-end to our app while I sorted out the weather API. We were then able to work separately and get twice as much code written, than if we had made every decision together.
My first goal was to get any snippet of Python code incorporating the Wunderground API to run error-free. This took about 5 hours from the time the doors opened. But we felt a rush of energy when we met the first goal, which propelled us to keep working. Next, I tried to decode the JSON object returned in the forecast function from Wunderground. I could not get a connection to the online JSON viewer that I was familiar with, so deciphering the enormous JSON object took much longer than expected. But finally, I was able to get temperature data!
My next goal was to retrieve the highs and lows for 10 days and return the averages in a format that Becca’s module could use. If I had more time, I had several other interim goals in my roadmap. However, setting the smaller goals allowed me to get to a stopping point and integrate with Becca’s code before time ran out at the hackathon and presentations/demos began.
Overall, this was a great project and confidence builder. It’s hard to describe the anticipation we felt waiting backstage, knowing that a huge crowd was out there to hear us. Similarly, the rush of presenting and achieving our goal was incomparable! I hope that we continue to have a long standing tradition of Hackbright grads participating in this event!