Hello, I'm
Eric Shull

The tinkerings of a curious mind.
saveSvgAsPng started as a weekend hack to export a few D3 visualizations from my browser using the HTML5 canvas API. Five years later it continues to be a popular option for JavaScript apps that need to let users download images of SVG-based content.
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.
vdom 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.