Research & projects
By architecting I mean the process of designing beautiful, coherent visions and following through on the details to make those visions into reality. Architecting is distinct from mere building insofar as it focuses on coherent, elegant design as opposed to just the mechanics of production. I don’t enjoy coding just for coding’s sake but love coding as an outworking of design.
I am highly motivated by beauty in its many forms. I learn new things because they are beautiful; I strive to make all my creative output beautiful; I am motivated to communicate an appreciation for beauty in my teaching. For me, much of beauty in mathematics is to be found in homomorphisms, structure-preserving mappings between different domains.
Architecting and appreciating beauty always happen in the context of community. I love communicating ideas through teaching, writing, and giving talks. Many of the projects and tools I work on are intended to enable the communication of beautiful ideas in beautiful ways (e.g. diagrams and BlogLiterately).
Projects and research interests
Below is a sampling of my current projects and research interests, with each placed in the context of the above themes.
I use Haskell for most things because of its combination of theoretical elegance and practical utility in letting me realize ambitious visions.
I use static type systems as exemplars of elegant design which facilitate good communication, both with computers and other humans.
I have a strong interest in building (embedded) domain-specific languages, which allow succinct and expressive communication of solutions. I am particularly interested in the process of domain analysis—finding the right abstractions to capture the essence of some problem domain.
My dissertation focuses on making connections between the theory of species and the theory and practice of programming languages; my attraction to this area of research is due primarily to the fact that it lies over a rich vein of homomorphisms.
For the last several years I have been leading development of diagrams, an embedded domain-specific language for creating vector graphics. The goal is to provide an elegant and powerful framework for communicating via beautiful pictures.
I have designed and taught two courses, a half-credit Introduction to Haskell and a full-credit course called The Art of Recursion. The latter in particular was motivated by a desire to communicate appreciation for a certain constellation of interconnected beautiful ideas.
My blog, The Math Less Traveled, has a special focuses on communicating beauty, exploring various mathematical topics aimed at a general audience.
I maintain a tool, BlogLiterately, which makes it easy to author blog posts with rich content.
I helped organize the first Workshop on Functional Art, Music, Modelling, and Design (FARM), which gathered researchers and practitioners interested in writing “beautiful programs that generate beautiful artifacts”.
According to the Tolkienesque classification of people explained in Neal Stephenson’s novel Cryptonomicon, I am a dwarf: I like sitting in the dark hammering out Beautiful Things.
Click on any project to see more details.