A couple weekends ago I competed at HackMIT. I am really proud of what I did in the 24 hour window and hope to improve on it when I get back to SF or even before then if I can find the time. I originally went there with the intent of working on a team with someone I met from the a16z hackathon but he ended up having to leave halfway through so I decided to work alone. This was my first time going at it by myself with no one else to help me build a product, so even though I was sleep deprived (I stayed up for 43 hours that weekend and ~30 the day before with 8 hours sleep in between) I was excited to see what I could accomplish.
The idea I had was simple, a manager of a location where employees interact with customers needs a way of getting customer feedback without being there to watch the employees. The specific use case I had in mind was a restaurant (yeah I know it's the second restaurant themed idea this month...) where people are constantly checking in and leaving reviews, and these reviews are usually at the time of checking in so we have a timestamp. With this I wanted to have an app where managers can go on and put in there employees shifts and then the app would match up the checkin/review timestamp to those employee's who were on shift at the time. These reviews would undergo sentiment analysis using the AlchemyAPI to determine whether or not the review was positive, negative, or neutral. Additionally AlchemyAPI returns a list of keywords that have been isolated with an associated sentiment based on the context of the surrounding words, I stored these but did nothing with them during the time that I was there(more on this after).
The first problem I had was sleep deprivation. I had been up all night thursday before my flight (30 hours), and only had scattered sleep on the flight from San Francisco to Boston. That night I found myself at Harvard for a getogether my friend invited me to. I got back and didn't sleep until about 2am and had to be up and ready by 8:30am. That was the start of a 43 hour spree of being awake, working by myself (somehow I managed to stay up the entire night!). This led to a lot of slow progress on things I should've figured out or remembered much sooner.
One fatal mistake I made was two hours before submission. I had only then just remembered that Foursquare only responds to requests from https, and my computer could not do it (my environment has wierd issues with ssl certificates), I had no time to learn to use Iron.io (the solution to our last project that used Foursquare), and I figured that since I had other issues to deal with that I did know how to fix I decided to sacrifice live functionality. One thing that did not help me to remember was that using Foursquare's test keys you dont need https and I only moved to my own keys those few hours before submission.
A huge bonus to using AlchemyAPI was that there was someone there to represent the company as they were a partner for HackMIT. Whenever I had questions about how things were returned from the API or I was having some kind of problem at all interacting with it, I would run right up the bleachers to the guy and he was more than happy to help.
Aside from AlchemyAPI, a cool tool I had previously not used before but decided to incorporate into my project was D3.js. I have been meaning to work on my javascript skills and thought that this would be a good chance. I had one chance to use this before at the NASA SpaceApps Challenge last spring but one of the two people on my team was really good with R so we built a webapp using R/Shiny which made D3.js uneccessary for us. I didn't get around to implementing it until near the end of the competition so I did a little bit of copy/pasting from an example directly into the template view (not my proudest moment...) and worked around that to get the data to show correctly and nicely for each employee (I used colorful donut pie charts).
Usually I am excited to write up a description for the apps I make at hackathons, but whether or not I consider the different challenges I faced, I consider my app to be incomplete. It does not have the polish of others that we have made in the past and I think that if I put some more time into it I will be able to put it up for people to see (and on my LinkedIn), but as any engineer excited to create new things, I already have two new ideas to work on when I get back to SF (along with my contract work and the job hunt) so it will be difficult as always.