About Me
I’m a software professional with experience in both hands-on engineering and client-facing consulting. My focus is on building systems that are useful in real-world commercial settings, which requires a combination of skills. It's important to know what actually needs to be built, but also how to build it.
The combination is as much about people as it is about technology itself. While I've found it important to maintain current and flexible technical skills, it has also been important to know how to lead a team, communicate complex ideas with a range of stakeholders, and manage a range of delivery risks from technical to commercial.
Writing
I've maintained a blog for over twenty years. My recent writing largely focuses on using pragmatically modern software techniques to solve real world problems. I use a lot of Clojure because it fits nicely with the solutions to the problems I write about, but it is by no means limited to that language. 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.
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.