I started my career at BlueJeans in 2014. Even for a focused product, you needed bodies. Backend engineers, frontend engineers, dedicated QA, dedicated infrastructure, dedicated deployments. Setup was a half-day. Integrations were weeks of API reading and boilerplate. Realistic seed data was its own ticket. The work moved through people. Requirements got clarified in hallways. Design patterns transmitted through code reviews and whiteboards. A lot of what made teams effective was implicit, social, and undocumented.
I am building Luminik alone in 2026. Backend, frontend, mobile, CRM integrations, infrastructure, security, data pipelines. The kind of scope that in 2014 would have assumed five or six people before anyone discussed timelines.
2014 vs 2026: where the cost lives
| 2014 team-based | 2026 solo plus agents | |
|---|---|---|
| Headcount baseline | Five to six engineers minimum for a B2B product with a customer-facing surface | One founder with explicit specs, instruction files, and AI-agent workflows |
| Mechanical cost | Days for setup, weeks for integrations, sprints for seeding | Compressed by an order of magnitude |
| Judgment cost | Distributed across a team. Implicit, social, transmitted in hallways. | Centralized on the founder. Explicit, written, versioned. |
| Coordination | Standups, code reviews, whiteboards | Specs repo, instruction files, PRs I inspect |
| Failure mode | Slow to ship, fast to align | Fast to ship, slow to notice when conventions drift |
The solo-builder operating system
The replacement for the old five-person baseline is a tighter operating system around a founder who still owns judgment.
Two months after writing the first draft of this post I added a sixth piece: the operating boundary around recurring agent work, separated from my interactive development loop. I wrote about that in Separating agent work from founder work.
A working day, tool by tool
| Tool | What I use it for | |
|---|---|---|
| Cursor | Active feature development | Fast for focused, contextual work inside one part of the system. Most coding hours land here. |
| Claude Code | Large refactors, multi-file changes | More reliable than Cursor for structural changes that touch many files. Better tool use. |
| Codex + CodeRabbit | Automated PR review | Catches security-adjacent issues, scope mismatches, documentation drift before I look. |
| GitHub CLI | Workflow plumbing | Agents create PRs, read review comments, address feedback. Code-PR-review-fix moves fast. Merge does not. |
| Manual QA | Click through every flow myself | At a 0-to-1 stage I want my eyes on every interaction path. |
Where compression actually shows up
Categories of work that used to take weeks now take hours or days. The pattern is consistent across the last few months.
Agents read docs, inspect schemas, map fields, generate the connection layer. Founder moves from boilerplate author to contract reviewer.
Realistic seed data becomes a repeatable artifact agents generate, revise, and rerun while assumptions stay visible in the spec.
Agent gathers context across code, logs, migrations, and recent changes. Founder still decides whether the explanation is sufficient.
Static findings and review comments become reviewable patches with the same final standard as any human-written change.
Instruction files: encoding judgment
This is the part most people skip when they talk about AI-assisted development, and it is the part that makes the biggest difference. I maintain CLAUDE.md files for Claude Code and .cursorrules for Cursor. Project-level instruction files tuned to my codebase and my preferences.
Without instruction files, agents produce code that compiles, passes basic checks, and feels slightly wrong everywhere. The patterns drift. The naming is inconsistent. The architecture choices are locally reasonable and globally incoherent. With well-maintained instruction files, the output is recognizably my codebase.
In 2014, this kind of judgment lived in people’s heads. Senior engineers transmitted it through code reviews, pair programming, whiteboard sessions, lunch conversations. It was implicit and social. When a junior engineer made an architectural choice that felt wrong, someone would walk over and explain why. That correction was immediate, contextual, and unrecorded. Now it has to be written down, versioned, and maintained. Otherwise it does not exist in the system.
Encoding work, capturing decisions, conventions, patterns, and preferences in a format agents can consume, is a genuinely new category of engineering labor. In 2014, the team carried that context socially. In 2026, the system needs it written down.
Workspace architecture: single project, multiple repos
All my repos live in a single project workspace: backend, frontend, mobile, integrations, specs. Separate repos, shared context. This is deliberately different from a monorepo. I want agents to see the full system without coupling deployment pipelines. Release workflows stay independent per repo.
When an agent works on the backend, it can see the frontend contracts. When it works on the frontend, it can see the API schemas. When it works on integrations, it can see both. Agents introduce fewer regressions because they understand cross-repo dependencies.
The new failure mode: everything is visible, so drift shows up immediately. An inconsistency between backend and frontend that might have lived undetected for a sprint in a team environment surfaces the moment context is loaded. That is a good kind of discomfort.
Specs driven development: the most important repo
No Jira. No Linear. No Trello. The specs repo holds the roadmap, the plan, and the decisions that keep parallel work pointed in the same direction. Detailed business requirements broken into workflows, specific tasks with implementation details, data model specs, integration contracts, UI/UX requirements, testing criteria. All written detailed enough to be directly consumable by humans and agents.
After every PR merge, specs get updated. This is non-negotiable. The moment specs drift from the codebase, two things happen. Agents make decisions on outdated assumptions. My own mental model starts diverging from reality.
Parallel agents and PRs to inspect
The useful unit of autonomous work is not “go build the product.” It is a scoped task with a clear boundary and work I can inspect. The key constraint is isolation. If you task two agents on overlapping parts of the codebase overnight, you wake up to merge conflicts and divergent assumptions. Each agent gets its own branch, its own scope, its own discrete PR.
Too small and the output is not worth the coordination cost. Too broad and the agent makes structural decisions you should have made yourself. The art is carving work at the size where an agent can produce momentum without smuggling in architecture.
Where things still break down
| Failure mode | Why it happens | |
|---|---|---|
| Edge cases on path 4 | Happy path works, second and third paths work, the fourth breaks | Agents test each step. They rarely test the chain. |
| Cross-repo subtle breakage | Backend and frontend both pass their own tests. Integration fails. | API returns data in a shape the frontend technically handles, but the UI renders it wrong. |
| Multi-step UI flows | Step 1 sets state. Step 4 depends on step 2 and 3 together. | Agents validate each step in isolation. The chain fails when a real person clicks through. |
| UI/UX consistency drift | Spacing, alignment, hierarchy, interaction patterns drift | Each individual choice looks reasonable. The aggregate feels off. Aesthetic judgment does not encode well into instruction files yet. |
Where agents help and where judgment stays
Agents operate on what you give them. Leave out the decorator pattern for a specific use case and they choose their own shape. Leave out error handling conventions and each module handles failures differently. Leave out module boundaries and the agent makes locally optimal choices that create globally messy architecture.
The quality of what comes out tracks directly to the quality of your instruction files, your specs, your prompts. This has always been true of software. The difference now is that the cost of poor documentation is immediate and visible, not gradual and hidden.
This is the actual job now. Writing code is a shrinking fraction of my day. Deciding what agents should build, reviewing what they produced, and updating the instruction files and specs that keep the system coherent is where the hours go.
The cost structure shifted
The mechanical parts compressed dramatically. Boilerplate generation, API integration scaffolding, data seeding, documentation lookup, test writing, static checks. All of these are faster by an order of magnitude. The judgment parts stayed expensive. What to build. How to structure it. When to stop adding and start removing. How to keep the system coherent as it grows. How to maintain quality when an agent can ship something that technically works and aesthetically drifts.
The new cost is encoding. Every decision that used to live in someone’s head now needs to be written down in a format an agent can consume. Every convention that used to spread through proximity now needs to be maintained as a versioned file. Every correction that used to happen in a code review comment now needs to be generalized into a rule.
The toolchain categories
| Category | What it does | |
|---|---|---|
| Cursor | Active feature development | Focused, contextual work inside one part of the system |
| Claude Code | Large refactors and tool-heavy tasks | Structural changes across many files |
| Codex | Automated PR review | Second review perspective alongside CodeRabbit |
| CodeRabbit | Automated PR review | Scope drift, missed edge cases, documentation gaps |
| GitHub CLI | Workflow automation | PR creation, review follow-up, branch-level automation |
| Static checks | Quality and security signals | Findings become reviewable work, not hidden debt |
| Isolated agent workspaces | Parallel work | Bounded branches and scoped tasks keep parallelism reviewable |
| Single project workspace | Context sharing | All repos visible to agents at once |
| Specs repo | Coordination layer | Roadmap, requirements, intent. Updated after every merge. |
| Instruction files | Judgment encoding | Design patterns, conventions, principles tuned to the codebase |
The tools change fast. The durable work is encoding judgment, maintaining specs, running parallel agent workflows, and keeping the founder responsible for taste.