The archaeology of getting better
My first pull requests from 2020 include one titled, in its entirety, "Curbo backend#30". Not a description — a repo name and a number. In June 2021 I merged ~18 PRs in a single day with titles like "Update service and tests for social-network entity #902" — the pick-and-shovel era, one CRUD entity at a time, more than 25 entities. By late 2021 my PR titles had whale emojis: "Handled sell your car into inspection #2228 🐋". That was the year of the CRUD grind.
I keep these titles on purpose. A commit history is the most honest résumé there is — it shows you exactly what junior work looks like, and exactly when it stops. Mine stops being junior somewhere in 2022, and the titles show that too.
The Re-structure campaign: 11 modules without stopping the roadmap
From August 2022 to February 2023 I ran a re-architecture campaign across the live platform: every change carried "re-structure" in the title, spanning eleven modules — settings, user, inspection, buy, catalog, customer-care, pricing, quotes, support, test-drive, advertisement. It starts with "refactor(support): Re-Structure car in support #3965" and some days covered four entities at once. The roadmap never paused; features shipped in parallel the whole time.
- The campaign is also where my titles switch to a conventional format — the discipline arrived with the architecture work, not before it.
- Multi-country support had been built module by module a year earlier ("Add multicountry support to the city, state and country modules #1636", Sep 2021). That groundwork is why expanding to two new countries in 2023 was a single configuration PR: "feat(global): Add BRA and ARG config #4794".
- After every release, the migration code got deleted — "feat(global): Eliminate scrips migrations after release sprint 60 - 59 #4527", merged on Christmas Eve 2022, typo and all. Migration code that lingers becomes load-bearing; we never let it.
The architect year
By 2023 I was merging a fraction of what I had in 2021 — and it was my most senior year by far. "Proposal v3" rolled out across eight modules in twelve days (March 7–19, 2023). "feat: introduces packages" turned the backend into a package-based monorepo in April. And I was the person who pressed the button: 71 of the repo's 91 release PRs are mine — I cut staging and production for a multi-country marketplace for years. Seniority, measured honestly, is your PR count going down while your blast radius goes up.
Closing the chapter
My last merged PR in curbo/curbo-backend is "fix: eliminate keys validation", July 20, 2023. Curbo wound down that November. What remains is the work itself: a multi-country marketplace platform I helped grow from entity CRUDs to packages, federation, and release ownership — documented commit by commit.
A commit history is the most honest résumé there is — it shows junior work and exactly when it stops.
What I would tell anyone doing this
- Delete migration code after every release. It is the difference between a codebase that can evolve and one that can only be feared.
- Do the boring groundwork module by module; it converts strategic moves into config PRs. Two countries in one PR only happens because twenty modules learned about countries two years earlier.
- Let your PR volume fall. If your numbers look the same in year four as in year one, you scaled your effort instead of your judgment.
- Keep your embarrassing PR titles. "Curbo backend#30" next to "feat: introduces packages" is the clearest growth chart you will ever own.
- Measure seniority by blast radius, not by busyness. Owning the release path is a different job from shipping CRUD.
