About this site

Hi, I'm Wil. I'd been blogging on and off since before 2005, and had started up again in 2020. But it wasn't until I read A blog post is a very long and complex search query to find fascinating people and make them route interesting stuff to your inbox that I got a better sense of what I wanted to do with this blog.

I want to be able to get at the heart of core concepts, and write about surprising ideas that are also true. By publishing it, I want to see if other people see the same thing, or have something to add.

I seem to gravitate towards a couple different topics. It might look like a disparate collection, but they're actually tied together from a couple years of following my related interests, mostly in the form of Lab Notes. I'm going to start collating those into a more digestible essay format.

Tools for Thought and Visual Programming

Like anyone who was influenced by the work of Bret Victor, I went deep down this path to see what was there. Since then, it's yielded all other topics on this blog, but the one that's stayed close is my thinking around visual programming. It hasn't gotten the breadth the topic deserves, but it's resonated with people.

Visual programming is stuck on the form
Underlying great creations that you love—be it music, art, or technology—its form (what it looks like) is driven by an underpinning internal logic (how it works). I noticed this pattern while watching a talk on cellular automaton and realized it’s “form follows function” paraphrased from a slightly different
Visual Programming Should Start in the Debugger
Just like CAD didn’t make everyone an industrial designer, visual programming isn’t going to make everyone a programmer. Whether textual or visual, there’d still be a lot of underlying concepts (and how they are composed) to learn. But still, I think it’s underexplored. Most visual programming paradigms focus on coding--the

LLMs and vibe coding

It's certainly hard to ignore how big of a change LLMs and vibe coding will be in the near and long term future. I lean a careful optimist on this topic, and will document the things I find that are working in this space.

The Hidden Scaffolding Behind Production Vibe Coding
I’m not near a level where it’s 10k LOC per day, but the volume of commits is noticeably higher w/ Claude/Codex now. Back in Feb/Mar when Claude Code came out, I was writing an implementation of DBSP (incremental computation with some mathy stuff) and I couldn’

Early stage startup and Product thinking

In the macro, I'm unapologetically optimistic about technology, so I don't believe Decel movements are the right answer. I like the Solar Punk vibes, but I'm an unabashed capitalist. That said, I don't think they're the only tools for solving coordination problems between humans.

Hence in the micro, I think a lot about how startups find product-market fit, what are the common mistakes, unit economics of a business, and the "shape" of a product in the market. I'd been a startup founder, and have spent a long time trying to understand why I didn't do better.

This is not a device. It’s an invitation to explore the frontier.
Recently, the Rabbit r1 launched. It’s a new handheld device that promises a new primary interaction model with compute: by talking to them in the context of the real world. In turn, they would help us perform actions to help us with unstructured, but menial tasks throughout our day. The

Algebraic Effects and Immutability

When going deep into Tools for Thought, and why programming was so hard–one thing that stuck out was that maintaining state was hard. That lead to investigations on immutability. In turn, it also lead to how to keep code purely functional, even with side-effects. That's how algebraic effects showed up on my radar.

Elm should have had Algebraic Effects
If Elm had Algebraic Effects, it would have made it more adaptable to these multi-message processing.
An incomplete Unicit Merkle Tree
👉When I had mistakenly thought that Prolly Trees weren’t uncit, I thought maybe an interesting way forward was to leverage the same mechanism CRDTs use to converge. Below is a mathematical description of what I called a Lattice Merkle Tree, still incomplete. I had time-boxed this, so I got as

Local-first and the Web

Tools for thought also naturally lead the way to the Local-first community. I didn't realize how early I was to it, and had been following Ink and Switch since maybe 2017 (iirc). This lead down a deep rabbit-hole into sync technologies, such as CRDTs.

Trade-offs between Different CRDTs
🔰If CRDTs are new to you, here are some introductory links. - An interactive intro to CRDTs - An introduction to state-based CRDTs - CRDTs for non-academics - CRDT: The Hard Parts - Readings in CRDTs - crdt.tech What are the trade-offs between different kinds of CRDTs (Conflict-free Replicated
The Broken Half of Interactive Programs
While most front-ends today have largely agreed on the design of the rendering subsystem, we seem to be grappling with design of the interactive subsystem.

Reactivity and Incremental compute

Reactivity and incremental compute also came out of investigations into Tools for Thought. While I spent more time reading and coding on this topic than any other, I still haven't condensed my thought well in the space. As soon as I do, I'll be able to write more.

When declarative systems break
A couple of months ago, I had to reload everything I knew about reactivity back into my head. I discovered that I missed a large corner of the development around unstructured reactivity, by way of Signals. From arguments about signals vs. functional components on Twitter and in post comments, it

Game Design and UX

Like many programmers, I got into programming due to a fascination in games. But nowadays, the interest has shifted into game design, and particularly why those lessons haven't pushed into UX for application design.

While doing a cursory research on dialog systems, I came across how Katana Zero uses interruptions as a way to engage players in cut-scenes, and how text animations can help convey emotions. If chat is the UI for AI, then maybe we need some of that. www.youtube.com/watch?v=40G...

iamwil (@interjectedfuture.com) 2025-08-29T19:00:04.030721Z

As more and more information presents itself in video format, I like the fact that I can use LLMs to extract that information quickly--like reading a web page. I was interested in why Disco Elysium decided to use a chat box side bar, rather than interstitial text.I asked Gemini!

iamwil (@interjectedfuture.com) 2025-08-30T01:00:02.861949Z

Math and Lean

I've always loved math growing up, so when it came time to tackle programming with math topics, like neural networks or category theory, it wasn't much of a barrier. So it was a surprise to me that it wasn't like that for other engineers. I only recently started doing this, so no posts on it yet.

Dipping toes in Lean with Claude Code. I can ask it to write a tutorial for a proof I care about: that ZSets with add_merge forms an abelian group. Way better than the stock tutorial to maintain interest! And if I need the tutorial to have more detail, I can ask it to update!

iamwil (@interjectedfuture.com) 2025-09-10T17:00:07.628439Z

Governance and Cryptocurrencies

I worked in the crypto space circa 2017-2019, and I remain positive about the underlying tech. I'm not interested in the grift or memes, and I think decentralization isn't much of a rallying cry for builder adopting. Rather, I think it's the only space where people are experimenting with how to coordinate large numbers of people–governance. If they find something viable, it'll be as big as the invention of money, corporations, and governments.

NFTs unbundle ownership from enjoyment
If you view NFTs as a progression of the unbundling of ownership and enjoyment, the enjoyment got digitized first. And now, we’re seeing ownership being digitized. But digital ownership is kinda weird because it had digital properties like low cost to store and distribute, yet it’s scarce.