Cybernetic Development

There is a widening gap in the world of AI software development. On one side, you have the "Vibe Coders": enthusiastic experimenters who can prompt a prototype into existence in minutes. They ride the wave of LLM generation, treating code like a disposable medium. It feels like magic. It feels fast. But all too often, it hits a wall—the "it runs on my machine" prototype that collapses under the weight of edge cases, security reviews, and maintenance realities.
On the other side, there is a different class of developer. These were often the "10x developers" of the pre-AI era—the ones who obsessed over architecture, testing, and maintainability. They haven't been replaced by AI; they've become 100x developers.
They aren't just "coding faster." They are applying the hard-won lessons of the last 80 years of software engineering to a new, higher level of abstraction. They don't just prompt; they govern.
More importantly, they decide what code should exist at all: what problems to solve in code, what problems to solve in process, and what problems to eliminate instead of "fix."
This represents a cybernetic approach to development.
Retrieving "Cybernetics" from the 90s
The word "cyber" got dragged through the mud in the 90s. It became a prefix for everything on the "Information Superhighway," evoking images of bad CGI hackers and leather trench coats. Before that, science fiction used it for cyborgs—part man, part machine.
But beneath the "cyber-washing" lies a powerful, practical concept.
Coined by Norbert Wiener in 1948 from the Greek kybernētēs (steersman), cybernetics is simply the study of two systems interacting to steer a course.
A cybernetic system has two distinct parts:
- The Engine: The force that drives the system forward (Energy).
- The Governor: The feedback loop that steers the engine (Information).
The Glass Cockpit Problem: A Warning from Aviation
Before we go further, we need to understand the risk of pure automation. Aviation teaches us a critical lesson through what's called the "Glass Cockpit" problem.
As planes became fully automated with "fly-by-wire" systems, pilots spent 99% of their time monitoring systems rather than flying. The automation worked beautifully—until it failed. When it did, pilots had lost their "stick-and-rudder" skills and couldn't recover the plane.0
This isn't an argument against automation. It's an argument for cybernetic systems: automation paired with skilled governance. The pilot doesn't need to hand-fly every leg, but they must maintain the ability to override when the autopilot fails. They must understand the primitives underneath the abstraction.
The same applies to AI coding. If AI does 99% of the work, the human developer risks losing their fundamental skills—what we'll call Primitive Fluency. The cybernetic developer maintains this fluency not to replace the AI, but to steer it effectively and recover when it hallucinates.
The Human Brain as Cybernetic System
This cybernetic structure mirrors the human brain itself. As Daniel Kahneman described in Thinking, Fast and Slow, we operate with two systems. System 1 is fast, intuitive, and emotional (the Engine). System 2 is slow, deliberate, and logical (the Governor).0
We are cybernetic systems. And now, we are externalizing that structure into our software development.
- Vibe Coding (LLMs) is the externalized System 1. It is pure intuition, pattern matching, and "vibes." It provides raw, explosive generative power.
- Engineering Discipline (BDD/TDD) is the externalized System 2. It provides the logic, constraints, and verification that the AI lacks.
The 100x developer isn't just shoveling coal into the engine; they are designing the System 2 structure to govern the System 1 chaos.
Even Andrej Karpathy, who coined the term "vibe coding" in early 20250, recognized this shift just a year later. Reflecting on the concept's anniversary, he noted that while vibe coding started as a way to build "fun throwaway projects," the industry quickly moved toward something more rigorous. He called it "Agentic Engineering"—where you claim the leverage of agents without compromising on quality.0
Karpathy's "Agentic Engineering" confirms the core thesis of a cybernetic approach to development. It validates that the future of software isn't about writing code; it is about steering it.
The Great Divergence: Guardrails vs. Razor Blades
We are witnessing a divergence in the software world. On one path, teams are adopting tools like Clawdbot—systems that give an AI agent full access to the file system and network by default. It's intoxicating. It's also how you manufacture AI Slop: brittle, insecure software that collapses under its own weight.
AI Slop is uncoordinated debt. In the old world, software decisions were slow, collaborative, and political (in a good way). Humans sat in breakrooms, overheard conversations, and aligned their code with the messy reality of the business. Bugs were caught early because context was shared.
AI doesn't sit in the breakroom. It has no context outside its prompt. It optimizes for the narrow task, not the organizational reality.
When you combine this lack of context with lightning speed, you get a massive Blast Radius of Misalignment. A single hallucinated design choice or leaky abstraction can propagate into hundreds, or even thousands of files overnight. Instead of shifting left to catch bugs early, we are generating them at scale instantly.
From Bugs to Organizational Accidents
In the pre-AI world, many failures looked like bugs: a wrong condition, a missing null check, an off-by-one. They were local, deterministic, and relatively reproducible.
In multi-agent development, failures start to look like operations. They emerge from interactions: handoffs between agents, partial context, racing changes, misaligned incentives, and assumptions that hold in CI but fail in production. You can have immaculate unit tests and still ship a latent condition, because the failure doesn't live in any single function. It lives in the system.
Safety researcher James Reason studied what he called organizational accidents: disasters that don't come from one dramatic mistake, but from many small weaknesses that quietly accumulate until they collapse into failure. His Swiss Cheese model describes safety as layers of defense, each imperfect, each with holes. Accidents happen when the holes line up across layers.0
Reason also distinguished between:
- Active failures: the visible mistakes at the sharp end (a pilot error, a wrong button, a missed checklist).
- Latent conditions: the invisible system decisions that make those mistakes likely (training gaps, bad incentives, missing safeguards).0
In agentic software, hallucinated imports and broken edge cases are active failures. But "give the agent full filesystem + network and hope" is a latent condition. So is merging without CI gates. So is shipping without canaries. So is optimizing for a metric that can be gamed.
The cybernetic developer's job is to engineer the cheese: defense in depth that assumes the agent will be wrong sometimes—and makes it hard for a wrong thing to become a catastrophic thing.
Jevons Paradox: The Code Explosion
Here's the darker twist: as AI makes code generation dramatically cheaper and faster, we face a counterintuitive risk. In 1865, economist William Stanley Jevons observed that as steam engines became more efficient with coal, coal consumption didn't go down—it went up, because steam engines became useful for more things.0
This is Jevons Paradox: improving efficiency increases total consumption rather than reducing it.
In the AI era, code is the new coal. As AI makes code generation nearly free, we won't write less code; we will write exponentially more. We will drown in features, microservices, and "ideas." Every vague impulse becomes a thousand lines of generated code.
The Death of Reuse and the PyTorch Moment
This abundance creates a dangerous dynamic: the Death of Reuse. Why spend time learning an existing library when you can just prompt the AI to generate a new implementation instantly? Why contribute to shared infrastructure when custom code is free?
History shows us the value of the opposite approach. Consider the collaborative infrastructure projects that transformed entire industries:
- Linux (1991): Instead of everyone writing their own operating system, Linus Torvalds created a collaborative kernel that now runs most of the internet.
- Apache HTTP Server (1995): A community-driven web server that powered the early web's growth.
- Git (2005): Linus Torvalds again, creating distributed version control that enabled modern collaborative development.
- PyTorch (2016): Facebook's (Meta's) open-source deep learning framework that unified the AI research community. Before PyTorch, every lab was writing custom tensor libraries. PyTorch provided a shared, high-quality foundation that accelerated everyone's work.
These are "PyTorch Moments"—where the industry realizes that shared, high-quality infrastructure is more valuable than a thousand fragmented implementations.
But cheap AI code generation threatens to reverse this progress. Instead of building cathedrals together, we risk building a million shoddy favelas—each slightly different, each needing separate maintenance, each hiding unique bugs.
The Backward-Compatibility Trap
The problem compounds when you realize that AI-generated duplication is structurally different from the copy-paste duplication of the pre-AI era.
When a human copy-pasted code in 2015, it was obvious duplication. You could grep for it. You could refactor it. Most importantly, it was identical duplication—if you fixed a bug in one place, you knew exactly where else to look.
AI-generated duplication is semantic duplication with syntactic variance. The AI writes the same logic five different ways:
- File A uses a
forloop with manual iteration - File B uses
Array.map()with a lambda - File C uses recursion
- File D uses a helper function named
processItems() - File E uses a generator with
yield
All five implementations do the same thing. But they look different enough that traditional deduplication tools fail. You can't grep your way out. The duplication is invisible until you're drowning in it.
Worse, this creates a backward-compatibility nightmare. Imagine you discover a security vulnerability in the logic. In the pre-AI world, you'd fix it in the shared library, and every consumer gets the patch. In the AI world, you now have to:
- Find all the variants (good luck—they don't look alike)
- Manually patch each one (because they're subtly different)
- Verify each patch (different structure = different test surface)
- Deploy them all (hope you didn't miss any)
This is why security patches for AI-generated codebases will become exponentially harder. A bug that used to require one fix now requires N fixes, where N is the number of times the AI independently "solved" the same problem.
The Snowball Effect: From Duplication to Divergence
It gets worse. Once you have semantic duplication, the implementations begin to diverge.
- Team A's variant gets a performance optimization
- Team B's variant gets a logging feature
- Team C's variant gets an error-handling improvement
Now you don't just have five copies of the same logic—you have five competing implementations, each with unique features and bugs. Merging them back together is no longer refactoring; it's archaeological excavation.
This creates a snowball effect:
- Duplication (AI generates similar logic in multiple places)
- Divergence (each copy evolves independently)
- Lock-in (migrating to shared code becomes too expensive)
- Fragmentation (the codebase fractures into incompatible islands)
At this point, you can't fix the problem—you can only rewrite the system from scratch. Which the AI will happily do, generating a fresh batch of semantic duplication for the next cycle.
The 100x vs. Vibe Coder Divide
This is where the gap between 100x developers and Vibe Coders becomes unbridgeable.
The Vibe Coder treats every problem as a fresh prompt. They don't think about reuse because they don't think about systems. Each feature is a one-shot generation. When they need authentication, they prompt: "Build me a login system." When they need a second login system (maybe for an admin panel), they prompt again: "Build me an admin login system." The AI happily generates two independent implementations.
Six months later, they have 47 different authentication flows, each with subtly different session management, each with unique security properties, each a liability.
The 100x developer enforces reuse as a governance constraint. Before allowing the AI to generate new code, they ask:
- "Does this logic already exist somewhere?"
- "Can we extend an existing module instead of creating a new one?"
- "If we must create something new, can we extract and unify the existing variants first?"
They use the AI not just to write code, but to hunt for duplication. They prompt: "Analyze these five files and tell me if they're solving the same problem. If so, extract a shared abstraction."
This is the difference between generating code and governing a system. The Vibe Coder is sprinting toward duplication hell. The 100x developer is building a cathedral—or at least preventing a favela.
The only way to survive Jevons Paradox is to artificially constrain the supply. The cybernetic developer fights this entropy by strictly limiting what is allowed to exist. They use the Governor to say "No" to the infinite supply of slop. They understand that in a world of free generation, the scarcest skill is curation.
On the other path, we have the cybernetic developers. They understand that the best AI solutions put guardrails around the agents. They use containerized sandboxes, deny network access by default, and provide only the tools the agent absolutely needs.
The Evolution of the Interface
To understand this shift, we have to look at the history of how humans talk to machines. Computer programmers have followed a consistent pattern for more than 80 years: moving their thought processes to higher and higher levels of abstraction.
-
Machine Code: We started by toggling switches and writing binary.
01010101 00101010 11010101 -
Assembler: We moved to mnemonics that mapped directly to the hardware.
MOV AX, 1 ADD AX, 2 -
High-Level Languages: We abstracted the hardware away to write in logic.
int result = 1 + 2; -
Very High-Level Languages: Languages like Ruby pushed the abstraction further, aiming for "pseudocode" readability.
result = 1 + 2 -
Gherkin & Behavior Specification: We are now moving to the next layer—describing what the system does, not how it does it, in structured English phrases.
Given I have the number 1 When I add 2 Then the result should be 3
The interface is no longer the syntax tree; it is the Behavior Specification (Gherkin).
"Vibe coding" is effectively a behavior specification: You tell the AI assistant what behavior you want. But the 100x gurus know the power of recording those specifications as executable, repeatable code that pairs hand-in-hand with the functional code.
Treating specifications as "tests" is the wrong mental model. In this new world, functional code is a generated artifact of the specifications. The specifications truly come first.
This used to be a pedantic, unrealistic ideal. Even religious practitioners of BDD rarely wrote specs first or achieved 100% test coverage because the friction was too high. But AI has removed that friction. If you just think about how fast you can make a prototype by vibe coding it on a Tuesday night, you are missing the huge part of what has changed.
Gherkin sits at the perfect intersection for this moment: it is structured enough to be a rigorous constraint (Given/When/Then), but it is natural enough to be the native tongue of an LLM.
- For the Human: It allows you to define strict boundaries without getting lost in implementation details.
- For the AI: It provides clear, unambiguous instructions in the language it understands best (English), which it can then translate into the language it executes best (Code).
This shift explains why a cybernetic approach to development is necessary now. When you operate at Level 5 (Intent), the "how" becomes invisible. You need a new mechanism to verify that the generated code actually matches the intent. That mechanism is the cybernetic loop.
The Principles of Cybernetic Development
The secret of the new 100x developer is that they are more disciplined than their predecessors, not less. When code is generated "under the hood," the risk of rot increases. You can no longer rely on scanning every line with your eyes. You need agents and systems to do it for you.
Here is how the core principles of Agile and Software Engineering apply when the implementation is invisible.
1. The Mirror of the Mind: Clarity of Thought
Conway's Law states that software reflects the communication structure of the team that built it. In AI development, the "team" is often just You + The Swarm.
Therefore, the software will purely reflect the clarity of your thought.
If your Gherkin specs are fuzzy, the code will be hallucinated garbage. Vibe coding hides fuzzy thinking behind lucky generations. Cybernetic development forces clear thinking. The "100x developer" isn't a better coder; they are a clearer thinker.
This is why articulation—the ability to precisely describe what you want—becomes the fundamental skill. Not syntax. Not algorithms. Articulation. The AI can translate your clear intent into any language. But if your intent is muddy, no amount of generation will save you.
Your specifications are a mirror. What you see in the generated code is what you actually specified, not what you thought you specified. The cybernetic loop forces you to confront this gap and close it.
2. Problem Elimination: The Cheapest Bug is the Code You Never Write
Before we discuss how to build systems correctly, we must discuss what to build at all.
In traditional development, this principle was captured by YAGNI (You Ain't Gonna Need It). But cybernetic development demands a sharper formulation: It's always better to eliminate a problem than to solve it.
The cheapest bug is the branch you never wrote. The most maintainable feature is the one you deleted. The safest permission is the one you never granted.
When AI can generate a microservice architecture for your to-do app in minutes, the temptation to over-engineer becomes overwhelming. The AI will happily oblige, creating a monstrosity of complexity. Your job as the Governor is to say "No."
This principle connects directly to Reason's model of organizational accidents. When a system is too complex to fully anticipate all failure modes, you don't just "test harder" forever. You:
- Delete features that aren't pulling their weight
- Remove configuration knobs that create dangerous states
- Choose boring, well-understood architectures over clever ones
- Reduce coupling and degrees of freedom
Each deletion doesn't just save maintenance cost—it eliminates entire categories of failure. It reduces the number of "states" the system can be in, making it fundamentally more governable.
This is how you respond to the glass cockpit problem in software: you reduce the cockpit's complexity until a human can meaningfully monitor it.
3. Technical Excellence & 100% Test Coverage (Continuously Improve)
"Continuous attention to technical excellence and good design enhances agility." — Agile Manifesto
In the old world, 100% test coverage was often a fool's errand. It yielded diminishing returns. But in a world where an AI writes the implementation, 100% coverage becomes the baseline requirement.
If the code isn't covered by a test (or a behavior spec), it effectively doesn't exist. It is non-deterministic matter. You can configure your agents and linters to treat untested code as an error.
- Then: "We have 80% coverage, that's good enough."
- Now: "The agent cannot merge this PR because coverage dropped to 99.8%."
But coverage is a floor, not a shield. You can cover every line and still miss the thing that breaks in production: the bad assumption, the untested integration boundary, or the multi-agent coordination failure. In agentic systems, the visible "bug" is often just the last hole that lined up.
So yes: enforce coverage. But demand meaningful coverage. Prefer behavior specs, invariants, and regression tests derived from real incidents over tests that exist only to satisfy a number.
This aligns with our core value: Continuously Improve. You mitigate the risk of rapid change by making lots of small, verifiable changes—and by turning every failure into a new constraint the system must respect.
4. Defense in Depth & Operational Feedback (Engineer the Swiss Cheese)
In a world of multi-agent systems, the failure patterns start to resemble organizational accidents more than traditional software bugs. Many of the scariest failures are latent conditions: missing safeguards, oversized blast radii, ambiguous specs, and incentives that reward the wrong thing.
The lesson of the Swiss Cheese model is not "write better code." It's build layers of defense, then continuously patch the holes.
A cybernetic developer builds Governors at multiple layers:
- Tool Governors: Sandboxes, least-privilege permissions, and explicit tool access so agents can't accidentally turn a small mistake into a repo-wide incident.
- Merge Governors: Linting, type checks, unit tests, integration tests, and security checks that block bad changes before they land.
- Release Governors: Staging, canary deploys, feature flags, and automatic rollback so production becomes a measured experiment, not a leap of faith.
- Runtime Governors: Rate limits, timeouts, circuit breakers, validation, and kill switches that keep failures bounded.
- Learning Governors: Blameless postmortems and incident reviews that feed new tests, new specs, new guardrails—or sometimes a hard simplification that eliminates the failure mode entirely.
This is where 100x judgment lives. When a system fails, the question isn't only "What code do we change?" It's "What layer should absorb this next time?" Sometimes the right fix is a unit test. Sometimes it's changing the spec. Sometimes it's removing agent permissions. Sometimes it's deleting the feature.
This layered defense approach also helps us manage Ashby's Law of Requisite Variety: a Governor can't reliably control a system that has more "states" than it can represent.0
If your AI Engine can generate a thousand variants overnight, your Governor must either:
- Match that variety (more specs, more checks, more layers of defense), or
- Reduce it (simplify, standardize, delete degrees of freedom)
The cybernetic developer does both. They build comprehensive defense layers (matching variety) while aggressively simplifying the system's state space (reducing variety). Each deleted feature, each removed configuration option, each architectural constraint makes the system more governable.
5. Gherkin: The Language of the Governor
This isn't a new idea. In 2006, Dan North introduced Behavior-Driven Development (BDD) to solve the confusion around TDD.0 He realized that talking about "tests" confused people, but talking about "behavior" clarified intent. He introduced Gherkin—the Given-When-Then syntax—to make specifications readable by humans (stakeholders) but executable by machines.
For years, BDD was a "nice to have" bridge between product managers and engineers. In the AI era, it is becoming the primary source code.
Why? Because BDD is the perfect language for an AI agent.
- It is human-readable: You can audit the AI's understanding without reading the implementation code.
- It is machine-executable: It serves as a strict test that the AI cannot fake.
- It is behaviorist: It cares only about the output, effectively treating the AI-generated implementation as a black box (a "Skinner box" for code).
When you are the Governor, you might not look at the implementation code at all. You interact primarily through language. Gherkin allows you to capture that language—your intent—and turn it into an executable contract.
From Vague to Precise: A Login Example
Consider how a Vibe Coder might specify authentication:
"Build me a login system that's secure."
This vague prompt leaves enormous room for hallucination. What does "secure" mean? Password requirements? Rate limiting? Session management? The AI will make hundreds of micro-decisions based on pattern matching, not your actual requirements.
A cybernetic developer writes Gherkin specifications that eliminate ambiguity:
Feature: User Authentication
Scenario: Successful login with valid credentials
Given a user exists with email "alice@example.com" and password "Secret123!"
When the user submits login credentials with email "alice@example.com" and password "Secret123!"
Then the login should succeed
And a session token should be returned
And the session should expire after 24 hours
Scenario: Failed login with invalid password
Given a user exists with email "alice@example.com" and password "Secret123!"
When the user submits login credentials with email "alice@example.com" and password "WrongPassword"
Then the login should fail
And an error message should indicate "Invalid credentials"
And no session token should be returned
Scenario: Account lockout after multiple failed attempts
Given a user exists with email "alice@example.com"
When the user submits invalid login credentials 5 times
Then the account should be locked
And subsequent login attempts should fail with "Account temporarily locked"
And the account should unlock after 30 minutes
Scenario: Password requirements enforcement
Given a new user is registering
When the user submits a password "weak"
Then registration should fail
And an error should indicate "Password must be at least 8 characters with uppercase, lowercase, and numbers"
Notice what this achieves:
- Eliminates Ambiguity: "Secure" becomes concrete requirements (lockouts, expiration, validation).
- Documents Business Logic: The specs capture institutional knowledge that would otherwise live in someone's head.
- Prevents Regression: Once a spec passes, it guards against future AI changes breaking existing behavior.
- Enables Stakeholder Review: A product manager can read these scenarios and confirm they match business requirements—without understanding a single line of implementation code.
The E-commerce Cart: Layering Constraints
Let's see how constraints progressively narrow as you iterate. Imagine building a shopping cart.
Week 1: Broad Constraints
Feature: Shopping Cart
Scenario: Add item to cart
When a user adds a product to their cart
Then the cart should contain that product
At this stage, the AI has enormous freedom. It might choose any database (SQL, NoSQL, in-memory), any data structure, any framework. The spec is deliberately loose to let the AI explore.
Week 2: Narrowing Business Rules
Feature: Shopping Cart
Scenario: Add item to cart
Given a product "Laptop" priced at $999 is in stock
When a user adds "Laptop" with quantity 2 to their cart
Then the cart should contain 2 units of "Laptop"
And the cart subtotal should be $1998
Scenario: Prevent adding out-of-stock items
Given a product "Phone" with 0 units in stock
When a user attempts to add "Phone" to their cart
Then the addition should fail
And an error should indicate "Product out of stock"
Scenario: Apply discount to cart
Given a cart with subtotal $1000
When a discount code "SAVE10" for 10% off is applied
Then the cart total should be $900
Now we've constrained pricing logic, stock validation, and discount behavior. The AI's freedom is reduced—but it still controls implementation details (which database fields, which validation library).
Week 3: Edge Cases and Integration
Feature: Shopping Cart
Scenario: Cart persists across sessions
Given a user adds "Laptop" to their cart
When the user logs out and logs back in
Then the cart should still contain "Laptop"
Scenario: Tax calculation for different regions
Given a cart with subtotal $1000 in California
Then the tax should be $97.50 (9.75%)
And the total should be $1097.50
Scenario: Concurrent cart modifications
Given user A and user B are both editing the same cart
When user A removes an item
And user B adds an item
Then both changes should be reflected
And no data should be lost
By the time you reach Week 3, the guardrails are tight. The AI's remaining freedom is at the architectural level (how to implement locking, which caching strategy)—but the business logic is locked down by specs.
The Balance: Agency with Constraints
This progressive tightening is the essence of cybernetic governance:
- Broad Constraints: At the start, the guardrails are wide ("The app must start without crashing"). The AI has high agency to explore architectures and frameworks.
- Narrowing Constraints: As you iterate, you add more BDD scenarios. The guardrails tighten. The AI's agency is restricted to smaller and smaller implementation details, guiding it inevitably toward the specific outcome you need.
This balance is key: You want the AI to have agency, but you need constraints. BDD is the mechanism that forces eventual consistency between the code and your intent.
The Vibe Coder writes prompts and hopes. The cybernetic developer writes specifications and verifies. The difference is the difference between a demo that impresses on Tuesday and a system that ships on Thursday.
6. The New Power Players: Product Owners as Cybernetic Developers (Focus on Business Logic)
If Gherkin is the interface, then the most powerful people in the room are no longer necessarily the ones who know the most C++ syntax. They are the Product Managers, Executives, and Domain Experts—the people who deeply understand the goal.
This fulfills the prophecy made by Werner Vogels, CTO of Amazon, at AWS re:Invent 2017: "All the code you will ever write is business logic."0
At the time, Vogels was describing a future vision, not the present reality. He was predicting that managed services would abstract away the "undifferentiated heavy lifting" of infrastructure, leaving developers free to focus solely on business logic. He was right about the direction, but he didn't foresee the second half of the equation: AI would abstract away the undifferentiated heavy lifting of the syntax itself.
In this new world we're entering, the only code you should be thinking about is the business logic that solves real problems. The infrastructure is managed services; the implementation is AI-generated; what remains is pure intent.
In the past, these people had to rely on a translator (the engineer) to turn their vision into software. Now, they can communicate that vision directly to the Governor through Gherkin.
Feature: Premium File Upload
Scenario: User uploads a large file
Given a user with a "Premium" account
When they upload a file named "video.mp4" sized 500MB
Then the upload should complete successfully
And the file should be stored in the "premium-uploads" bucket
And a notification should be sent to the "analytics" service
- The Product Owner defines the behavior (the Gherkin above).
- The AI Agent implements the logic to make that pass (likely in Python or TypeScript, which are easy for the agent to reason about).
- The cybernetic loop verifies that the logic matches the behavior.
You still need expertise "under the hood" to handle architectural decisions. For example, if you are building this on AWS, you might use Infrastructure as Code to define the resources.
Here is where the 100x developer's knowledge shines. They know that AWS CDK allows you to define cloud infrastructure using familiar languages like Go. They can verify that the underlying structure supports the high-level intent.
// Defining an S3 bucket and a Lambda trigger in AWS CDK (Go)
func NewStack(scope constructs.Construct, id string, props *awscdk.StackProps) awscdk.Stack {
stack := awscdk.NewStack(scope, &id, props)
// The bucket for our premium uploads
bucket := awss3.NewBucket(stack, jsii.String("PremiumUploads"), &awss3.BucketProps{
Versioned: jsii.Bool(true),
})
// The lambda that processes the file
processor := awslambda.NewFunction(stack, jsii.String("Processor"), &awslambda.FunctionProps{
Runtime: awslambda.Runtime_GO_1_X(),
Handler: jsii.String("main"),
Code: awslambda.Code_FromAsset(jsii.String("lambda"), nil),
})
// Trigger the lambda when a new object is created
bucket.AddEventNotification(
awss3.EventType_OBJECT_CREATED,
awss3notifications.NewLambdaDestination(processor),
)
return stack
}
The Product Owner doesn't need to read this Go code. But the cybernetic developer knows it's there, ensures it's correct, and uses the Gherkin spec to verify that it actually does what the business needs.
7. Everything as Code (Implement Infrastructure as Code)
The cybernetic developer understands that code is the only artifact that matters, because code is the only thing the AI can reliably generate, version, and improve.
This is the ultimate expression of the value: Implement Infrastructure as Code. Every aspect of a production system should be created and configured by code so that it's reproducible, not manually.
In the Vibe Coding world, you might manually click through the AWS console to set up a database. In the cybernetic world, that is heresy. If you click it, you can't version it. If you can't version it, the AI can't manage it.
- Infrastructure as Code (IaC): You don't ask the AI to "help me set up a server." You ask it to "write the Terraform or CDK code to define a server."
- Database as Code: You don't manually create tables. You ask the AI to write migration scripts.
- Agents as Code: You don't just chat with an agent. You define the agent's prompts and tools in code, version-controlled alongside the app it builds.
When everything is code—infrastructure, database, logic, and even the agents themselves—you unlock the full power of the swarm. A single developer can now orchestrate an entire enterprise IT department's worth of output by managing the code artifacts that define it. What does this mean in practice? Instead of manually configuring dozens of servers, databases, and services—clicking through consoles, running one-off scripts, maintaining institutional knowledge in someone's head—everything becomes declarative code files that live in version control. Your Terraform files are your infrastructure. Your migration scripts are your database schema. Your Gherkin specs are your requirements. Once everything is code, AI agents can read it, modify it, test it, and deploy it—all without human intervention in the mechanical steps. You govern by editing the source of truth; the swarm handles the execution.
The Spectrum: From Tactus to N8N to Code
Not every problem needs the same level of abstraction. The cybernetic developer understands where each tool fits:
Tactus (Prompt-to-App): At the extreme end, tools like Tactus promise "describe your app in a prompt, get a working product." This works beautifully for disposable prototypes—the weekend hackathon project, the internal tool that three people will use once. The abstraction tax is acceptable because there's no maintenance burden.
But Tactus-style tools hit a wall when you need:
- Custom business logic that doesn't fit templates
- Integration with legacy systems
- Performance optimization beyond the default path
- Regulatory compliance that requires auditing every dependency
N8N (Visual Workflow Automation): Visual tools like N8N sit in the middle. They're code-like (declarative, version-controllable JSON) but human-friendly (drag-and-drop interface). They excel at "glue logic"—connecting APIs, triggering webhooks, orchestrating services.
The limitation: N8N workflows are hard for AI agents to modify. The visual paradigm is optimized for human comprehension, not machine manipulation. An AI can read the JSON, but it can't easily reason about the graph structure.
Agents as Code (AaC): This is where cybernetic development lives. You define your automation in actual code—Python, TypeScript, Go—using frameworks that make agent behavior explicit and testable.
For example, instead of a Tactus prompt ("Build me a customer onboarding flow"), you write:
# agents/onboarding_agent.py
class OnboardingAgent:
def __init__(self, email_service, crm_service):
self.email = email_service
self.crm = crm_service
def onboard_customer(self, customer_data):
# Validate customer data
if not self.validate(customer_data):
raise ValidationError("Invalid customer data")
# Create CRM record
crm_id = self.crm.create_contact(customer_data)
# Send welcome email
self.email.send_template(
to=customer_data['email'],
template='welcome',
vars={'crm_id': crm_id}
)
return crm_id
This is pure code. An AI agent can read it, test it, refactor it, and extend it. It's versionable, auditable, and composable. Most importantly, it's governable—you can wrap it in tests, monitor it in production, and rollback when it fails.
The Abstraction Tax
The key insight: abstractions optimized for humans are obstacles for agents.
GUIs, wizards, and visual tools exist because clicking is easier than typing YAML. But in the AI era, typing YAML is clicking—you just prompt the agent to generate it. The GUI is now pure overhead.
This is the Abstraction Tax: the cost you pay for convenience layers that block automation. Every click-only interface, every wizard that doesn't expose the underlying config, every "simplified" dashboard that hides the primitives—these are technical debt in the age of agents.
Lee Robinson's $260 migration proved this. By ripping out the CMS (a human-friendly abstraction) and replacing it with raw Markdown files (machine-friendly code), he unlocked the ability for agents to manage the content. The "simplification" was actually a complexification from the agent's perspective.
The cybernetic developer pays down this tax by:
- Exposing primitives: Preferring tools that offer both a GUI and a CLI/API
- Choosing code over clicks: Using Terraform over AWS Console, migration scripts over phpMyAdmin
- Wrapping when necessary: If you must use a GUI tool, wrap it with infrastructure code that captures its state (e.g., Terraform's
importto codify existing resources)
The goal is not to eliminate abstraction—abstractions are essential. The goal is to ensure abstractions are transparent and bidirectional: the agent can read the high-level intent and manipulate the low-level primitives.
Everything as Code in Practice
Here's what this looks like across a real system:
| Concern | Wrong (Clicks) | Right (Code) | |---------|---------------|--------------| | Infrastructure | AWS Console | Terraform, CDK, Pulumi | | Database Schema | phpMyAdmin | SQL migrations (Flyway, Liquibase) | | API Definitions | Postman Collections | OpenAPI specs in Git | | Agent Prompts | ChatGPT conversation | Prompt templates in code | | Monitoring Alerts | PagerDuty UI | Alerts-as-code (Terraform) | | Feature Flags | LaunchDarkly Dashboard | Flagsmith API + YAML config |
The pattern: if it affects production, it should be in Git. If it's in Git, an agent can manage it.
Case Study: The $260 Migration
Lee Robinson, VP of Developer Experience at Vercel, provided a perfect validation of this principle when he migrated cursor.com from a CMS back to raw code.0
He found that while the CMS was supposed to make things "easier" for non-developers, it actually created a "cost of abstraction" that blocked AI agents from being useful. "The cost of abstractions with AI is very high," he noted. "Over abstraction was always annoying and a code smell but now there’s an easy solution: spend tokens."
By moving everything back to Markdown and Git—making it "code"—he was able to use agents to migrate the entire site in a weekend for just $260 in tokens. He deleted 322,000 lines of code and removed the complexity that was choking the system.
This proves that simplifying to code isn't a step backward; it is the necessary step forward to unlock the cybernetic workforce.
This highlights the "Abstraction Tax"—a concept Nate B. Jones identifies as the hidden cost of modern software. Tools built for human convenience (GUIs, wizards, CMS dashboards) are obstacles for agents. To enable cybernetic development, you must pay down this tax by exposing the system's primitives (files, state, config) directly to the swarm.0
8. DRY (Don't Repeat Yourself) & Refactoring
AI models love to repeat themselves. They will happily generate the same utility function in five different files. This creates a maintenance nightmare.
The cybernetic developer aggressively manages this debt. They don't just "add features"; they task agents with refactoring missions: "Analyze the src/utils folder, identify duplicate logic, and consolidate it into a single shared library."
Refactoring is no longer a chore you delay; it's a continuous, agent-driven process of pruning the garden.
9. Expanding Work in Progress (The Path to 100x)
Traditional Agile wisdom says: Limit Work in Progress (WIP). Focus on one thing, finish it, ship it, move to the next. This was essential when humans were the bottleneck. If you had 5 developers and 20 features in flight, nothing would ship.
But in the cybernetic era, this rule inverts. The AI is no longer the bottleneck—you are. And the way you scale from 10x to 100x is by deliberately increasing WIP in a controlled, governed manner.
The WIP Inversion
Here's the paradox: In the pre-AI world, high WIP killed velocity. In the AI world, low WIP kills velocity.
Why? Because the AI can work on 10 features simultaneously without cognitive load. It doesn't get distracted. It doesn't context-switch. It doesn't burn out. It's a parallel execution engine.
- Old World: 5 developers, 5 features in progress. If you start a 6th, the first 5 slow down.
- New World: 1 human, 10 AI agents, 50 features in progress. The human governs in parallel, the agents execute independently.
The limiting factor is no longer "how much can we build?" It's "how much can we govern?"
If you stick to the old "one feature at a time" mindset, you're capping yourself at 10x. You're running a Formula 1 engine at bicycle speed.
Little's Law Still Applies—But Differently
Little's Law still holds: Cycle Time = WIP / Throughput. But the formula's meaning changes when the executor is an AI swarm.
In the old model:
- WIP: Number of features humans are actively coding
- Throughput: Features completed per week by humans
- Cycle Time: How long each feature takes
In the new model:
- WIP: Number of features the human is actively governing (reviewing specs, merging PRs, monitoring CI)
- Throughput: Features completed per week by agents (10x-100x higher)
- Cycle Time: How long each feature waits for human governance
The math shifts. If agents can complete 50 features/week, but you can only govern 5, your effective throughput collapses to 5. The agents are idle, waiting for you.
The solution: Increase your governance WIP to match the agents' execution capacity. Instead of reviewing one PR at a time, you batch-review 10. Instead of manually running tests, you automate CI and trust the Governor to block bad merges.
The 100x Developer's WIP Strategy
The 100x developer doesn't limit WIP—they parallelize governance. Here's how:
1. Batch Specification
Instead of writing one Gherkin spec, waiting for implementation, then writing the next spec, they write 10 specs in a morning. The agents work on all 10 simultaneously.
# features/batch-001-auth.feature
Feature: User Authentication
# ... (detailed scenarios)
# features/batch-001-profile.feature
Feature: User Profile Management
# ... (detailed scenarios)
# features/batch-001-notifications.feature
Feature: Email Notifications
# ... (detailed scenarios)
Each feature is an independent cybernetic loop. The human defines intent (specs), the agents execute, the CI verifies. The human doesn't wait for Feature 1 to finish before starting Feature 2.
2. Parallel Review
Instead of sequentially reviewing PRs, they use tooling to review in parallel:
- Automated checks: Linting, tests, coverage, security scans run automatically
- Agent-driven pre-review: An agent summarizes changes, highlights risks, suggests improvements
- Human spot-checks: The human reviews the summaries, not the raw diffs
This turns a 2-hour serial review process into a 15-minute parallel governance process.
3. Concurrent Deployment
Instead of deploying features one-by-one to production, they deploy continuously with feature flags:
- Agents push code behind flags (disabled by default)
- CI verifies each feature independently
- Human enables flags in staging, observes, enables in production
This allows 10 features to be "in production" simultaneously, but only visible to the human governor until they're validated.
The Constraint: Your Governance Capacity
The new bottleneck is your governance bandwidth. If you can define 10 specs but only merge 2 PRs/day, you're still capped at 10x. To reach 100x, you need to industrialize governance:
- Invest in CI/CD: Make the pipeline strict enough that a passing build means "safe to merge"
- Use agent enforcers: Have agents audit for SOLID violations, duplication, security issues
- Demand Everything as Code: Eliminate manual steps that require your attention
- Batch similar tasks: Review all PRs at once, not one-by-one
This is the inversion: Instead of limiting WIP to match human capacity, you expand governance capacity to match AI throughput.
When to Limit WIP
There's one critical exception: untrusted agents. If your cybernetic loop is weak (poor specs, flaky tests, no CI gates), high WIP is suicide. You'll drown in bugs and rework.
The rule:
- Strong Governor (good specs, strict CI, automated verification): Increase WIP aggressively
- Weak Governor (vibe coding, manual testing, "trust me it works"): Limit WIP to 1
This connects to Principle 2: Problem Elimination. Sometimes the right move is to stop generating new code and fix the governance layer first. But once your Governor is strong, the path to 100x is more parallelism, not less.
This connects to the concept of Single-Use Software. There is a time and place for disposable scripts (solving a one-off problem tonight). But applying that disposable mindset to long-term infrastructure is how you build a legacy of debt. The Cybernetic Developer knows the difference: generate the script, but govern the system.
Agents as Enforcers, Not Just Creators
One of the most valuable gains is elevating the AI agent from a "junior coder" to a "quality enforcer."
- The Collaborator: The agent that pairs with you to write features (Vibe Coding layer).
- The Enforcer: The agent that refuses to accept code that violates SOLID principles.
- The Janitor: The agent that wakes up at 3 AM to upgrade dependencies and run regression tests.
This isn't just about speed; it is about survival.
The Lost Art of the Trenches: Primitive Fluency
As we describe these principles, a troubling question emerges: where will the next generation of cybernetic developers come from?
Historically, the principles we've discussed—limiting WIP, managing technical debt, architectural restraint, understanding when to delete—weren't learned from textbooks. They were learned "in the trenches." You understood Little's Law not from a blog post, but from watching a project collapse under the weight of too much parallel work. You learned to delete features after maintaining someone's "clever" abstraction for two years.
But if AI handles the implementation details, if junior developers never struggle with race conditions or memory leaks or merge conflicts, how do they develop the judgment to govern effectively?
This is the paradox: the very automation that makes cybernetic development possible also threatens to eliminate the training ground where cybernetic developers are forged.
Disney World vs. The Command Line
In his 1999 essay In the Beginning... Was the Command Line, Neal Stephenson argued that Operating Systems are worldviews. He compared the GUI (Windows/Mac) to "Disney World"—a mediated reality where the messy plumbing is hidden behind pleasant metaphors. The Command Line, by contrast, is "unmediated reality"—unforgiving, but real.0
"Vibe Coding" is the new Disney World. It is a sensory deprivation tank that hides the messy reality of code behind a pleasant chat interface. The Vibe Coder thinks software creation is just asking for what you want.
The cybernetic developer refuses to live in Disney World. They know that eventually, the plumbing breaks.
This is the Law of Leaky Abstractions: "All non-trivial abstractions, to some degree, are leaky."0
AI is the ultimate abstraction—it tries to abstract away the act of thinking. But it leaks. It hallucinates libraries that don't exist. It writes code that has race conditions.
Sometimes, these leaks are actually creative features. When an AI hallucinates, it is connecting dots that don't exist—which is the definition of creativity ("What if there was an Uber for pet food?"). But in engineering, a leak is a bug. The cybernetic developer knows the difference: they use the hallucinations for brainstorming (System 1) but patch the leaks for production (System 2). (For more on this perspective, see Rethinking AI Hallucination.)
They maintain Primitive Fluency—the ability to touch the bare metal—because they know that someone has to be there to fix the leaks when the abstraction fails.
If the "trenches" are disappearing because AI handles the low-level implementation, where will the next generation of cybernetic developers come from?
The answer lies in what Nate B. Jones calls "Primitive Fluency."
The 100x developer doesn't need to be fluent in C++ syntax (the agent handles that). They need to be fluent in the primitives of the system: files, permissions, git states, database migrations, and rollback strategies.
- Vibe Coder Skill: Prompting "Fix the bug."
- Cybernetic Developer Skill: Understanding that the bug was caused by a race condition in the state management primitive and directing the agent to implement a mutex.
If everyone enters the field through Vibe Coding—expecting instant results and ignoring the underlying primitives—we risk a crisis of competency. We will have millions of people who can generate a demo in an afternoon, but very few who can keep a system alive for a year.
The danger is the illusion of competence. Vibe coding makes you feel like a senior engineer because you produced code. But without the governance of the cybernetic loop, you are just increasing risk at machine speed. You are building technical debt faster than any human team ever could.
The Miracle is Not That AI Writes Code
The miracle is that we can finally afford to be careful.
In the past, "best practices" were aspirational. We should have 100% test coverage. We should do a security audit on every commit. We should refactor for readability. But we didn't, because we had deadlines and finite human energy.
AI turns craftsmanship into infrastructure.
- Humans Provide: Intent, Taste, and Values (The Governor).
- AI Provides: Exhaustive exploration, tireless implementation, and mechanical rigor (The Engine).
The scarce resource is no longer code; it is judgment.
The job of the programmer didn't disappear; it inverted. The value used to be "I can type correct syntax." Now the value is "I can specify, evaluate, and steer complex systems toward the right outcome."
The new skill isn't syntax. It is Primitive Fluency—the ability to understand the artifacts that make the system reliable, shippable, and revertible.
The Economics of Verification
The fundamental shift that AI brings is that the marginal cost of generating code has dropped to near zero.
In the Vibe Coding model, you have infinite generation but manual verification (you reading the code, running the app, checking for bugs). This is an economic trap. As code volume explodes, your ability to verify it linearly collapses. You effectively "go bankrupt" on verification debt.
In cybernetic development, you use BDD/TDD to drive the marginal cost of verification down to near zero as well. The automated tests are the cheap verification that balances the cheap generation.
But not all verification is knowable upfront. Many agentic failures are emergent and only appear under real traffic, real data, and real organizational pressure. That’s why the cybernetic loop can’t stop at CI. You need runtime feedback loops—staged rollouts, telemetry, and postmortems—that turn production into a controlled experiment instead of a cliff.
You cannot afford to use a 100x generator with a 1x verifier. You need a 100x verifier. That is what the cybernetic loop is.
A Fork in the Road
Every day, the gap widens between the apprentices who are denied the chance to learn and the gurus who are accelerating away from them. Junior developers have fewer opportunities to gain the judgment that turns out to be the one useful thing humans have left to contribute.
We are reaching a fork in the road.
If we do not deliberately train the next generation in the principles of cybernetic development, humanity will be forced to depend on machines to create the software that dictates the boundaries of our lives—simply because there won't be enough qualified humans left who remember how to do it.
The Coming Talent Crisis: When the Gurus Retire
The cybernetic revolution solves one problem—scaling output—but it creates another: Where will the next generation of cybernetic developers come from?
This isn't abstract. We're facing a talent cliff that will hit within the next decade.
The Apprenticeship Model is Broken
Software engineering has always relied on an informal apprenticeship model:
- Juniors start by fixing bugs, writing tests, and doing "grunt work"
- Through repetition, they internalize patterns (when to abstract, when to delete, how to debug)
- Mid-level developers take on features, make architectural mistakes, and learn from them
- Seniors develop judgment: knowing when to refactor vs. rewrite, when to optimize vs. simplify, when to build vs. buy
- Staff/Principal engineers become force multipliers, setting standards and governing systems
This pipeline took 10-15 years to produce a 10x developer. And it depended on doing the work. You learned to debug race conditions by debugging race conditions. You learned to manage complexity by maintaining complex systems.
But AI short-circuits this pipeline. If juniors never write the "boring" code—if they just prompt an agent—they never develop the muscle memory. They never internalize the primitives.
The Danger: A Generation of Prompt Jockeys
We risk producing a generation that can describe what they want, but can't evaluate what they got.
Imagine a junior developer in 2030:
- They've never manually set up a database (IaC tools handled it)
- They've never debugged a segfault (memory-safe languages)
- They've never optimized an algorithm (the agent did it)
- They've never refactored a legacy codebase (everything is greenfield AI slop)
When asked to review an AI-generated implementation, they approve it because "it looks right." But they can't spot the race condition, the N+1 query, the SQL injection vulnerability, or the memory leak—because they've never experienced those failures.
This isn't theoretical. We're already seeing this in AI-generated content on Stack Overflow and GitHub. Code that looks correct but is subtly wrong—and reviewers lack the expertise to catch it.
The Guru Exodus
Meanwhile, the current generation of 10x developers—the ones who learned in the pre-AI era—are aging out of the workforce.
- 2025: Most senior engineers are 35-50 years old, trained in the 2000s-2010s
- 2035: They'll be 45-60, starting to retire
- 2045: The last generation with "pre-AI" foundational skills will be gone
If we don't solve the training problem in the next 10 years, we'll face a catastrophic skills gap. The people who can govern AI systems will retire, and there won't be enough replacements. We'll be left with:
- Millions of prompt jockeys who can generate code but not evaluate it
- A handful of aging gurus who are overwhelmed and can't scale
- Increasingly critical systems that no one fully understands
This is the "Glass Cockpit Problem" at civilization scale.
The Two Paths Forward
We have two options:
Path 1: Intentional Training
We redesign engineering education to focus on governance skills from day one:
- First-year curriculum: Systems thinking, specifications, testing, failure analysis—before syntax
- Apprenticeships: Juniors work alongside agents, but their job is to audit the agent's work, not just prompt it
- Deliberate practice: Exercises that force developers to debug AI-generated bugs, evaluate competing implementations, and make architectural tradeoffs
- Primitive fluency requirements: Before you're allowed to use an AI to generate database migrations, you must write 10 migrations by hand and explain why each command matters
This is uncomfortable. It's slower than pure vibe coding. But it produces developers who can survive the inevitable AI failures.
Path 2: Full Machine Dependency
Alternatively, we accept that humans will no longer understand the systems we depend on. We treat software like we treat pharmaceuticals: most people don't understand organic chemistry, but they trust the system that produces safe drugs.
In this model:
- AI agents become fully autonomous (writing, reviewing, and deploying code with minimal human oversight)
- Humans govern at a higher level (setting business goals, defining constraints, monitoring outcomes)
- The "primitive fluency" generation dies off, and we hope the agents are good enough
This path is appealing because it's easy. But it's also terrifying. When the AI agents fail—and they will—who fixes them? If no human understands the system, the failure is irrecoverable.
What the 100x Developer Must Do Now
If you're reading this and you're already a cybernetic developer, you have a responsibility:
Teach. Don't hoard your knowledge. Write documentation. Mentor juniors. Create training programs that emphasize governance skills.
Build training systems. Create sandboxed environments where juniors can safely break things. Design exercises that force them to debug AI-generated bugs. Make primitive fluency a job requirement.
Advocate for standards. Push your organization to require that engineers demonstrate understanding of the primitives before they're allowed to use high-level abstractions.
The cybernetic revolution won't survive if it's only available to the current generation of experts. We must deliberately create the next generation, or the revolution will collapse under its own success.
Vibe Coding is the Engine, but Governance is the Governor
This isn't to say Vibe Coding is bad. It is vital. It is the creative spark, the rapid prototype, the joy of creation. But without a Governor, the Engine just redlines until it tears itself apart.
This approach allows you to Collaborate with AI Humanely. We recognize that human time and attention are the most scarce resources. By offloading the implementation to the AI while keeping the governance with the human, we scale our attention without burning out.
The 100x developer understands that Vibe Coding is the first step, not the only step. They use the vibe to explore, to brainstorm, to find the "what." But then they switch to the cybernetic loop to build the "how." They wrap that raw creativity in the safety harness of BDD, TDD, and solid engineering principles.
They know that the goal isn't just to write code; it's to build a sustainable, valuable system that survives contact with reality.
This mirrors the "Centaur" model of chess. After Deep Blue defeated Garry Kasparov, chess didn't die—it evolved. Players realized that a weak human + a weak computer + a strong process could defeat a strong computer alone.0
The cybernetic developer is the ultimate Centaur. They don't try to out-calculate the AI (write code faster); they use the AI to verify their strategic intent.
- Vibe Coder: Letting the Computer play alone.
- Cybernetic Developer: Human Intent + Machine Execution + Cybernetic Process.
Be the Boss, Not the Worker
The fundamental shift of cybernetic development is this: Your job is no longer to do the work. Your job is to decide what work gets done.
This isn't a metaphor. It's a literal inversion of the software engineering role.
The Old Model: Worker-As-Expert
In the pre-AI world, expertise meant execution ability. The best developers were the ones who could:
- Type the fastest
- Remember the most syntax
- Debug the trickiest race conditions
- Architect the cleverest abstractions
They were workers—highly skilled, highly compensated, but fundamentally laborers. Their value was their ability to do the thing.
Even "senior" engineers spent 80% of their time writing code and 20% deciding what to write. The execution was the bottleneck.
The New Model: Boss-As-Architect
In the AI world, execution is cheap. The AI can write the code faster, more consistently, and with less fatigue than any human. The bottleneck has shifted entirely to decision-making:
- What problem are we solving?
- Is this the right problem to solve?
- What's the simplest architecture that could work?
- Where are the failure modes?
- What do we delete to reduce risk?
The cybernetic developer is no longer the worker. They're the boss. Not "boss" as in "person with authority over other humans," but "boss" as in "the person who decides the direction and enforces the standards."
This is uncomfortable. Most developers became developers because they loved building things, not managing things. But AI has made building cheap and management scarce. The only way to capture 100x leverage is to embrace the boss role.
What "Boss" Means in Practice
The boss doesn't write the authentication system. The boss defines the requirements:
Feature: Authentication System
Scenario: Users must not be able to access admin endpoints without admin role
Scenario: Sessions must expire after 24 hours of inactivity
Scenario: Failed login attempts must trigger rate limiting after 5 failures
The AI writes the implementation. The CI verifies it. The boss reviews the summary, not the diff.
The boss doesn't manually refactor duplication. The boss tells the AI: "Audit the codebase for semantic duplication in authentication logic and propose a consolidation plan."
The boss doesn't write tests. The boss writes specifications, and the AI generates the tests that enforce them.
The boss's day looks like:
- Morning: Review overnight CI results. Approve 15 agent PRs that passed all checks.
- Mid-morning: Write 10 new Gherkin specs for the next sprint's features.
- Afternoon: Audit the architecture. Delete three microservices that aren't earning their complexity.
- Evening: Set new governance policies (e.g., "No PR may increase code duplication beyond 2%").
Notice what's missing: writing code. The boss governs code, but rarely writes code.
The Psychological Shift
This is deeply uncomfortable for most engineers. We got into this field because we love the tactile satisfaction of making the machine do what we want. Vibe coding preserved that—you still felt like a "maker."
But cybernetic development requires letting go of the maker identity. You're not a craftsman anymore. You're a systems leader.
The satisfaction shifts from "I built this" to "I ensured this was built correctly." It's the difference between being a surgeon (hands-on) and being a hospital administrator (systems-level). Both are valuable, but they're different jobs.
Some engineers will refuse this shift. They'll cling to vibe coding because it feels like real work. They'll insist on reviewing every line of AI-generated code because "that's what responsible engineering looks like."
Those engineers will cap out at 10x. Because reviewing every line is a linear scaling strategy in an exponential scaling world.
The 100x engineers are the ones who accept the new role: Be the boss. Set the standards. Trust the system. Audit the outcomes.
Steer by Intent, Not by Metric
The boss's superpower is resisting Goodhart's Law: "When a measure becomes a target, it ceases to be a good measure."0
If you tell an AI to "maximize test coverage," it will write tests that assert true == true. It hits the metric (compass heading) but misses the destination (working software).
The boss's job is not to maximize the metric—that's the AI's job. The boss's job is to ensure the ship is actually heading toward value, correcting for the drift between the metric and reality.
The boss asks:
- "Coverage is 100%, but are we testing the right things?"
- "We shipped 50 features this month, but are they solving real problems?"
- "The agent wrote 10,000 lines of code, but how much of it should we delete?"
This is leadership. This is governance. This is the only role left that AI can't do.
The Cybernetic Developer's Operating Manual
Here's how you step into the boss role:
- Write Specs First: Never let the AI write a line of implementation until you have defined the behavior in Gherkin or a test case.
- Enforce Meaningful Coverage: Treat coverage as a gate, not the goal. Prefer behavior specs, invariants, and incident-driven regressions over metric padding.
- Engineer Defense in Depth: Use sandboxes, CI gates, staged releases, observability, and rollback to prevent a single mistake from becoming a catastrophe.
- Refactor and Delete: Use the AI to squash duplication, enforce YAGNI, and eliminate failure modes by reducing complexity.
- Demand Everything as Code: Infrastructure, migrations, config, and even agent definitions belong in version control.
- Scale Governance, Not Execution: Increase your WIP by industrializing reviews, automating verification, and trusting the system.
Software creation is becoming a cybernetic loop between human intent and machine execution. The new profession is the person who closes that loop responsibly.
That's not vibe coding. That's not even "coding." That's systems leadership in a strange new universe.
And if you can do it—if you can let go of the maker identity and embrace the governor identity—you won't just be 10x. You'll be 100x.
Because while everyone else is typing, you'll be steering.