TryCrypto
An interactive introduction to practical cryptography. It teaches hashes, encryption, public/private keys, and signatures through hands-on exercises that run entirely in the browser.
A selection of sites and open-source projects I've built, maintained, or played a major role in.
Public-facing things I still maintain or am directly responsible for.
An interactive introduction to practical cryptography. It teaches hashes, encryption, public/private keys, and signatures through hands-on exercises that run entirely in the browser.
A small tool for sharing encrypted data when you need something more deliberate than pasting a secret into chat or email.
A Jewish calendar and reminder service for Gregorian and Hebrew anniversaries, Rosh Chodesh, and holidays, with private RSS and iCalendar feeds.
My software engineering and consulting company. It is the umbrella for much of my current product, architecture, Rust, and high-assurance engineering work.
A deliberately small USD/ILS tracker that updates daily and offers RSS and email subscriptions. It is also a useful example of the kind of tiny, durable automation I enjoy maintaining.
My evolving recommendations for working effectively with AI coding agents: review practices, collaboration patterns, persistent instructions, and the broader idea of making engineering judgment reusable.
A public-key-encryption tool for keeping encrypted CI and application secrets in version control while preserving useful diffs and history.
A Rust library and standalone binary for correct PID 1 behavior in containers, including signal forwarding and zombie-process reaping.
A container entrypoint that watches an application for common failure modes, handles PID 1 responsibilities, and can send crash information to Slack.
A Rust library for periodic background jobs with execution history, health monitoring, retry behavior, alert hooks, and an optional web status page.
Many of these are now maintained by broader communities, but they remain central to my work in Haskell.
The type-safe Haskell web framework I started and spent many years developing. Yesod shaped much of my thinking about using types to move web-application errors from runtime to compile time.
A streaming-data library for Haskell built around composable producers, transformers, and consumers with explicit resource handling.
A type-safe persistence layer for Haskell supporting SQL and other backends, originally developed as part of the Yesod ecosystem.
WAI is the standard Haskell web application interface; Warp is the high-performance HTTP server built around it. They became infrastructure underneath Yesod and many other Haskell web applications.
The Haskell build tool I helped create around reproducible project environments and curated package sets, closely connected with the Stackage ecosystem.
For more of my open-source work, see my GitHub profile.