Care proportional to impact
How to value things.
How to value things.
Why don't we just...?
Safely and gradually rolling out large-scale changes on a codebase.
Moving past our current local maxima.
The most important quality.
An email sent to my city council.
A long and winding grade-separated multi-use path.
The beliefs that underlie certain philosophies.
A classic staple.
A delicious Italian-inspired recipe.
The choice is clear.
A language server for Jsonnet.
A reassuring delusion.
I like trains.
A constructive proof of an equivalence.
Going beyond testing the behavior of programs.
Avoid typing your password every time you ssh.
A recipe for a tasty snack.
What I'd like to see from Rust going forward.
Tips and pointers for knowing what's going on with a Git repository.
A strategy for code organization.
A way to think about writing recursive functions.
A technicality hidden in some asymptotic cost bounds.
An analogy for software engineer levels.
A language server for Standard ML.
The next generation of programming languages.
Removing the distinction between functions and methods.
Another little idiom I like.
Alternative title: "tradeoffs exist".
Trying to do better.
Tips on communicating effectively.
An overall positive outlook on humanity.
Various varieties of function in programming languages.
An exhortation to create.
A little idiom I like.
A particular writing style that may not work for you, but sometimes works for me.
Adding sums (aka "enums" or "tagged unions") to a small PL.
Adding product types (aka "structs" or "tuples") to a small PL.
Adding pure functions to a small PL.
The beginnings of a small, formally defined PL.
Things I use to study Japanese.