David's Ramblings

Rambling thoughts from a recovering Rubyist

NYC (SF) Rubyist (No Longer) Looking for Work

Hi there - my name is David, but I’m no longer looking for work (see update below). Still, I’ve worked at a few places and built some cool stuff, let me tell you a bit about myself and what I’ve done.

Skills/Interests

I’m a Rubyist at heart, but I have a pretty wide range. I have had experience developing with JS/CoffeeScript and Backbone.js, Ruby on Rails, Sinatra, Padrino and PHP. For fun, I’ve also dabbled a bit with Objective-C and node.js.

I’m obsessed with constantly improving my code techniques - some of my major influences recently have been Uncle Bob’s talk on the Lost Years of Architecture, Matt Wynne’s talk on Hexagonal Rails, and Steve Klabnik’s talks/writing about Hypermedia APIs. I’m always on the look out for new ways to improve my code, keeping it clean and flexible to change.

Work Experience

Lead Developer/CTO at Reachably (2011-2012)

At Reachably, I’ve been the lead developer of our site’s HAL+JSON API built with Sinatra and authenticated with OAuth 2. I’ve also been a major contributer to our frontend Rails and Backbone.js code.

  • Reachably API: https://api.reachably.com/

    The reachably API is a Hypermedia API using the HAL+JSON mimetype that runs on the Padrino framework. We built a fork of the Hal Browser to make it easier to browse. Our website consumes our API using the same API calls we intend to make available to the public, as well as our mobile app.

  • Reachably Website: https://www.reachably.com/

    The Reachably website consumes our API with a gem we wrote for it (based on Faraday). You can read more about that in my previous blog post entry: Dogfooding Our Api. The site also has a Backbone.js application that I lead the development on, consuming our API directly without talking through the Rails app.

Some of the open source stuff I worked on while working at Reachably:

Web Developer at Orange Sparkle Ball (2008-2011)

Some of the open source stuff I worked on while working at Orange Sparkle Ball:

  • eventbrite gem: https://github.com/therabidbanana/eventbrite

    A gem for interfacing with the Eventbrite API. Not actively maintained any more, as the company has an official gem.

  • orange framework: https://github.com/orange-project

    The goal was to build a Ruby-based CMS that was as simple as possible for us to build with and gave our clients a simple interface. No longer maintained, but a fun experiment for learning exactly what’s involved in building a framework.

  • Baker Framework: https://github.com/Simbul/baker

    Not my project, but I contributed some code fixes and feature enhancements to the Baker Framework while using it for a project at Orange Sparkle Ball. Notable mainly because this was my first experience using Objective C.

Undergraduate Research Assistant at Georgia Tech

During college, I assisted with two research projects to help build better routers. I ended up being listed as a coauthor on two papers about them:

Why is my internet slow?: making network speeds visible
Marshini Chetty, David Haslem, Andrew Baird, Ugochi Ofoha, Bethany Sumner, Rebecca Grinter
CHI ‘11 Proceedings of the 2011 annual conference on Human factors in computing systems, 2011

Eden: supporting home network management through interactive visual tools
Jeonghwa Yang, W. Keith Edwards, David Haslem
UIST ‘10 Proceedings of the 23nd annual ACM symposium on User interface software and technology, 2010

Update: Working at AdStage

I’ve taken a position at AdStage, Inc. and will be working there for the foreseeable future. This means a move to San Francisco, which should prove to be exciting.