About Me
I’m a software professional with experience in both hands-on engineering and client-facing consulting. I focus on building systems that are useful in real-world commercial settings — Settings where constraints, tradeoffs, and clarity matter as much as technical correctness.
My work centers on understanding what clients actually need and delivering solutions that meet those needs reliably. That often means choosing simple, well-understood approaches over more complex or fashionable ones.
Current Work
Since July 2018, I've worked at Digital Asset. Digital Asset's primary product, Canton, is a privacy preserving blockchain. Unlike other blockchain products, Canton has a first class concept of the parties involved in a transaction. Canton then uses that knowledge to cryptographically ensure that only the parties that are entitled to see a transaction can do so. This unique capability provides a way for us to address markets that can benefit from Blockchain settlements, but at the same time do not want to broadcast their transactions to the world.
I currently focus on helping our customers use Canton Network to advance the state of the art in financial transaction settlement. It sounds cliche, I know, but DA has a unique product and a legitimately unique opportunity to enable a new kind of business process. There are challenges, to be sure, but also exciting opportunities. Earlier in my time at DA, I had the privilege of being on the initial engineering teams for both Daml Hub and Canton Network.
Writing
I've written off and on on my blog for over twenty years. My recent writing largely focuses on using functional progamming (mostly Clojure) to write pragmatic software solutions for real world problems. I also dabble in the history of the field and occasionally comment on current events in my profession. Here are a few representative posts:
- Workload - Thoughts on how to manage the workload required to operate modern software.
- Concrete Control Flow - A discussion of Haskell style monadic control flow presented using concepts from Python.
- Packaging Small Clojure Apps - Thoughts on how to package small Clojure based web applications for deployment.
Projects
Most of my work is propriatary work done for my employers. However, I do have some open source work available on my GitHub. Some of the projects are mainly explorations of ideas and tools I find interesting. Others are software I've maintained for an extended period of time for personal use.
A few key higlights:
- Rhinowiki - The Markdown based CMS I use for this website.
- Toto - A todo application I've personally written and used for over ten years.
- Rust Raytracer - I was interested in learning Rust and wrote a simple raytracer to experiment a bit with the language.
- vcsh - This is a Scheme) interpreter written in C and heavily derived from George Carette's SIOD interpreter. At one point, this was the core of a calculator I tried to sell as Shareware.
There are a number of other projects on my GitHub itself.