Skip to content
λ
Chris Grounds
Writing
Inspiration
About
⌘K
Programming as Discovery
Verifying Writing
The Code Smell of LLM Defensive Coding
Rust on the Frontend at Switch2
Impossible Tests
Why the Funny Names?
Coding without implementation
Two Types of TDD
A Steelman Anti-TDD Argument
Domain Modelling with Category Theory
Generate Random Data in Rust
Build a HTTP Proxy in Haskell on AWS Lambda
Haskell Through Example: ReaderT
TDD + TDD = TTDD
Data Constructors Are Functions
Compose for Speed
Wander mode
A constellation of ideas
Close
×
Latest writing
October 8, 2026
Programming as Discovery
September 14, 2026
Verifying Writing
September 3, 2026
The Code Smell of LLM Defensive Coding
August 14, 2026
Rust on the Frontend at Switch2
June 8, 2026
Impossible Tests
August 13, 2025
Why the Funny Names?
May 31, 2025
Coding without implementation
April 26, 2025
Two Types of TDD
April 24, 2025
A Steelman Anti-TDD Argument
October 1, 2024
Domain Modelling with Category Theory
March 17, 2023
Generate Random Data in Rust
May 5, 2019
Build a HTTP Proxy in Haskell on AWS Lambda
March 4, 2019
Haskell Through Example: ReaderT
September 27, 2018
TDD + TDD = TTDD
September 27, 2018
Data Constructors Are Functions
May 16, 2018
Compose for Speed