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
Twelve years of building software products. The team got smaller. The judgment work got bigger.

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.
Tools picked for the work they do best. Most days I am running two of them in parallel on different parts of the codebase.

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.

Faster CRM integrations

Agents read docs, inspect schemas, map fields, generate the connection layer. Founder moves from boilerplate author to contract reviewer.

Scripted Data seeding

Realistic seed data becomes a repeatable artifact agents generate, revise, and rerun while assumptions stay visible in the spec.

Evidence Live debugging

Agent gathers context across code, logs, migrations, and recent changes. Founder still decides whether the explanation is sufficient.

Review Quality checks

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.
Failure modes I run into every week. None of them get caught by the agent itself.

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 exact tools change fast. The categories last longer.

The tools change fast. The durable work is encoding judgment, maintaining specs, running parallel agent workflows, and keeping the founder responsible for taste.

Prasad Subrahmanya

Prasad Subrahmanya

Founder of Luminik. Built Aura at Bain to $3.6M ARR, co-founded Mainteny through its $2.7M seed, and shipped the first field-service product version solo in 3 months.