All blogs / Software / engineering practice
Hillel Wayne
Recent content in Blog on Hillel Wayne
- Posts
- 127 from 28 Dec 2016 to 1 Sep 2026
- Posting
- now and then (4 in the last year)
- Kind
- personal blog
- Feed
- https://www.hillelwayne.com/post/index.xml
2026 4
2025 4
2024 10
2023 11
- Notes on Every Strangeloop 2023 Talk I Attended
- A better explanation of the Liskov Substitution Principle
- Learn AutoHotKey by stealing my scripts
- My Problem With the Four-Document Model
- Somehow AutoHotKey is kinda good now
- Breaking the limits of TLA+ model checking
- Ten weird things you can buy online (and why you would)
- That Time Indiana Almost Made π 3.2
- A Neovim Task Runner in 30 lines of Lua
- NP-Complete isn't (always) Hard
- Sources of Complexity: Constraints
2022 8
2021 12
- Using Abstract Data Types in TLA+
- Alloy 6: it's about Time
- How to Solve the Sudoku Puzzle with programming
- Specification Refinement
- Cross-Branch Testing
- Clever vs Insightful Code
- Why Specifications Don't Compose
- Why Do Interviewers Ask Linked List Questions?
- TLA+ Action Properties
- What engineering can teach (and learn from) us
- We Are Not Special
- Are We Really Engineers?
2020 19
- There's Always More History
- Two workers are quadratically better than one
- Software correctness is a lot like flossing
- Finding Goroutine Bugs with TLA+
- Decision Table Patterns
- J Notation as a Tool of Thought
- A Better Cheatsheet
- The Frink is Good, the Unit is Evil
- Weak and Strong Fairness
- Property Testing with Complex Inputs
- Constructive vs Predicative Data
- In Praise of AutoHotKey
- The Hard Part of Learning a Language
- Announcing: Alloydocs
- 10 Most(ly dead) Influential Programming Languages
- This is How Science Happens
- Feature Interaction Bugs
- The Business Case for Formal Methods
- Hypermodeling Hyperproperties
2019 15
- How fast do I talk?
- Formally Modeling Database Migrations
- Python Negatypes
- Performance Matters
- Modeling Missing Requirements
- Probabilistic Modeling with PRISM
- At least one Vim trick you might not know
- Alan Kay Did Not Invent Objects
- Modeling Adversaries with TLA+
- Finding Property Tests
- Metamorphic Testing
- Using Formal Methods at Work
- Solving Knights and Knaves with Alloy
- Why Don't People Use Formal Methods?
- STAMPing on event-stream
2018 24
- A Better Interview
- Modeling Message Queues in TLA+
- Practical TLA+ Now Available
- Optimizing MiniZinc
- Constraint Solving with Minizinc
- 1/0 = 0
- Augmenting Agile with Formal Methods
- Decision Tables
- Formally Specifying UIs
- Raw Materials
- The Great Theorem Prover Showdown
- Why Does "=" Mean Assignment?
- Just a Whole Bunch of Different Tests
- Formally Specifying a Package Manager
- List of TLA+ Examples
- Monad Tutorials for Other Topics
- The Problem With APLs
- It's Hard to Reason About Systems
- Modeling Redux with TLA+
- We've Already Thought the Unthinkable
- Teaching Leaky Abstractions
- Important Women in CS Who Aren't Grace Hopper
- Proving Games are Winnable with Alloy
- The best software engineering paper you haven't read
2017 19
- Vim Macro Trickz
- Property Tests + Contracts = Integration Tests
- What's the Right Tool for the Job?
- Maybe Comments SHOULD Explain 'What'
- How is a Class like a Microservice?
- Introduction to Contract Programming
- Calculating Burn Rates in J
- Why TDD Isn't Crap
- Unit Tests Aren't Tests
- Handwriting Programs in J
- Uncle Bob and Silver Bullets
- Instructive and Persuasive Examples
- How Do We Trust Our Science Code?
- Hypothesis Testing with Oracle Functions
- List of Articles about Programming Skepticism
- Modeling Zero-Downtime Deployments with TLA+
- Doctests in Python
- Falsehoods Programmers Believe About Dogs
- Uncle Bob is Ruining Software