LLM Experiments #5: Design by API
Note: Experimenting with quick writeups as I play around with LLMs and my homegrown agentic workflow system. Previously.
When working on my workflow system I’m starting to find that the most effective use of my attention is to focus on API surfaces of the core subsystems. With a layered API design, the surface will span multiple levels of subsystem, and so give a rough shape to everything underneath. I’ve found property testing and synctest to be valuable tools for defining and testing the properties of the concurrent execution engine: the contracts of the API serve as useful inspiration for tests. In general, a lot about this project feels like it’s about artfully and verifiably constraining growth. Designing this way feels a bit like Amazon’s strategy of writing the product description first to clarify what the product should be.