All blogs / Functional / PL theory
Interjected Future
Interjected Future is an independent engineering blog focused on deep technical essays about programming languages, developer tooling, incremental computation, and the future of software
Functional / PL theoryAI / MLAlgorithms / data structuresSoftware / engineering practice
- Posts
- 120 from 31 Mar 2021 to 29 Dec 2025
- Posting
- now and then (1 in the last year)
- Kind
- personal blog
- Feed
- https://interjectedfuture.com/rss/
2025 39
- Year 2025 in Review
- The Best Way to Learn Might Be Starting at the End: Writing a Proof in Lean
- Doing More Customer Interviews Won't Make You Better At Them
- Agent: Customer Development Coach for Feedback
- Three ways I learn with AI
- Lab notes #074 Focused in a direction
- What is Algebraic about Algebraic Effects?
- The Hidden Scaffolding Behind Production Vibe Coding
- Elm should have had Algebraic Effects
- System eval with Obsidian and Claude Code
- Programming After AI: Why System Boundary Taste Matters
- Getting vibe coding to work for me
- Elm as target language for vibe coding
- Lab note #073 Existing in a digital space
- Lab note #072 A language with affordances for vibe coding
- Lab note #071 Agentic loop for buying decisions
- Lab note #070 Vibe-coding is half a skill issue
- Lab note #069 Partial implementation and prompt prompting
- Lab note #068 Dealing with collections incrementally
- Lab note #067 Pipelines operate on collections of data
- Lab note #066 But I don't want to write a compiler
- Lab note #065 Scheduler Retrospective
- Explain a Kleisli Category
- Lab note #064 Current API and developer affordance with more scheduler work
- Lab note #063 Vibe coding a scheduler
- Types as a design tool
- Lab note #062 Automagic juice is not quite worth the squeeze
- When declarative systems break
- Can you enable multiple resumption by implementing your own call stack?
- Visual programming is stuck on the form
- Lab note #060 Writing words and type checking effects
- Lab note #059 Effects type checking
- Algebraic Handler Lookup in Koka, Eff, OCaml, and Unison
- Lab note #058 Free Monad Effects and Algebraic Effects
- How the Free Monad and Functors Represent Syntax
- Year 2024 in Review
- Effects as Protocols and Context as Agents
- Lab note #057 Effects and R1
- Lab note #056 Using version vectors
2024 39
- Lab note #055 Rabbit holes leave project in shambles
- Lab note #054 Visualizing Execution
- A simple way to understand CRDTs
- Lab note #053 Breaking from structured programming
- The moats are in the GPT-wrappers
- Lab note #052 Epx for everything
- Lab note #051 Cell composition and lazy evaluation
- Lab note #050 Prior art of a React-like runtime
- Lab note #049 Survey of Reactive and Incremental Programming
- Lab note #048 Basic Effects Done, Reactivity Next
- Lab note #047 Progress on Notebook
- A mental model for `yield from`
- Lab note #046 Algebraic Effects for Notebook Cells
- Lab note #045 From Database to Notebook
- Launching a Digital Zine
- Empowering End Users with Local Models
- Lab note #044 Sailing by cache-oblivious data structures
- Where is the sandbox in your code base?
- Lab note #043 Merkle CRDT protocol
- Visual Programming Should Start in the Debugger
- Lab note #042 LLM Zine
- Recurse Center Return Statement
- Lab note #041 Two flavors of Op-based CRDTs as a baseline
- Lab note #040 Hitting a wall and going back to basics with CRDTs
- Lab note #039 Semantics of Composed CRDTs
- Lab note #038 Prolly Tree Incremental Insert Finally Done
- Lab note #037 Replacing a swath of nodes
- Lab note #036 Bottom-up Breadth-first Traversal
- You’re struggling to keep customers loyal. How can you use marketing automation software to help?
- Lab note #035 A quagmire of replacement nodes
- Lab note #034 Incremental insertion into Prolly Trees
- Lab note #033 Cascading boundary changes in Prolly Trees
- This is not a device. It's an invitation to explore the frontier.
- An incomplete Unicit Merkle Tree
- Lab note #032 Pair programming with GPT-4 and Isabelle
- Lab note #031 Proving out with Isabelle
- How can you quickly adapt to new web development technologies?
- Lab note #030 The Trick to Unicity of Prolly Trees
- Year 2023 in Review
2023 23
- Lab note #029 Balancing nodes in a unicit tree
- Lab note #028 Consistent Splitting for Node Sizes
- CRDTs Turned Inside Out
- Lab note #027 Breadcrumb to Prolly Trees
- Trade-offs between Different CRDTs
- Lab note #026 Tool-based manipulation
- Lab note #026 Tool-based manipulation
- Lab notes #025 Split condition for Merkle Search Trees
- Lab Notes #024 Merkle DAGs and retrofitting into relational
- Lab Notes #023 Cambrian Migrations
- Lab notes #022 SQL is the new QWERTY
- Lab notes #020 useDb and Embodied
- Lab note #019 Local-first Data Model
- Lab notes #018 Changes from category theory to todo lists
- Information-rich Cache
- Lab notes #017 Surveying Local-first Real-time Databases / Frameworks
- Imagining a sample TodoMVC with an immutable database
- Lab notes #016 Computing deployed for operational efficiency
- The state management library front-ends are looking for is a database
- Lab notes #015 Writing about state management
- Lab notes #014 Revisiting Requirements
- Lab notes #013 Inserting keys beyond capacity
- Lab notes #012 Taking right and left and the case of the weird iterator
2022 15
- Persistent Data Structure Redux
- Lab notes #011 value iteration and the LLM assistance problem
- Lab notes #010 4th time's the charm to rewrite append
- Lab notes #009 Concatenation and Append
- Lab notes #008 Details are in the ID
- Lab notes #007 Reuse not possible
- Lab notes #006 Categories redux
- Lab notes #005 Moving on from the low level
- Lab notes #004 Index construction with trees
- Lab notes #003 Database as Value in Depth
- Lab Notes #002 Found embedded database
- Compiling Composable Reactivity
- The Broken Half of Interactive Programs
- Destroyed at the Boundaries
- Year 2021 in Review