The tinkerings of a curious mind.
I started Clojure Grams
to showcase the expressivity of Tweet-sized Clojure code, especially functions from clojure.core. I also share small functions I've found useful, as well as aphorisms distilled from my experience with Clojure.
is a ClojureScript library for building DOM-diffing web apps à la React. However, to escape Facebook's patent agreements, vdom relies on the virtual-dom project
and has a much smaller learning curve than more sophisticated libraries like Om and Reagent.
As a software developer, consultant, and project lead at Atomic Object for four years, I documented a great deal of my learning and professional techniques on the company blog, Atomic Spin
. Three of the posts made it to the front page of Hacker News.
I enjoy maps and generative art, so one day I created an island generator
from a simple recursive algorithm. The flat outlines it draws are surprisingly realistic and evocative, complete with bays, inlets, lagoons, archipelagos, and rocky shoals. As one Twitter user commented, "Rule wisely."
I first learned about taxicab geometry in a college math class, and I couldn't help but make the concept interactive. Taxicab Land
is a web-based app for exploring this non-Euclidean geometry in which distance has been redefined, producing diamond-shaped circles, octagonal ellipses, and unpredictable perpendiculars.
The Penny Game
is an animated manufacturing simulation based on the book Velocity
. It illustrates how productivity and constraints affect work in progress, throughput, and utilization, and how some actions have counterintuitive results.
I've taken sketchnotes
at several events, from local meetups and corporate retreats to national conventions like Clojure/conj and Agile Conf. Sketchnotes are a great way of harnessing doodles to capture high-level ideas and relationships, and the visual format works as a tremendous memory aid.
I have the polyglot's weakness for programming languages, and I've given presentations
that touch on Scala, Io, Go, Elm, and Clojure. I gave a lightning talk at Clojure/conj 2015 about the Elm architecture, and I've presented at software meetups on Go's model of communicating sequential processes.
For more of my work, visit my GitHub page
. You'll find an experimental notebook REPL for Clojure and ClojureScript, a solar system mapper, burn chart generator, turtle graphics library, color swatch organizer, GPS data visualizer, utilities for interacting with NeoVim and the system clipboard, and more!
I'd love to hear from you. Send me an email.