Why participate in a hackathon?

At Betterment, it’s really important for us to find ways to solve complicated problems in simple, efficient, and elegant ways. So getting together with others in the FinTech space was a natural fit. We love seeing the solutions everyone is building to these problems! Startups, technology partners, and financial firms all collaborated on widely varying ideas to make financial data more accessible, more understandable, and more open. We were also on the lookout for rock star engineers who might be looking for an opportunity to make the financial world a better place. Were you one of them? Come work with us!

The projects that were built during the brief time span ranged from analysis and prediction, to identity verification, to social finance features. Some we loved: Real ID, a better real-time identity verification system (and the $10k prize winner!); Little Victories, a tool to reward your coworkers for good behavior and punish for bad; Social Fund, a platform to let people set up collaborate to invest; and Project Freedom, a tool to give freelancers the ability to do their taxes easily. Check out all of the projects over at HackerLeague.

So, what was the Betterment team up to? Welcome to Grabinero. What does it do? Sometimes we are so excited about what we’re doing that we don’t have time to run out and grab lunch. So we built a way for team members to work together. Is your colleague running out for lunch? Post that you want a sandwich and perhaps they can pick it up while they’re out. Going to Staples? See if anyone else needs anything on your way out the door. Then, just let others know what the cost was, and they can transfer money instantly to you, plus a small kickback for your trouble.

Joe, Alan, Evan, Don, and myself all showed up bright and early to chug coffee and get started. Our team mix ended up being extremely conducive to the project – we were able to break up work into easily manageable slices that stacked nicely next to each other. Senior Engineer Alan handled integration with the Dwolla OAuth, payment APIs, and application logic flow. Our intern Don handled infrastructure; getting our Ruby framework, Heroku hosting, and MongoDB database up and running. Our other intern Evan handled interactions between the database and application through Mongoid. Yours truly, as a designer/developer, handled UX architecture and design. And our Communications Manager Joe handled copywriting, QA, motivation, and caffeine and beer supply.

On the technical side, Grabinero is built in Ruby with Sinatra on Heroku; and you couldn’t ask for a more effective triumvirate. The app leverages Dwolla’s request/fulfill payment API to move money between Grabinero task requesters and responders, storing the state of the transaction each step along the way. For persistence, we used MongoDB in conjunction with Mongoid; together, they made storing tasks details and status a breeze. The front end is built on HTML5 Boilerplate, with an assist from Compass and SASS. It all added up to an app that was easy to build, easy to deploy, easy to demo, and easy to use.

In the end, our team took just over 18 hours to see a problem and ship an application that solves it, complete with tight backend logic, simple third-party API integration, and beautifully functional front-end layout. We can’t wait to smooth out some of the rough patches and take it out of alpha. After we showed the alpha to our coworkers, they suggested a flurry of new features we’re eager to add – notifications, groups, Foursquare and Yelp integration, customizable kickbacks, a ‘get me next time’ feature, and tons more.

Grabinero by the numbers:

  • First commit: Sat Apr 6 12:04:40 2013 -0400. Last commit before demo: Sun Apr 7 06:16:51 2013 -0400. Total time: 18 hours, 21 minutes.
  • Lines of code written: 12,552. Lines added: Don: 10,879; Sarah: 3,156; Alan: 815; Evan: 351. Lines removed: 2,649.
  • Most commits: Saturday from 11PM to 3AM.
  • Beverages consumed: Coffee: 15+ cups; Red Bull: 3; Five-Hour Energy: 4; Beer: 12.
  • Most descriptive commit message: ‘use constants instead of string literals and set correct state for fulfillment’. Least helpful: ’Fix all the things’. Most amusing: ‘http://bukk.it/fyeah.gif
  • Sunrise: 6:29AM. Last to roll out: Alan and Sarah. Time we rolled out: Just after 6:30. Combined hours slept: 1.5.

So what did we learn for next time? What should you know if you want to participate?

  • Come prepared with plenty of coffee, five-hour energy and/or red bull.
  • Take the time to plan out workflows and UX. User-friendliness is an asset.
  • Use as many of the APIs demoed by technology partners as you can.
  • Be agile – figure out ways to break up work based on things that can be done in parallel. Don’t set yourself up with dependencies.
  • Get a designer on board. You want to be the prettiest girl at the ball.
  • Use frameworks and templates. Don’t spend time reinventing the wheel when things like Foundation and Bootstrap are out there.
  • Don’t plan on getting out at a reasonable hour. Commit to the all-nighter early on, and enjoy it.
  • Try new things! Never built a Ruby app before? Don’t know how an API works? This is a great time to learn.
  • Join us next time – we’re hiring!

Ever been to a hackathon? How did it go?