Things I've made trying to put my dent in the universe.
I've worked on tons of little projects over the years but these are the ones that I'm most proud of. Many of them are open-source, so if you see something that piques your interest, check out the code and contribute if you have ideas for how it can be improved.
-
RFC Browser
A delightful RFC browser with enhanced typography, relationship visualization, and personal notes. Navigate the web of IETF standards with ease.
ikdv3
-
GHC Memory Layout Visualizer
Interactive tool to visualize how GHC represents Haskell data types in memory, with heap layouts and card tables.
ikdv3
-
Temporal.io Haskell Client
Haskell support for durable execution in the face of failure.
github.com
-
Haskell OpenTelemetry SDK
I am the primary author of the Haskell OpenTelemetry SDK and the maintainer of the Haskell OpenTelemetry ecosystem.
github.com
-
HState
Dependently typed state machines in Haskell.
github.com
Hackage Packages
Open source Haskell packages I've published to Hackage.
| Package | Description | Version | Updated |
|---|
| idn | Pure Haskell IDN and Punycode implementation | 0.1.2.0 | 11/21/2025 |
| uri-templater | Parsing & Quasiquoting for RFC 6570 URI Templates | 1.0.0.1 | 11/21/2025 |
| warlock | Automatic type-safe conversion between Haskell data types using Template Haskell | 0.1.0.1 | 10/12/2025 |
| hs-opentelemetry-propagator-w3c | Trace propagation via HTTP headers following the w3c tracestate spec. | 0.1.0.0 | 10/7/2025 |
| hs-opentelemetry-propagator-datadog | Datadog Propagator for OpenTelemetry | 0.0.1.1 | 10/7/2025 |
| hs-opentelemetry-propagator-b3 | Trace propagation via HTTP headers following the b3 tracestate spec. | 0.0.1.3 | 10/7/2025 |
| hs-opentelemetry-exporter-otlp | OpenTelemetry exporter supporting the standard OTLP protocol | 0.1.0.1 | 10/7/2025 |
| hs-opentelemetry-sdk | OpenTelemetry SDK for use in applications. | 0.1.0.1 | 10/7/2025 |
| hs-opentelemetry-api | OpenTelemetry API for use by libraries for direct instrumentation or wrapper packages. | 0.3.0.0 | 10/7/2025 |
| hs-opentelemetry-otlp | OpenTelemetry protocol buffer modules generated for the OTLP protocol by the proto-lens package | 0.1.1.0 | 10/7/2025 |
| temporal-sdk-core | No description available | 2025.10.1.0 | 10/1/2025 |
| temporal-sdk | No description available | 2025.10.1.0 | 10/1/2025 |
| temporal-api-protos | No description available | 2025.10.1.0 | 10/1/2025 |
| varargs | Utilities for working with variadic functions using type-level lists | 0.1.0.1 | 9/19/2025 |
| hs-opentelemetry-vendor-honeycomb | Optional OpenTelemetry integration for Honeycomb | 0.0.1.2 | 11/24/2024 |
| hs-opentelemetry-utils-exceptions | No description available | 0.2.0.1 | 11/24/2024 |
| hs-opentelemetry-instrumentation-yesod | Yesod middleware for providing OpenTelemetry instrumentation | 0.1.1.0 | 11/24/2024 |
| hs-opentelemetry-instrumentation-wai | WAI instrumentation middleware for OpenTelemetry | 0.1.1.0 | 11/24/2024 |
| hs-opentelemetry-instrumentation-postgresql-simple | No description available | 0.2.0.0 | 11/24/2024 |
| hs-opentelemetry-instrumentation-persistent | No description available | 0.1.0.1 | 11/24/2024 |
| hs-opentelemetry-instrumentation-http-client | No description available | 0.1.0.1 | 11/24/2024 |
| hs-opentelemetry-instrumentation-hspec | No description available | 0.0.1.2 | 11/24/2024 |
| hs-opentelemetry-instrumentation-conduit | No description available | 0.1.0.1 | 11/24/2024 |
| hs-opentelemetry-instrumentation-cloudflare | No description available | 0.2.0.1 | 11/24/2024 |
| hs-opentelemetry-exporter-handle | No description available | 0.0.1.2 | 11/24/2024 |
| hs-opentelemetry-exporter-in-memory | No description available | 0.0.1.4 | 11/24/2024 |
| thread-utils-context | Garbage-collected thread local storage | 0.3.0.4 | 8/29/2023 |
| honeycomb | No description available | 0.1.0.1 | 5/5/2023 |
| thread-utils-finalizers | Perform finalization for threads. | 0.1.1.0 | 5/4/2023 |
| datadog | Datadog client for Haskell. Supports both the HTTP API and StatsD. | 0.3.0.0 | 3/30/2022 |
| data-sketches | No description available | 0.3.1.0 | 8/25/2021 |
| data-sketches-core | No description available | 0.1.0.0 | 8/25/2021 |
| json-pointy | JSON Pointer (RFC 6901) parsing, access, and modification | 0.1.0.1 | 10/30/2019 |
| now-haskell | Zeit Now haskell-side integration and introspection tools. | 0.1.0.0 | 8/21/2019 |
| multipool-postgresql-simple | No description available | 0.2.0.0 | 4/10/2019 |
| multipool-persistent-postgresql | Read and write appropriately from both master and replicated postgresql instances. | 0.2.0.0 | 4/10/2019 |
| multipool-persistent | Read and write from appropriate persistent sql instances in replicated environments. | 0.2.0.0 | 4/10/2019 |
| multipool | Generalized system for reading and writing to distributed systems that have primary/replica topologies. | 0.2.0.0 | 4/10/2019 |
| algolia | A client implementing the Algolia search API | 0.1.0.0 | 6/25/2018 |
| fastly | A highly experimental Fastly API client. | 0.1.0.0 | 6/21/2018 |
| postgresql-common | Library for sharing common PostgreSQL types across Haskell PostgreSQL libraries. | 0.1.0.1 | 6/21/2018 |
| postgresql-common-persistent | Persistent compatibility for postgresql-common | 0.1.0.0 | 6/18/2018 |
| asset-map | Asset map support for the JavaScript broccoli-asset-rev library. | 0.1.0.0 | 6/12/2018 |
| librato | Bindings to the Librato API | 0.2.0.1 | 12/20/2017 |
| wai-middleware-brotli | WAI middleware for brotli compression | 0.1.0.0 | 10/28/2017 |
| hs-brotli | Compression and decompression in the brotli format | 0.1.0.0 | 10/28/2017 |
| metrics | High-performance application metric tracking | 0.4.1.1 | 8/9/2017 |
| pipes-wai | A port of wai-conduit for the pipes ecosystem | 3.2.0 | 1/8/2016 |
| flowdock | Flowdock client library for Haskell | 0.3.0.1 | 6/25/2015 |
| hs-mesos | No description available | 0.20.3.0 | 6/4/2015 |
| serf | Interact with Serf via Haskell. | 0.1.1.0 | 5/21/2015 |
| engine-io-growler | No description available | 0.1.0.1 | 4/23/2015 |
| feature-flags | A simple library for dynamically enabling and disabling functionality. | 0.1.0.1 | 4/2/2015 |
| growler | A revised version of the scotty library that attempts to be simpler and more performant. | 0.6.0 | 2/21/2015 |
| lens-text-encoding | Isomorphisms and prisms for text <=> bytestring conversions | 0.1.0.0 | 10/12/2014 |
| hedis-simple | A simplified API for hedis | 0.1.0.0 | 11/28/2013 |
| easy-api | Utility code for building HTTP API bindings more quickly. | 0.1.0.0 | 11/22/2013 |
| snappy-iteratee | An enumeratee that uses Google's snappy compression library. | 0.1 | 11/2/2011 |
| zoom | A rake/thor-like task runner written in Haskell | 0.1.0.1 | 8/5/2011 |