Ian K. Duncan
Software engineer
An 18th-century plate of a caterpillar, its pupa and the moth it becomes, on a flowering branch.
IndexAbout

About

Writing Haskell professionally since 2014.

Working with companies from 3 to 1100 people in size to build reliable, debuggable, maintainable software.

Stability Engineering at MercurySince 2021

Correct by construction, resilient to failure.

I’m Ian Duncan, a full-stack developer living in The Hague. I’ve been writing in Haskell and other functional programming languages professionally since 2014, working with companies from 3 to 1100 people in size to build reliable, debuggable, maintainable software.

I currently work at Mercury, where I spend a lot of time making it easier for our other engineers to write code that is correct by construction, resilient to failure, and easy to work with in production.

Before that, I served as Principal engineer at Forge Global, a private equity marketplace where I helped build a platform for trading private company shares. I worked with engineering executives to plan and execute our merger with SharesPost, helping to integrate our two engineering teams and train Rubyists in how to use Scala.

MetamorphosisRegular division of the plane
Work5 roles
  1. Mercury Stability Engineering 2021 → Present
  2. Forge Principal Engineer 2020 → 2021
  3. Betterteam Jack of all trades 2016 → 2020
  4. Circle CI Engineer 2014 → 2016
  5. Faithlife Engineer 2012 → 2014
Talks1 talk
  1. Production Patterns for Incremental Temporal Adoption Mercury at Replay 2025 03.2025
ColophonThis site

The structure of this site, writing that ranges from rough notes to long-lived essays, each marked with a stability level and revised over time, owes a debt to Maggie Appleton and her work on digital gardens.

The visual language, the thin monospace display type, section readouts, and colour-mapped archival imagery, is inspired by the design work at Colossal.

Built with Astro. Set in Archivo and Martian Mono. Each essay carries a public-domain artwork, credited at its end; the section pages draw on Claesz, Kalf, Vermeer, Van Gogh, Mondrian, Stevin, Van Leeuwenhoek and Merian.