I'm an
experimentalist and
experimentalist. I enjoy making online
websites and toys and
websites and toys, such as
Zeebly,Zeebly (zeebly.com), a collection of products focusing on social data analytics,Freebie Finder,Freebie Finder (absurdlycool.com), an automated free stuff search engine and aggregator (recently sold),
and a bunch of
older projects.
older projects, including:
UnderTheSite - a tool for examining the workings of websites (sold to BuiltWith.com)
RecreationParks.net - a database of 50,000+ public parks in the US (sold to AllTrails, Inc)
Parsley - a language and companion website for building web scrapers
CSSEvolve - a tool to evolve CSS styles through a process of simulated natural selection
... and an adaptive rock-paper-scissors bot that does
better than chance.somewhat better than chance.
I've spent time
studying web security.
researching security and privacy, mostly in web applications. I'm in the Google Security Hall of Fame for some subtle security holes that I found in Gmail and Google Documents in early 2011.
I'm also interested in
emergent processes from nature.
the simulation of emergent processes and self-organizing systems, primarily from the natural world. One recent creation is an HTML5 canvas-based simulation of ants exploring and
working togethercommunicating via pheromone signals. These pheromone signals are local, and although the ants know nothing about each other, the resulting emergent system displays complex behaviors, which allow the ants
to gather food.
Professionally, I am
the VP of Engineering at
Mavenlink, where I
Mavenlink (mavenlink.com), a startup that is empowering consultants to collaborate with their clients in new ways. I
help guide the engineering team.
help guide the engineering team, applying
agile practices to
agile software development practices that I learned as a consultant at
Pivotal Labs,
Pivotal Labs (pivotallabs.com), and previously at CastTV and Google,
including pair-programming and test-driven development, to
frontend and
frontend web development in
JavaScriptJavaScript (and CoffeeScript, jQuery, Backbone, D3...)
and
CSS,CSS (straight, on the rocks, or with SCSS),
and to
backend web development.
backend web development with
RubyRuby both on and off Rails
and various
UNIX tools.strange UNIX commands with 3-4 letter acronyms.
I also enjoy writing
open source software and playing
open source software, some of which includes:
Huginn - A system for building agents that monitor the world and act on your behalf
SelectorGadget - A bookmarklet for easy CSS selector generation
ruby-readability - Ruby port of Readability, a tool for extracting text from webpages
Expando - The expanding text jQuery plugin that powers this page
MyObfuscate - Ruby stream processor for rewriting SQL dumps to protect user privacy
twitter_to_csv - Consume, store, and process Twitter streams
Reckon - Bayesian learning Ruby gem for command line accounting with Ledger
From time to time I play
with machine learning.
with machine learning techniques. I gave a talk at RailsConf 2012 about machine learning and originally studied it
in graduate school.
while doing my Masters research at Georgia Tech. My research focused on
artificial intelligence,
artificial intelligence. Specifically, I researched TTD-MDPs, a technique for generating a distribution of trajectories through a Markov Decision Process.
With my co-authors I published a couple of
papers.
papers: