Hillel
hillelwayne.com
Hillel
@hillelwayne.com
Formal methods, software history, chocolatiering. DMs open and happy to meet up in Chicago. Currently writing *Logic for Programmers* (out Q2 2026)

Newsletter: https://buttondown.email/hillelwayne/
Did I ever talk about how much I love Clark Ashton Smith? He's like Lovecraft except ten times funnier and only a third as racist
February 10, 2026 at 5:53 PM
Help me settle an IRL argument.

Imagine we could construct magic boxes, no bigger than a cubic meter in volume, that altered the flow of time inside them when shut. Would it be more revolutionary to society if the boxes A) slowed down time by 100x or B) sped up time by 100x?
February 6, 2026 at 6:57 PM
In the past year I went from never eating herring to it being a breakfast staple. Goddamn I love herring
February 6, 2026 at 3:59 PM
Day three of quitting all forms of scrolling cold turkey: damn this sucks
February 5, 2026 at 4:26 PM
Wrote a bit about the changes to and timeline for finishing Logic for Programmers in the newsletter buttondown.com/hillelwayne/...
Logic for Programmers New Release and Next Steps
Logic for Programmers v0.13, now with 20% more content!
buttondown.com
February 4, 2026 at 8:14 PM
After four months of edits and multiple mental breakdowns, I am delighted to announce the release of *Logic for Programmers* v0.13! All content is in, all that's left is copyediting (and technical editing and layout and proofreading and)

logicforprogrammers.com
Logic for Programmers
The mathematics that will help you in your everyday programming.
logicforprogrammers.com
February 3, 2026 at 4:55 PM
I used to pride myself in how fast I could code up scripts. When I can bash out an automation in half an hour, I write a lot more automations and am a lot more productive in the long run.

Nowadays that skill has been rendered almost entirely obsolete by LLMs.
February 2, 2026 at 9:48 PM
Logic for Programmers now has a website! Right now it's just a redirect to the leanpub page but one day it'll have, like, "blurbs"

www.logicforprogrammers.com
Logic for Programmers
The mathematics that will help you in your everyday programming.
www.logicforprogrammers.com
January 30, 2026 at 12:37 AM
Man a proof that 2 + 4 + 6 + ... + 2*n = n*(n+1) is a lot easier to follow than a proof that (1 + 2 + 3 + ... n) = n*(n+1)/2, even though both are the exact same proof with the exact same meaning
January 29, 2026 at 5:22 PM
Reposted by Hillel
Of course the longest chapter is on predatory logic
January 28, 2026 at 2:40 AM
Logic for Programmers has now passed 50,000 words, making it officially the longest text I have ever written.
January 28, 2026 at 2:19 AM
One of the things that's driving me crazy with the book is I see this great connection between the Liskov Substitution principle, database data models, and formal spec refinements, but I'm struggling to clearly convey it in the book. And now I'm worried that I'm writing it for me and not the reader
January 27, 2026 at 5:57 PM
I'm speaking at Software Should Work in July 16! Really pumped to not have to travel overseas for once :)

softwareshould.work
Software Should Work
An independent conference on software reliability in Columbia, MO on July 16-17, 2026
softwareshould.work
January 27, 2026 at 4:16 PM
I hate this book I hate this book I hate this book I hate this book I hate this book
January 27, 2026 at 5:59 AM
Jesus Christ, AI journalism is so bad right now.

Exhibit one, Gizmodo is raving about an article that 'proves' LLMs have a "mathematical limit" and can't possibly do tasks that are too complex.

Let's look at the actual paper, shall we?

gizmodo.com/ai-agents-ar...
AI Agents Are Poised to Hit a Mathematical Wall, Study Finds
LLMs have their limits.
gizmodo.com
January 24, 2026 at 6:39 AM
Wait so is the whole problem with ORMs that database tables are not the data model?! IE if you have tables `users` and `user_addresses`, the ORM will think that those are two separate objects, when the DB is implementing the intended data model "users have a list of addresses as an attribute"
January 23, 2026 at 5:52 PM
My favorite thing about cooking is how it regularly permanently improves your life. Couple weeks back I learned that Chilaquiles are super easy to make and now my life is just a little bit better
January 23, 2026 at 4:07 PM
My chapter on databases is now longer than my chapter on software contracts and this makes me irrationally mad
January 23, 2026 at 6:07 AM
Does a SQL database table correspond to a type? Does a data model implemented as records in multiple tables correspond to a type? I kinda wanna say yes to both
January 23, 2026 at 4:40 AM
I recently read "the lost art of XML" (marcosmagueta.com/blog/the-los...), which argues that developers prefer JSON purely out of convenience, and XML is the superior choice in most instances. I like and use XML, but think there's also good reasons why JSON won out.
The lost art of XML — mmagueta
marcosmagueta.com
January 22, 2026 at 9:10 PM
Two years to go!
January 22, 2026 at 4:02 PM
Reposted by Hillel
I think this will do what you want within a sandbox (call/2 is as dangerous as eval in Python or Lisp):

filecheck(high_churn, Problem, File) :- high_churn(Problem, File).
filecheck(untested_commit, Problem, File) :- untested_commit(Problem, File).
January 22, 2026 at 2:11 AM
Fuck it, going all in. We're making this happen
Logic for Programmers is two weeks away from copyediting and I just thought of an amazing addition that would unify liskov subtyping, specification refinement, and databases

So if I can get EVERYTHING ELSE done in time...
January 22, 2026 at 12:56 AM
Why are Venn diagrams of SQL joins misleading? Let me count the ways:

1. The inner join is the intersection of A and B. But A and B are different types, so the intersection should be empty!
2. The left outer join is the whole circle A, so... what's B even doing there at all?
January 21, 2026 at 5:22 PM
I am far more willing to trust an expert who has a love-hate relationship with their specialty than one who just has a love relationship
January 20, 2026 at 10:49 PM