How bots made me 16.8× more productive, and I have the data to prove it
I have been building an embedded C++ control and image processing daemon on Jetson for four and a half years. It started with a small team; for the last two years it has been just me. Over time I started using co-pilot then claude. Here is how the project throughput increased over time.
This article doesn’t cover quality or performance, but let me address this briefly. The test suite has grown to more than 800 cases, over 400 of them added in 2026. Performance is up more than 20x, on the back of extensive CUDA work that would not have fit the schedule without bots. And end users have reported zero regressions in two years.
The median developer-week now moves 4,792 lines of authored source. In 2022 it moved 285.
First: how I calculated the numbers
git log --numstat will tell you a repository has churned 2.8 million lines. Most of that is not work anyone did, so I threw it out in three passes before counting anything. Here are the major areas excluded from my counts:
- Vendored and generated files — third-party trees, SDK headers, generated protobuf bindings, build output, training logs. −775,000 lines.
- Structural moves — Relocate a file and git scores it as a full delete plus a full add. Rename detection catches that within a commit, but not a directory copied in one commit and the original deleted three weeks later. I identified those by blob identity: log with
--no-renamesso every add and delete exposes its SHA, map each blob to every path it has ever occupied, and flag any add or delete whose exact content also lives at a different path somewhere in history. −666,000 lines.
What survived: 403,042 lines across 1,146 commits and 163 working weeks. Weeks with no commits (work stopped completely) are excluded everywhere below — every axis counts working weeks, never calendar weeks, so nothing here is diluted by time spent away from the keyboard. Every chart is built on that 14%.
The Data
Lines changed in each working week, with the number of distinct people who committed that week drawn underneath on the same timeline.
Note what the two panels do not do: track each other. Headcount peaks in the middle years while output stays flat. The step change arrives long after the team has gone.
Normalized to the peak
Same working weeks, now scaled against the biggest one so the trajectory is readable on a single axis.
Per developer
Each week’s churn is divided by the number of people who committed that week, and the median is taken across the year’s working weeks.
| Year | Median developer-week | vs. 2022 |
|---|---|---|
| 2022 | 285 | 1.0× |
| 2023 | 274 | 0.96× |
| 2024 | 1,285 | 4.5× |
| 2025 | 1,345 | 4.7× |
| 2026 | 4,792 | 16.8× |
When the bots arrived
I do not know when the bots arrived exactly. But the internet believes the co-pilot visual code free trial began in December 2024 and I am sure I was using it in early 2025. Now you can argue that productivity did not immediately increase due to 1) poor peformance in models, 2) user learning curve. But you can see a definitive increase in lines per week in early 2026. Claude Opus 4.5 was released in November 24, 2025. You can see a definitive step up in productivity in 2026. While Opus may take a lot of credit, I also have to credit my own work flow as a significant contributor (you will have to trust me). You can read about my work flow here: my workflow.
Splitting 2026 on that boundary:
| Period | Median developer-week | vs. 2022 | vs. 2025 |
|---|---|---|---|
| Before the instruction files | 2,487 | 8.7× | 1.8× |
| After the instruction files | 6,434 | 22.6× | 4.8× |
The second step is bigger than the first. Having an agent roughly doubled my weekly output. Writing down what the agent should do — the architecture rules, an explicit review checklist, a milestone workflow, per-subsystem instructions — roughly tripled it again.
That is the part worth taking away. The leverage was not in the tool alone; it was in finally committing to text the standards I had been carrying in my head for four years. The agent made that investment pay immediately, and it compounds: every rule I write once gets applied on every commit after it.
Method: git log --no-merges -M -C -l0 --numstat, author date, ISO-8601 weeks. Merge commits excluded so their contents are not double-counted; binary files report no line counts and are omitted. Structural moves detected by blob identity as described above. Author identities merged across the several email addresses each person committed from.