I'm an
experimentalist and
experimentalist. I enjoy making
online toys and
online toys. For example, I made an adaptive rock-paper-scissors bot that does
better than chance.somewhat better than chance.
I have spent time
learning about 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 also play with
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 the ants don't know anything about each other, yet the resulting emergent system displays complex behaviors, allowing the ants to
to gather food.
My job is as a
web developer.
web developer, applying
agile practices to
agile software development methodologies including pair-programming and
test-driven development totest-driven development (my experience has been that testing reliably results in better code, and test driving, where appropriate, helps to minimize errors and to spread knowledge) tofrontend and
frontend development in
JavaScript,Javascript (and CoffeeScript, Processing, and sometimes Java),
HTML5, and
CSS,CSS (straight, on the rocks, or with SASS and/or HAML),
and
backend web development.
backend development with
RubyRuby both on and off Rails
and various
UNIX tools.esoteric UNIX tools with 3-4 letter acronyms.
I work with
clientsPivotal Labs and other clients
and develop my own
projects.
projects, such as
UnderTheSite,UnderTheSite (underthesite.com), a tool for examining the workings of websites,Freebie Finder,Freebie Finder (absurdlycool.com), an automated free stuff search engine and aggregator,
and other
older projects.
older projects, including:
RecreationParks.net - a database of 50,000+ public parks in the US (now sold to AllTrails, Inc)
Startup Warrior - an interactive map of tech companies (now sold)
Parsley - a language and companion website for building web scrapers
CSSEvolve - a tool to evolve CSS styles through a process of simulated natural selection
I enjoy using
machine learning techniques and
machine learning techniques that I studied
in graduate school and
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:
I also researched
stochastic optimization
stochastic optimization for motion control of high degree-of-freedom manipulators, like octopus arms and elephant trunks (you can read my paper about it),
and
machine learning in web applications.
machine learning in web applications.
Notably, I developed a remotely hosted tool that analyzed both historical traffic flows through a website and a visitor's personal cursor motion in order to estimate a probability distribution over page links. Links that a visitor is likely to click are either enlarged or pre-selected, thus improving page flow (and the link's Fitts's Law properties).
Prior to Georgia Tech, I graduated from Haverford College with a BS in
Physics.
Physics and a concentration in Computational Science, focusing on
Physics Education.
Physics Education, which culminated in the development of three
educational physics appletseducational physics applets
(Damped, driven harmonic oscillators, coupled harmonic oscillators and Hilbert Space, and waves on a beaded string)
that are featured in the newly released Physics textbook Waves and Oscillations: A Prelude to Quantum Mechanics by Walter Smith.
Before that I developed a low-cost, distributed data-processing cluster to look for radio pulsar signals.
I also enjoy
writing
open source software.
open source software, some of which includes
SelectorGadget - Bookmarklet for CSS selector generation
ruby-readability - Ruby port of Readability, a tool for extracting text from webpages
MyObfuscate - Ruby stream processor for the selective rewriting of MySQL dumps in order to protect user privacy
Reckon - Bayesian learning Ruby gem for command line accounting with Ledger
I
live in San Francisco.
usually live in San Francisco, but am currently backpacking with my wife through
South America andEcuador, Peru, Bolivia, and Argentina. Then, after the holidays, we're going toAsia.China, Thailand, Laos, and Cambodia.You can contact me in various ways.
You should read my blog and @follow me on Twitter. You can also contact me here.