Code That Fits in Your Head: Mental Models

Mental models are foundational. They decide how we interpret information and reason about a topic. Yet mental models for writing software are immature and little discussed. Code That Fits in Your Head puts mental models front and center.

September 22, 2022 · 4 min

Development Drivers

Code That Fits in Your Head collects the myriad of somthing-driven practices into a category of drivers. Drivers create a toolkit for highlighting motivations and responding to them with code.

September 15, 2022 · 2 min

Book Review: Code That Fits in Your Head

Code That Fits in Your Head tackles a problem dear to my heart. Mark Seemann realized good software engineering practices are out there, but it’s hard to connect the dots between scattered sources.

September 9, 2022 · 2 min

Book Review: The Annotated Turing

Following software to it’s orgins with Alan Turing reveals some interesting trends in how ideas cycle.

September 1, 2022 · 2 min

Introducing FsSpec

Type-driven and Domain-driven approaches commonly represent constrained values with a type. This approach is good, but generally leaves the constraints buried in functions. FsSpec exposes those constraints as data so they can be programmatically understood for validation, data generation, and more.

August 25, 2022 · 5 min

Performance as a Domain Property

Sometimes performance is an observable domain behavior that belongs in our normal test suite

August 19, 2022 · 2 min

Code That Fits in Your Head Practices are Stable Incremental and Additive

Stable, incremental, and additive is my personal theory about what underlies effective software practices. I’m pleased to find these qualities hold up quite well for practices described by Code That Fits in Your Head.

September 29, 2022 · 2 min

Normalizing Boolean Expressions for Programmatic Inspection

Programmers often arrange boolean expressions in all kinds of groupings for readability. The semantic of these groups, however, is not readily apparent to programs and algorithms. It turns out we can have it both ways, boolean expressions can be algorithmically normalized to consistent depth and form.

August 12, 2022 · 6 min

Is Clojure Spec a dependant type system?

I recently learned of dependent type systems. I’m trying to feel out the boundaries of dependent types and came to the question: Is Clojure Spec a dependent type system?

August 5, 2022 · 2 min

Pitfalls of Spec-based Random Testing

I’ve been thinking about constrained values, and how those constraints could be used to better test our systems. Mark Seemann was gracious to think through this with me and point out some interesting conclusions.

August 1, 2022 · 4 min