Safety and Liveness Properties

Software Mimicry

Crimes with Python's Pattern Matching

Announcing: Learn TLA+

Uncle Bob and Silver Bullets

Negatypes in Python: A type that is not some type

Two workers are quadratically better than one (2020)

I Heart Microscopes

Software correctness is a lot like flossing

Are We Really Engineers?

Using Abstract Data Types in TLA+

Alloy 6: it's about Time

How to Solve the Sudoku Puzzle with programming

Are We Really Engineers?

Specification Refinement

Cross-Branch Testing

Are We Really Engineers?

Clever vs. Insightful Code

Using Formal Methods at Work

A brief introduction to esoteric programming languages

Why Specifications Don't Compose

Instructive and Persuasive Examples (2017)

Why Vim Uses hjkl -Why JavaScript months start from 0

Why do interviewers ask linked list questions?

TLA+ Action Properties

Uncle Bob and Silver Bullets

Are We Really Engineers?

What engineering can teach (and learn from) us (part 3 of 3 on crossover between software and traditional engineering)

We Are Not Special (part 2 of 3 on crossover between software and traditional engineering)

At least one Vim trick you might not know

More →