<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Essays by Adit Agrawal</title>
    <link>https://nattyhatty.com/leadership/adit/writing</link>
    <atom:link href="https://nattyhatty.com/leadership/adit/writing/feed.xml" rel="self" type="application/rss+xml" />
    <description>On system design, operations, and the infrastructure sports will run on. Adit is the Co-Founder &amp; CEO of Natty Hatty.</description>
    <language>en-us</language>
    <managingEditor>Adit Agrawal</managingEditor>
    <lastBuildDate>Wed, 23 Sep 2026 13:00:00 GMT</lastBuildDate>
    <item>
      <title>Five Years Looking for One Person</title>
      <link>https://nattyhatty.com/leadership/adit/writing/five-years-looking-for-one-person</link>
      <guid isPermaLink="true">https://nattyhatty.com/leadership/adit/writing/five-years-looking-for-one-person</guid>
      <pubDate>Wed, 23 Sep 2026 13:00:00 GMT</pubDate>
      <dc:creator>Adit Agrawal</dc:creator>
      <description>Natty Hatty CEO Adit Agrawal on rebuilding a company's technical SEO himself with an AI coding assistant, and the rules that made it safe to ship.</description>
      <content:encoded><![CDATA[<p>For five years, I looked for one person.</p>
<p>Someone who understood search: how Google actually reads a page, why structured data matters, what makes one URL worth more than another. And someone who could open our codebase and change it.</p>
<p>I never found them.</p>
<p>I&#39;m trained as an engineer. My degrees are in industrial engineering and computer science, with minors in business, entrepreneurship and statistics. I could read every one of these problems and tell you exactly what was wrong. That&#39;s precisely what made it maddening. The constraint was never whether I understood the work. It was time. Doing it properly takes real hours, and those hours belong to running the company.</p>
<p>The specialists understood search but couldn&#39;t ship. The engineers could ship but had no reason to care about a meta description. The agencies would happily audit our site and hand me a PDF of recommendations that someone on my team would then have to implement, which put me back where I started.</p>
<p>The rare people who genuinely did both were priced like a small department. For a company at our stage, paying that to fix something that should have been right from the beginning was hard to justify.</p>
<p>So the work sat there. Year after year.</p>
<h2>What sitting there actually cost</h2>
<p>It&#39;s easy to treat SEO as something you get to eventually. The cost is invisible until you look directly at it.</p>
<p>When I finally did, here&#39;s what I found on our own site.</p>
<p>Our structured data told Google our platform had a price of zero, across seven different pages. Nobody wrote that on purpose. It came from a copied block of code that spread quietly from page to page. For years, the machine-readable version of our business said something none of us would ever say out loud.</p>
<p>This is technical debt. Not the kind engineers argue about in planning meetings, but the kind that quietly misrepresents your business to every search engine that visits.</p>
<p>A page that should have been one URL was another, with no way for anyone to find the right one. Long sections of our most substantial content sat inside interface elements that search engines couldn&#39;t read at all. And we had five years of blog posts on a separate subdomain that generated essentially nothing of commercial value.</p>
<p>None of these are exotic problems. Every one of them was fixable in a day by someone who knew what they were looking at.</p>
<p>That&#39;s the part that bothered me. Not that the problems were hard, but that they were easy and still didn&#39;t get solved, because the work fell into the gap between two job descriptions.</p>
<h2>Taking it back, with an AI coding assistant</h2>
<p>At some point the frustration stopped being productive, and I decided to do it myself.</p>
<p>Not by sitting down and writing it line by line, which would have taken weeks I didn&#39;t have. By directing the work: decide what needed to be true, have an AI agent write the change, review it against what I know, and hand it to my team as a finished pull request instead of a wish list.</p>
<p>In a matter of weeks, the backlog I&#39;d carried for five years was gone.</p>
<p>Structured data describing me and the company correctly, so a search engine understands who runs this business. The price-zero problem removed everywhere it had spread. The wrong URL retired properly. The unreadable content made readable. A content system that lets us publish guides without engineering time. And a writing section with its own publishing pipeline, which is how you&#39;re reading this essay.</p>
<p>Every one of those went to my engineering team the same way any other change does: as a pull request, reviewed, merged, and shipped on the normal release. Nobody&#39;s roadmap moved.</p>
<h2>The rules came first</h2>
<p>This isn&#39;t vibe coding. A live commercial site with customers on it is not a place to find out what the AI feels like building.</p>
<p>It only worked because I set the constraints before I set the AI loose.</p>
<p><strong>Plan before code.</strong> Every task started with investigation and a written plan. Nothing changed until I read it and said yes. That single rule caught more problems than any review of the finished work would have.</p>
<p><strong>Nothing changes without my approval.</strong> Not one file, not one line, not as a helpful extra.</p>
<p><strong>Pull requests only, never a deploy.</strong> The AI could propose. My team decides what ships. That boundary never moved.</p>
<p><strong>Only fix what we agreed to fix.</strong> No tidying, no &quot;while I was in there.&quot;</p>
<p>The AI wrote the code. Every decision about what should exist was still mine.</p>
<h2>Reviewing is the job</h2>
<p>The most useful thing I can tell another founder is that generating the work is the easy part. Judging it is the job.</p>
<p>More than once, the plan that came back was wrong. A proposal to fix something that turned out to be commented-out code that never ran. A finding that reversed itself under closer inspection. A build check that would have worked perfectly on my machine and silently done nothing in production.</p>
<p>Each of those was caught because someone read the plan and asked what would actually happen. That is where the engineering training earns its keep. You have to be able to follow what the code will really do, understand the business well enough to know which answers are unacceptable, and be stubborn enough to say no to a confident-sounding recommendation.</p>
<p>That skill isn&#39;t new. It&#39;s the same thing you do with any proposal from any team. What&#39;s new is how many proposals you can evaluate in a week.</p>
<h2>What this doesn't replace</h2>
<p>I want to be precise here, because this is where these stories usually get oversold.</p>
<p>I didn&#39;t replace my engineering team. They build the product, which is a vastly harder problem than a marketing site. Their review still gates everything. They deploy, and I don&#39;t.</p>
<p>I also didn&#39;t stop being the CEO. My engineering training is why I could review this work honestly, but reading pull requests is not what my week is for. The point was never to become the person doing the implementation. It was to stop that being the reason nothing happened.</p>
<p>And I&#39;d still hire the person I spent five years looking for. The difference is that not finding them is no longer a reason for the work to sit undone.</p>
<h2>What actually changed</h2>
<p>For most of my career, the distance between knowing what a company needs and having it built was measured in hiring cycles, budgets, and someone else&#39;s priorities.</p>
<p>That distance is shrinking fast. A founder who can specify clearly, set hard constraints, and review honestly can now close problems that used to require a hire they couldn&#39;t find or afford.</p>
<p>The bottleneck was never the code. It was translation, coordination, and waiting.</p>
<p>Five years of waiting ended in a few weeks of directed work. What I regret is the five years, not the weeks.</p>]]></content:encoded>
    </item>
    <item>
      <title>Every Facility Is Becoming a Fintech Company, Whether It Wants To or Not</title>
      <link>https://nattyhatty.com/leadership/adit/writing/every-facility-is-becoming-a-fintech-company</link>
      <guid isPermaLink="true">https://nattyhatty.com/leadership/adit/writing/every-facility-is-becoming-a-fintech-company</guid>
      <pubDate>Wed, 16 Sep 2026 13:00:00 GMT</pubDate>
      <dc:creator>Adit Agrawal</dc:creator>
      <description>Embedded finance is arriving in youth sports. Natty Hatty CEO Adit Agrawal on why facilities are already payments businesses, and what that costs them today.</description>
      <content:encoded><![CDATA[<p>Ask a sports facility owner what business they&#39;re in, and they&#39;ll tell you about their courts, their <a href="/leagues">leagues</a>, their training programs, or the families they serve.</p>
<p>Very few will say payments.</p>
<p>Then ask what they did this morning.</p>
<p>Chased an overdue balance. Refunded a registration. Checked whether a deposit came through. Tried to figure out which kid a payment belonged to.</p>
<p>A surprising amount of running a sports facility is making sure money gets where it is supposed to go.</p>
<p>The moment a facility takes a registration fee online, it takes on a set of responsibilities that look a lot like running a payments business. Collecting money is the beginning. Someone also has to manage what happens before it arrives, after it arrives, and when it doesn&#39;t.</p>
<p>Nobody opened a facility because they wanted to become good at reconciliation. But here we are.</p>
<h2>What a facility actually sells</h2>
<p>Think about what a facility actually sells.</p>
<p>A parent registers a child in February for a league that starts in April. They pay part now and the rest later. Before the season starts, they switch divisions. A sibling signs up with a discount. One session gets canceled. Part of the fee becomes a credit toward summer camp.</p>
<p>Every one of those changes has a financial consequence.</p>
<p>The registration, the roster, the payment plan, and the credit all describe different parts of the same relationship with that family. The operator has to keep them consistent.</p>
<h2>A checkout is not a season</h2>
<p>That is a different problem from taking a payment at a retail counter.</p>
<p>Facilities sell access to something that will happen later. Sometimes it happens repeatedly. Sometimes the person paying is buying for several people. Sometimes a team organizer pays a deposit and everyone else pays their share.</p>
<p>A successful checkout tells you that one transaction worked. It tells you almost nothing about whether the money for an entire season is taken care of.</p>
<h2>Where the work piles up</h2>
<p>A card fails on the second installment. Does the registration still show as fully paid? Does anyone get notified? Who follows up with the parent?</p>
<p>A player withdraws. Does removing them from the roster stop the remaining payments, or does someone have to remember to do that somewhere else?</p>
<p>A coach checks a player in. Can they see that there is an outstanding balance, or does that information live with the one person who knows how to pull the report?</p>
<p>These are ordinary situations. A facility should be able to handle them without an employee reconstructing the story across three systems.</p>
<h2>The coordination tax, priced in dollars</h2>
<p>In <a href="/leadership/adit/writing/complexity-is-a-failure-of-design">an earlier essay</a>, I called this the coordination tax: the work people do to keep disconnected systems moving together.</p>
<p>With payments, that tax shows up directly in the economics of the business.</p>
<p>It is the balance nobody follows up on because nobody sees it. The refund that takes several emails to resolve. The staff time spent matching deposits to registrations. The owner staying late to understand why the amount in the bank doesn&#39;t match what they thought they collected.</p>
<p>Some of the cost is missing revenue. Some is the time required to collect revenue that was already earned. And some is the damage to a customer relationship when a family has to explain the same billing issue to a different person.</p>
<p>A payment processing rate won&#39;t tell you any of that.</p>
<h2>What embedded finance actually means here</h2>
<p>In fintech, the term for this is embedded finance: financial services delivered inside the software a business already runs on, rather than as a separate product it has to integrate.</p>
<p>Most industries have already been through this. Ride-hailing, food delivery, and online marketplaces all stopped treating payments as a bolt-on and built them into the core of how the business works. Sports and recreation are arriving late, and the versions on offer are usually a processor attached to the side of a registration system.</p>
<p>Embedded payments in a facility should mean something more specific. A payment carries the context of what it is paying for. An installment stays connected to the registration. A refund is traceable to the original purchase. Staff can understand an outstanding balance without becoming experts in the payment processor.</p>
<p>When I think about the cost of payments, I think about the full path from someone deciding to register to the facility knowing the money is accounted for. How many times does a person have to intervene along that path? How many exceptions depend on someone remembering what happened?</p>
<p>That is the work good software should absorb.</p>
<h2>Money moves to where the activity is</h2>
<p>At Natty Hatty, this is why we think payments belong inside the operating system of the facility.</p>
<p>Our tap-to-pay capability is already in production. It is a simple example of the direction we believe this should go.</p>
<p>A facility&#39;s activity happens across the building. Staff are checking people in, answering questions, helping families, and keeping programs moving. Being able to take a payment where that interaction happens removes a reason to send someone back to a desk.</p>
<p>It is a small change in the payment experience, but it reflects a larger design principle: the financial part of an interaction should fit naturally into the work already happening.</p>
<p>Over time, I expect more of payments to work this way. The system will know what is owed, what it belongs to, and what needs attention. Operators will spend less time moving information between the financial side of the business and the people running the programs.</p>
<h2>What stays with the owner</h2>
<p>They will still make the judgment calls. Whether to offer a family more time to pay. Whether a cancellation deserves a refund. When an exception is the right thing to do.</p>
<p>Those decisions are part of running a community business. Software should give the owner enough context to make them well, then carry the decision through.</p>
<p>&quot;Every facility is becoming a fintech company&quot; sounds like a prediction about where the industry is going.</p>
<p>For the owner chasing a failed payment between games, it describes work they already do.</p>]]></content:encoded>
    </item>
    <item>
      <title>The Last League Anyone Will Build by Hand</title>
      <link>https://nattyhatty.com/leadership/adit/writing/the-last-league-anyone-will-build-by-hand</link>
      <guid isPermaLink="true">https://nattyhatty.com/leadership/adit/writing/the-last-league-anyone-will-build-by-hand</guid>
      <pubDate>Wed, 09 Sep 2026 13:00:00 GMT</pubDate>
      <dc:creator>Adit Agrawal</dc:creator>
      <description>Natty Hatty CEO Adit Agrawal on why AI agents will replace manual league setup, and why trust comes from getting the details right, not from a chat box.</description>
      <content:encoded><![CDATA[<p>Nobody starts a <a href="/leagues">sports league</a> because they love configuring software.</p>
<p>They start because their town needs a place to play. Because their daughter&#39;s team needs better competition. Because they believe they can build something people will want to come back to.</p>
<p>Then they open their laptop.</p>
<p>Create the season. Add the divisions. Set the age groups. Enter the fees. Build the registration form. Attach the waiver. Set up payments. Figure out the schedule.</p>
<p>Somewhere in that process, the person who wanted to build a sports community becomes a software administrator.</p>
<p>We have accepted this for a long time. We shouldn&#39;t have.</p>
<h2>A chat box is not the answer</h2>
<p>In <a href="/leadership/adit/writing/complexity-is-a-failure-of-design">my last essay</a>, I wrote that complexity is a failure of design. When an operator has to carry the context, remember the exceptions, and tell the system what to do at every step, the software is leaving too much work unfinished.</p>
<p>AI gives us an opportunity to finish more of that work.</p>
<p>But most of the industry is aiming too low. The easy move is to put a chat box next to the same old forms and call it AI. The operator still does the translating. They just type it into a different box.</p>
<p>That isn&#39;t the shift. The shift is software that takes on the work itself.</p>
<p>What has changed is that software can now understand intent expressed in plain language. And a platform that already holds the registrations, payments, schedules, and rules has the context to act on that intent, not just record it.</p>
<h2>Every setting is a translation problem</h2>
<p>For years, sports software has followed a familiar pattern. An operator needs something. We add a setting. Another operator has a slightly different need. We add another setting.</p>
<p>Each addition makes sense on its own.</p>
<p>Eventually, building a league means understanding how dozens of settings interact. The operator knows what they want to run. Now they have to learn how the software wants it described.</p>
<p>That translation is work.</p>
<p>A registration fee might affect payment options. An age group might affect eligibility. A venue limitation might change the entire schedule. The operator becomes the person connecting all of it.</p>
<p>More features can help. They can also give that person more things to connect.</p>
<h2>Describe the league, review the result</h2>
<p>The shift I care about is what happens when software can take on that translation.</p>
<p>An operator should be able to say:</p>
<p>&quot;I&#39;m running a six-week youth basketball league. Three age groups. Games on Saturdays. Registration is $150, and families need an option to split the payment.&quot;</p>
<p>That should be enough to get the work started.</p>
<p>The system should use the information it has, ask for what is missing, and produce something the operator can review.</p>
<p>There will still be decisions. There will still be exceptions. But the operator should spend their time on those decisions instead of entering the same information in five places.</p>
<h2>Where we are today</h2>
<p>That is the direction we are building toward at Natty Hatty.</p>
<p>We are building Arya into the checkout builder so a customer can describe the checkout they need in a conversation and have the system build it.</p>
<p>The scope matters here. A checkout is a specific piece of work. Creating and running an entire league is a much bigger ambition.</p>
<p>The checkout work is a step toward that ambition. It is not evidence that we have already arrived.</p>
<h2>Trust is earned in the details</h2>
<p>Even within a checkout, the standard has to be higher than generating something that looks right. Fees need to be correct. Payment terms need to match what the operator intended. Missing information needs to trigger a question, not a confident guess.</p>
<p>An agent earns trust by getting the details right and making its work easy to check.</p>
<p>That is how this expands: useful work, a clear review, and more responsibility as the system proves itself.</p>
<p>The longer-term goal is for customers to create and run leagues by talking with Arya. To describe what they want to accomplish, work through the decisions, and let the system handle more of the setup and follow-through.</p>
<h2>What stays human</h2>
<p>The human responsibility does not disappear.</p>
<p>Someone still has to decide whether a league is affordable for its community. Whether an exception is fair. Whether a parent needs a conversation. Whether a competitive division is actually serving the kids in it.</p>
<p>Those decisions require judgment and relationships. Automating the administration should give operators more room for both.</p>
<h2>A prediction</h2>
<p>By the end of 2028, describing a league and reviewing a system-built setup will be a normal expectation in sports software.</p>
<p>Operators will still make the important calls. But manually configuring every division, fee, form, and rule will increasingly feel like doing work the system should already know how to do.</p>
<p>The title of this essay is a prediction, too. Somewhere, an operator is building their last league by hand.</p>
<p>They probably don&#39;t know it yet.</p>]]></content:encoded>
    </item>
    <item>
      <title>Complexity Is a Failure of Design</title>
      <link>https://nattyhatty.com/leadership/adit/writing/complexity-is-a-failure-of-design</link>
      <guid isPermaLink="true">https://nattyhatty.com/leadership/adit/writing/complexity-is-a-failure-of-design</guid>
      <pubDate>Wed, 02 Sep 2026 13:00:00 GMT</pubDate>
      <dc:creator>Adit Agrawal</dc:creator>
      <description>Complexity is mistaken for sophistication. Natty Hatty CEO Adit Agrawal on why it's evidence a system was never finished, and how to design it out.</description>
      <content:encoded><![CDATA[<p>Complexity is usually mistaken for sophistication.</p>
<p>The bigger the company, the more processes it has. The more powerful the software, the more settings it needs. The more advanced the operation, the more people it takes to run.</p>
<p>We&#39;ve learned to accept this as the price of doing anything serious. I don&#39;t think we should. Complexity is more often evidence that we stopped designing the system before we finished.</p>
<p>The measure of a sophisticated system isn&#39;t how much it can make you do. It&#39;s how much it can do without you.</p>
<h2>Complexity accumulates quietly</h2>
<p>Most systems don&#39;t start complicated. They become complicated one reasonable decision at a time.</p>
<p>A customer has a problem, so we add a feature. A team needs an exception, so we add a rule. Something goes wrong, so we add an approval. Information isn&#39;t available, so we add a report. Two systems don&#39;t talk to each other, so we put a person between them.</p>
<p>Every individual decision makes sense. Eventually the system as a whole doesn&#39;t.</p>
<p>More buttons. More settings. More documentation. More training. More dashboards. More people whose actual job is moving information from one place to another.</p>
<p>The problem isn&#39;t that each addition was wrong. The problem is that nobody went back and questioned the system itself.</p>
<h2>Sports organizations are where this is easiest to see</h2>
<p>I spend my time inside sports operations, and they&#39;re a near-perfect case study in accumulated complexity.</p>
<p>Registration lives in one place. Payments in another. Scheduling somewhere else. Teams, documents, commerce, communication — each in its own system, each of them working exactly as designed.</p>
<p>And the organization still runs inefficiently.</p>
<p>Consider what happens when a family registers a child for a fall program. Someone confirms the payment cleared. Someone checks whether the waiver was signed. Someone assigns the athlete to a team. Someone updates the roster the coach is working from. Someone makes sure the facility schedule reflects the new headcount. Someone emails the parent what happens next. When the family later changes a phone number, most of those systems never find out.</p>
<p>Nothing here is difficult. Every step takes a few minutes. Multiply it across a season and an organization has quietly built a full-time job out of copying information between products that should have known about each other from the start.</p>
<p>The real complexity doesn&#39;t live inside any of those products. It lives in the space between them.</p>
<h2>Inherited processes disguise themselves as requirements</h2>
<p>When something becomes complicated, the instinct is to improve what already exists. Make the process faster. Improve the interface. Automate a few steps. Add another integration.</p>
<p>All of that assumes the existing process is fundamentally correct.</p>
<p>First-principles thinking starts somewhere else. Strip the problem down to what must actually be true. What are we trying to accomplish? What is genuinely required? Which constraints are real, and which exist only because of decisions someone made years ago? Which steps would we never create if we were designing this today?</p>
<p>That last question does most of the work, because inherited processes are very good at looking like requirements.</p>
<p><em>We need this approval.</em> Why? <em>Because finance needs this report.</em> Why? <em>Because they need information from another system.</em> Why isn&#39;t that information already available?</p>
<p>Keep going and you usually find that the workflow isn&#39;t solving the original problem at all. It&#39;s solving problems created by the architecture around the problem.</p>
<p>That&#39;s the moment redesign becomes possible.</p>
<p>Some complexity is necessary. Real systems operate under real constraints. But &quot;that&#39;s how we&#39;ve always done it&quot; isn&#39;t a constraint. It&#39;s history. And history shouldn&#39;t get to dictate architecture.</p>
<h2>The best workflow is the one that doesn't exist</h2>
<p>Imagine a process with twelve steps. You could spend months making every step faster: better interfaces, fewer clicks, automated notifications, AI assistance. Maybe you cut the time in half. That&#39;s genuinely valuable.</p>
<p>But there&#39;s a better question. Do all twelve steps need to exist?</p>
<p>If eight can be removed entirely, you haven&#39;t built a faster workflow. You&#39;ve built a smaller problem.</p>
<p>This is the principle I keep returning to, and it&#39;s the one most often skipped: never optimize something before proving it deserves to exist. Once a process becomes fast, people stop asking why they&#39;re doing it.</p>
<p>The same trap sits inside automation. Automation doesn&#39;t automatically produce good systems — it can just as easily make a bad system run faster. If five approvals aren&#39;t necessary, automating five approvals doesn&#39;t fix anything. If employees spend their days moving information between two systems, an integration helps, but the deeper question is why those systems were ever disconnected. If customers need a tutorial to complete a basic action, the interface is wrong.</p>
<p>So before automating anything, I ask three questions in order:</p>
<p>Does this need to happen? If it does, does a person need to make it happen? And if a person does, what&#39;s the minimum effort we should require from them?</p>
<p>Only then is automation the right tool. Otherwise we&#39;re using technology to preserve complexity instead of removing it.</p>
<h2>Every handoff is a coordination tax</h2>
<p>Complexity doesn&#39;t only live in interfaces. It lives in dependencies.</p>
<p>A customer changes their information. One system knows. Another doesn&#39;t. An employee spots the discrepancy and updates the second system. Someone gets an email. A spreadsheet changes. Another department eventually hears about it.</p>
<p>Technically, everything worked. Architecturally, something is wrong.</p>
<p>Every manual handoff is another opportunity for delay, misunderstanding, and failure. I call this the coordination tax. It doesn&#39;t appear on any budget line, which is exactly why it goes unexamined for years. It shows up instead as headcount, as slow response times, as the vague sense that everything takes longer than it should.</p>
<p>The clearest sign of poor system design is when people exist primarily to connect processes. Download this file. Upload it there. Copy this number. Email that department. Check whether they replied. Update the spreadsheet. Change the status. Notify the customer.</p>
<p>None of these actions are difficult. That&#39;s precisely why they survive. But thousands of tiny actions compound into enormous operational friction, and nobody can point to the moment it became a problem.</p>
<p>Humans are extraordinary at judgment, creativity, relationships, and decisions where the answer isn&#39;t obvious. Humans are an extraordinarily expensive way to move structured information from one database to another.</p>
<p>Information should move because the system understands where it belongs, not because someone remembered to move it. People shouldn&#39;t compensate for architecture. Architecture should enable people.</p>
<h2>Complexity belongs inside the system</h2>
<p>Simplicity gets misunderstood. Simple doesn&#39;t mean basic. It doesn&#39;t mean stripping out powerful capability, and it doesn&#39;t mean software that only works for simple businesses.</p>
<p>Some of the best-designed systems in the world are extraordinarily complicated underneath. The difference is that the user never has to manage that complexity.</p>
<p>Think about turning on a light. Behind that switch sits power generation, transmission, distribution, transformers, decades of electrical engineering, and countless safeguards. You think about none of it. You flip a switch.</p>
<p>The complexity didn&#39;t disappear. The system absorbed it.</p>
<p>That distinction is fundamental to how I build: complexity belongs inside the system, not on the user. The sophistication should be underneath. The simplicity should be what people experience.</p>
<p>The same principle applies to edge cases. It&#39;s tempting to accommodate everything: an option for this, a setting for that, a toggle for the unusual scenario. Eventually most users are navigating complexity built for a small minority of situations. Edge cases matter, but they shouldn&#39;t define the experience. The normal path should be obvious, and the system should absorb as much of the exception as it safely can. If a user has to understand the entire architecture to accomplish one task, we&#39;ve transferred the designer&#39;s job to the user.</p>
<h2>Scale reveals architecture</h2>
<p>There&#39;s a common belief that complexity is simply the price of growth. I disagree. Scale usually reveals complexity that was already there.</p>
<p>A process requiring five minutes of manual work doesn&#39;t feel broken when it happens twice a week. When it happens twenty thousand times, you suddenly need a department.</p>
<p>The natural response is to hire. Sometimes that&#39;s right. But there&#39;s a question worth asking first: why does this require a person at all?</p>
<p>If every increase in volume demands a proportional increase in operational effort, the system isn&#39;t creating leverage. It&#39;s creating a larger operation. Good systems behave differently — volume can rise dramatically without effort rising at the same rate. That&#39;s one of the fundamental promises of technology, and most software quietly fails to deliver it.</p>
<h2>The system should know more</h2>
<p>For decades, software has mostly waited for instructions. Click this. Select that. Enter this. Confirm. Save. Submit. Repeat.</p>
<p>But systems increasingly have context. They know what happened previously. They understand relationships between information. They hold permissions, schedules, transactions, dependencies, and history. For the first time, AI makes it practical for systems to act on that context, not just store it.</p>
<p>That changes what software can be. Instead of only asking <em>what did the user tell the system to do</em>, we can ask <em>what should happen next</em>. If the answer can be determined safely and confidently, the system should handle it.</p>
<p>Go back to that fall registration. A registration shouldn&#39;t only create a registration. The system should understand what the registration means. Who registered. What they purchased. What program they&#39;re joining. What&#39;s owed. What needs signing. Where they need to be. Who needs to know. What happens next.</p>
<p>Those aren&#39;t eight unrelated workflows. They&#39;re consequences of a single event. The architecture should understand that.</p>
<p>This is why the future of sports technology isn&#39;t more software. It&#39;s infrastructure — a layer organizations operate on rather than manage.</p>
<p>The ultimate interface may not be a better dashboard. It may be needing the dashboard less often.</p>
<h2>Subtraction is harder than addition</h2>
<p>Adding something is easy. Removing something requires understanding.</p>
<p>You need to know why it exists. What depends on it. What breaks without it. Whether another part of the system can absorb its responsibility.</p>
<p>That&#39;s why simplicity is difficult. It demands going deeper than the interface — you have to understand the architecture well enough to remove complexity without removing capability.</p>
<p>The goal isn&#39;t minimalism. The goal is maximum capability with minimum unnecessary effort. That&#39;s a much harder standard.</p>
<p>The world isn&#39;t becoming less complicated. Businesses aren&#39;t getting simpler, sports organizations aren&#39;t getting simpler, and the systems underneath all of it will keep getting more sophisticated. That&#39;s inevitable. But sophistication and complexity aren&#39;t the same thing.</p>
<p>The job of good architecture is to absorb the sophistication and shield people from the complexity. When that happens, organizations don&#39;t just get faster. They get easier to run. People spend less time managing systems and more time doing work that actually requires a person. Customers never see the machinery. And growth stops requiring another layer of operational friction.</p>
<p>That&#39;s the standard I&#39;m building toward.</p>]]></content:encoded>
    </item>
  </channel>
</rss>
