Grant Slatton
grantslatton.com · Personal blog · on HN since 2013
Grant Slatton, a software engineer, writes about building software, design documents, bureaucracy, technology and LLMs.
What HN saysHN commenters cite his design document and complex software posts, quote his bureaucracy essay, and link his tool for generating HN titles.
21HN people shared it
4linked it in comments
24stories submitted
3.0Kstory points
5 months agolast shared
2013people per year2026
Most-shared posts
- 1Algorithms we develop software by4 people · 541 points · first shared 2024 · 106 comments on HN
- 2Writing a good design document3 people · 587 points · first shared 2025 · 147 comments on HN
- 3Bureaulogy3 people · 6 points · first shared 2025 · discussion on HN
- 4Nobody cares2 people · 1.1K points · first shared 2025 · 976 comments on HN
- 5Technocapital2 people · 4 points · first shared 2025 · discussion on HN
- 6Odd Things Happen When You Swear At Your Internet Company2 people · 1 points · first shared 2013 · discussion on HN
- 7Show HN: Probabilistically Generating HN Post Titles1 people · 683 points · first shared 2013 · 260 comments on HN
- 8LLM Memory1 people · 33 points · first shared 2025 · 6 comments on HN
- 9How to Write Complex Software1 people · 7 points · first shared 2025 · discussion on HN
- 10The Curve Is Bending1 people · 6 points · first shared 2025 · discussion on HN
- 11Building GPT-based AI agents today, and their implications for tomorrow1 people · 2 points · first shared 2022 · 1 comments on HN
- 12Designing Bug-Proof Engines1 people · 2 points · first shared 2024 · discussion on HN
- 13Twitter: High Value, or Highest Value?1 people · 2 points · first shared 2025 · discussion on HN
- 14Building High-Performance Filesystems1 people · 2 points · first shared 2024 · discussion on HN
- 15Solving the Board Game Quoridor1 people · 1 points · first shared 2026 · discussion on HN
What HN people wrote when they linked it
gamegoblin · 2024-07-11
If you happen to be coding in Rust, for really robust concurrency testing, I cannot recommend enough the AWS Shuttle library (https://github.com/awslabs/shuttle) which can find insanely complicated race conditions.
What the Shuttle library is doing is basically automatically going through all the permutations of the schedule diagrams described int his blog post.
We used it at AWS to verify the custom filesystem we wrote to power AWS S3.
If you're curious, I wrote a little tutorial on it here: https://grantslatton.com/shuttle
thelastgallon · 2026-06-20
> Within a massively bureaucratized and divided system, the immense guilt of killing someone is broken down into tiny, mundane tasks, like stamping a document. Because the system absorbs all individual moral friction, ordinary people can become cogs in a vast machinery of evil without ever questioning it. (In other words, the individual is not morally evil, but the system is designed to break things down so thoroughly that it renders those parts mindless, and that is the truly frightening part.)
Spot on!
Your comment explains why massive bureaucracies can get nearly anything done, because people are just following orders. For example Jallianwala Bagh (https://en.wikipedia.org/wiki/Jallianwala_Bagh), the people shooting were just following orders. Nearly all atrocities can be explain by the design of bureaucracies to eliminate moral friction.
Reminds me of Vogons[1] and Nobody cares[2]
[1] Here is what to do if you want to get a lift from a Vogon: forget it. They are one of the most unpleasant races in the Galaxy. Not actually evil, but bad-tempered, bureaucratic, officious and callous. They wouldn't even lift a finger to save their own grandmothers from the Ravenous Bugblatter Beast of Traal without orders—signed in triplicate, sent in, sent back, queried, lost, found, subjected to public inquiry, lost again, and finally buried in soft peat for three months and recycled as firelighters. The best way to get a drink out of a Vogon is to stick your finger down his throat,…
wenc · 2026-01-31
I've been doing spec-driven development for the past 2 months, and it's been a game changer (especially with Opus 4.5).
Writing a spec is akin to "working backwards" -- this is the outcome I want, how do I get there?
The process of writing the spec actually exposes the edge cases I didn't think of. It's very much in the same vein as "writing as a tool of thought". Just getting your thoughts on ideas onto a text file can be a powerful thing. Opus 4.5 is amazing at pointing the blind spots and inconsistencies in a spec. The spec generator that I use also does some reasoning checks and writes property-based tests (Python Hypothesis), which anchors the generated code to some reality.
With a spec, I can get a version 1 out quickly and (mostly) correctly, poke around, and then see what I'm missing. Need a new feature? Tell the LLM to update the spec and code it.
And here's the thing -- if you don't like version 1 of your code, throw it away but keep the spec (those are your learnings and insights). Then generate a version 2. This echoes Grant Slatton's "Write everything twice" [1] heuristic -- write your code once, solve the problem, then stash it in a branch and write the code all over again. This is effective because initial mental models of a problem are usually wrong.
> A piece of advice I've given junior engineers is to write everything twice. Solve the problem. Stash your code onto a branch. Then write all the code again. I discovered this method by accident after the…
slig · 2014-02-25
Looks like it was generated using this: http://grantslatton.com/hngen/?lookback=2