[{"data":1,"prerenderedAt":258},["ShallowReactive",2],{"recent-posts":3},[4,52,220],{"id":5,"title":6,"body":7,"crosspost":38,"date":39,"description":13,"extension":40,"meta":41,"navigation":38,"path":42,"seo":43,"stem":44,"summary":45,"tags":46,"type":50,"__hash__":51},"posts\u002Fposts\u002F25-years-at-scale.md","25 Years at Scale",{"type":8,"value":9,"toc":34},"minimark",[10,14,17,20,28,31],[11,12,13],"p",{},"At year five you think you understand scale. At year twenty-five you realize scale isn't a technical problem.",[11,15,16],{},"I've run teams that kept healthcare platforms alive through the night. Architected systems that quietly processed hundreds of millions of transactions without anyone noticing, which is the point. Built the infrastructure behind products used by people who never once thought about the pipes underneath.",[11,18,19],{},"The technical part gets easier. Not simpler, easier. You've seen the failure modes. You've felt the 3am pages. You've refactored the same class of mistake in six different languages across four decades of tooling.",[11,21,22,23,27],{},"What gets ",[24,25,26],"em",{},"harder"," is the human layer. Communicating tradeoffs to executives who want certainty. Protecting engineers from organizational chaos. Knowing when to say the system is fine and the problem is the process.",[11,29,30],{},"The real skill isn't distributed systems. It's translation, between business reality and technical truth, between what's being asked for and what's actually needed.",[11,32,33],{},"25 years in, that's the work I want to keep doing. Preferably on things I own.",{"title":35,"searchDepth":36,"depth":36,"links":37},"",2,[],true,"2026-07-07","md",{},"\u002Fposts\u002F25-years-at-scale",{"title":6,"description":13},"posts\u002F25-years-at-scale","What building massive-scale software for a quarter century actually teaches you.",[47,48,49],"career","engineering","reflection","article","joCmKu5srOeEnzcN6TVAXJ4ghDSSZihkSdVkvmwkAxE",{"id":53,"title":54,"body":55,"crosspost":38,"date":39,"description":207,"extension":40,"meta":208,"navigation":38,"path":209,"seo":210,"stem":211,"summary":212,"tags":213,"type":50,"__hash__":219},"posts\u002Fposts\u002Fatomic-design-is-a-discipline.md","Atomic Design is a Discipline, Not a Pattern",{"type":8,"value":56,"toc":200},[57,73,76,83,105,108,111,114,121,126,129,132,136,139,142,162,165,169,172,183,187,190],[11,58,59,60,64,65,68,69,72],{},"Here's how Atomic Design usually gets implemented: someone names their folders ",[61,62,63],"code",{},"atoms\u002F",", ",[61,66,67],{},"molecules\u002F",", and ",[61,70,71],{},"organisms\u002F",", drops whatever they want in each, and calls it done.",[11,74,75],{},"That's not Atomic Design. That's Atomic Naming.",[11,77,78,79,82],{},"The discipline is about ",[24,80,81],{},"responsibility boundaries",".",[84,85,86,90,93,96,99,102],"ul",{},[87,88,89],"li",{},"Atoms are the only layer that touches raw HTML.",[87,91,92],{},"Molecules group atoms.",[87,94,95],{},"Organisms group molecules and atoms.",[87,97,98],{},"Templates arrange organisms.",[87,100,101],{},"Views inject state into templates.",[87,103,104],{},"Each layer knows exactly one tier down. Nothing else.",[11,106,107],{},"When you enforce those boundaries, something interesting happens: files stay small. Logic stays localized. Components become genuinely reusable instead of just technically reusable. You can read a Molecule and understand it without tracing six levels of abstraction.",[11,109,110],{},"I keep 300-500 lines as a hard file limit. If a file is growing past that, the component is doing too much and needs to be split.",[11,112,113],{},"This sounds rigid. It is. That's the point. Constraints are how complex systems stay navigable over years, not months.",[11,115,116,117],{},"But here is where that rigidity stops being just a human convenience and becomes a structural necessity: ",[118,119,120],"strong",{},"we are no longer the only ones reading the codebase.",[122,123,125],"h3",{"id":124},"the-ai-advantage-predictability-is-power","The AI Advantage: Predictability is Power",[11,127,128],{},"When humans write code, they can sometimes rely on intuition to navigate messy, interconnected files. Large Language Models cannot. AI thrives on predictable patterns and isolated context. By enforcing strict responsibility boundaries, you are not just organizing code for your team; you are indexing it for machine intelligence.",[11,130,131],{},"If your architecture is merely \"Atomic Naming,\" an LLM has to guess how your layers interact. If it is a true discipline, the AI mathematically knows the bounds of every component before it even reads the file.",[122,133,135],{"id":134},"agentic-workflows-curing-context-pollution","Agentic Workflows: Curing Context Pollution",[11,137,138],{},"The biggest bottleneck in multi-agent workflows is context window bloat. If an autonomous agent needs to modify a component, but that component is tangled with global state and complex API calls, the agent has to load a massive, polluted dependency tree. This is exactly where models hallucinate and break existing logic.",[11,140,141],{},"When a codebase follows strict Atomic discipline, an agent's job becomes highly deterministic:",[84,143,144,155],{},[87,145,146,147,150,151,154],{},"If an agent is assigned to update a ",[118,148,149],{},"Molecule",", it only needs to read the specific ",[118,152,153],{},"Atoms"," it groups.",[87,156,157,158,161],{},"It does not need to know about the ",[118,159,160],{},"View"," or the database.",[11,163,164],{},"That 300 to 500-line file limit you enforce is the perfect chunk size for an LLM to process. It allows an agent to analyze and modify logic with near-perfect accuracy while keeping the blast radius of any generated code entirely localized.",[122,166,168],{"id":167},"vibe-coding-with-absolute-safety","Vibe Coding with Absolute Safety",[11,170,171],{},"Vibe coding relies on rapid, iterative prompting to achieve a specific aesthetic or layout feel. To do this effectively without destroying the application, the presentation layer must be entirely decoupled from the business logic.",[11,173,174,175,178,179,182],{},"Because the discipline forces ",[118,176,177],{},"Views"," to inject state into ",[118,180,181],{},"Templates",", the visual hierarchy remains completely stateless. You can point an AI at a frontend repository and tell it to radically redesign the layout, knowing with absolute certainty that the underlying data pipelines, automated version workflows, and deployment routes will remain completely untouched. The rigid structure gives the AI a safe, isolated sandbox to generate creative iterations.",[122,184,186],{"id":185},"synthesizing-complex-interfaces","Synthesizing Complex Interfaces",[11,188,189],{},"As we move toward spatial operating systems, dynamic digital environments, and decentralized webworks, frontend complexity scales exponentially. You cannot manually orchestrate interfaces at that scale. You need systems that synthesize themselves.",[11,191,192,193,195,196,199],{},"When components are genuinely reusable and boundaries are absolute, AI agents can dynamically assemble ",[118,194,181],{}," and ",[118,197,198],{},"Organisms"," on the fly based on real-time user intent. The discipline of Atomic Design becomes the foundational protocol that allows machines to build scalable, automated interfaces without constant human intervention.",{"title":35,"searchDepth":36,"depth":36,"links":201},[202,204,205,206],{"id":124,"depth":203,"text":125},3,{"id":134,"depth":203,"text":135},{"id":167,"depth":203,"text":168},{"id":185,"depth":203,"text":186},"Here's how Atomic Design usually gets implemented: someone names their folders atoms\u002F, molecules\u002F, and organisms\u002F, drops whatever they want in each, and calls it done.",{},"\u002Fposts\u002Fatomic-design-is-a-discipline",{"title":54,"description":207},"posts\u002Fatomic-design-is-a-discipline","Most teams adopt Atomic Design as a naming convention. That's not what it is. Here is why strict boundaries are the prerequisite for AI-driven development.",[214,215,216,217,218],"atomic-design","architecture","frontend","ai","agentic-workflows","_E6rwLdiikYdUqEdXcHW7vV-mgsdxdatMy04g0ZJGUc",{"id":221,"title":222,"body":223,"crosspost":38,"date":39,"description":227,"extension":40,"meta":249,"navigation":38,"path":250,"seo":251,"stem":252,"summary":253,"tags":254,"type":50,"__hash__":257},"posts\u002Fposts\u002Fcompass-an-app-platform-for-one.md","COMPASS: An App Platform for One",{"type":8,"value":224,"toc":247},[225,228,231,234,237,244],[11,226,227],{},"Every serious builder eventually hits the same wall: the tools you use don't talk to each other, your projects live in different mental contexts, and context-switching is where productivity goes to die.",[11,229,230],{},"COMPASS is my answer to that.",[11,232,233],{},"It's a personal app platform, a suite of internal tools built on a shared design system, a shared routing philosophy, and a shared data layer. Each tool (I call them Sparks) is its own focused thing: a CRM, a newsroom, a task system, an XP tracker. But they all speak the same language.",[11,235,236],{},"The philosophy is Atomic Design taken seriously. Atoms, Molecules, Organisms, Templates, Views, strict boundaries, no shortcuts. Each layer knows its job. Components don't reach above themselves. Files stay lean.",[11,238,239,240,243],{},"Most people would use Notion or Obsidian or Airtable and stitch them together with integrations. That works until it doesn't. I wanted something that fit ",[24,241,242],{},"my"," brain, the way I think about work, projects, priorities.",[11,245,246],{},"So I built it. It runs locally. It's never going down.",{"title":35,"searchDepth":36,"depth":36,"links":248},[],{},"\u002Fposts\u002Fcompass-an-app-platform-for-one",{"title":222,"description":227},"posts\u002Fcompass-an-app-platform-for-one","I built my own internal platform. Not because I had to, because the alternative was chaos.",[255,215,256],"compass","tools","YxcdjUSuKCgUAwXT25rS2u6Aq_axSM3EJCTx11FipRo",1783484035394]