Thursday, August 4, 2011

LinkedIn Hackday

This past weekend, after a three-month hiatus from the coding world, I rolled up my sleeves to hack once more.  This time the venue was LinkedIn, which invited Silicon Valley interns to lock themselves into the cafeteria of the Mountain View-based professional networking giant for 24 hours, in order to hack on whatever fit their fancies.  (Note: For those uninitiated in computer science circles, “hack” is an endearing term for a hasty but impressive feat of coding.  It has nothing to do with malicious intent – that type of coding is called a “crack.”  The media tends to confuse the terms.)

I arrived at 7pm with an idea that I was set on working on, one which would make the world a better place rather than make money.  The idea came from a challenge lodged by the federal government: to create mobile and web apps to help prevent sexual assault (see the challenge).  My idea was the first step in an ideal app for that purpose: a mobile app that would allow a person in a scary situation to discreetly notify a trusted list of contacts that she was in trouble.

Since I was going solo, I chose a familiar technology – Android – on which to develop the app.  The components were straightforward: A screen that would allow the user to pick her list of trusted contacts, a widget that would live on the Home screen that would allow the user to trigger an “SOS” message, and an “Are you sure?” screen that would prevent accidental SOS messages.  An important caveat was that the widget and the Are you sure? screen needed to be disguised as something else, lest the potential victim be caught in the act of crying for help.  Also, including the location of the user in the SOS message would be quite important.

I had never before built a widget or worked with location services, so I was able to pick up some technical pebbles during the night.  By about 2am I had the basic function of the app developed: It had a widget and an Are you sure? screen, could send text messages with the phone’s raw GPS location, and had a screen for picking out people from the phone’s Contacts app.  Over the next 9 hours, I built out a superior UI and integrated with a geocoder to convert the raw GPS coordinates into a street address.

The result was SOS Widget, a simple but functioning and usable app.  After downloading it, a user would add the widget to her Home screen, at which time she would be prompted to choose her list of trusted connections.  On this screen, tapping the plus sign would take her to the phone’s Contacts app, where she could tap on a contact to add it to her list.  She could add more contacts with the plus sign, or remove a contact by tapping the minus sign next to the contact.  The app pulled the name and photo of the contact to make the list easier to understand.  After completing the list, the user could return to edit it anytime by opening SOS Widget from the phone’s Applications drawer.
 
After choosing the list, the widget, disguised as a weather app, would appear on the Home screen.  Now suppose that the user got into a scary situation sometime in the future.  She could then nonchalantly pull out her phone and pretend to check the weather.  Tapping the widget would open the Are you sure? screen, which was disguised as a weekly forecast.  Tapping the sun at the top of the forecast would send a text message to everyone on the user’s list of trusted contacts.  The message contained emergency text, as well as the street address and postal code of the phone.

Having put the app into a good state by 11am, I took the last hour before the noon deadline to prepare my pitch and demo.  With about 45 teams competing, LinkedIn held preliminary rounds, judged by directors and senior-level engineers.  Perhaps in part because of my app’s uniqueness as the only entry created solely for social good, I advanced to the final round, where I would present to the “celebrity” judges (including the creator of the Java programming language, the founder of AdMob, and LinkedIn’s SVP of Engineering) and to all of the competitors.

I was due up last in the group on finalists, so in anticipation I watched one incredibly talented team after another blow the crowd away with its technical prowess.  There was a web-based Rock Band, a networked capture the flag game based on WebGL, and an intelligent voice-based search engine, to name a few.  At the end, I gave my live phone demo under the reflection of a document projector, and it all went flawlessly.

I knew as soon as I started working on SOS Widget that I was not going to win the hackday.  My idea was much too simple from a technological standpoint – its value lay in its product focus.  But I appreciate the desire to keep hackathons for the hackers; by all means, coders should be rewarded for beautifully-executed code.  At the LinkedIn Hackday I discovered, amongst the awe-inspiring displays of mastery of AI, algorithms, graphics, and hot APIs, that I am no longer a member of that computer science uber-nerd club.  I have moved to the product nerd club.
For more on the LinkedIn Hackday, see the official write-up.