I pulled my May GitHub history to write a quick recap. It was not quick, and it was not small.
(The title is a git thing, by the way. Fork. You read it the way you were going to read it, and that's the point — it's roughly the noise I made when the numbers loaded.)
I almost didn't write this one. A month-in-review post is one short hop from a humblebrag, and I've read enough "look how much I shipped" threads to know I don't want to write one. But the numbers were genuinely funny, and the honest version of what they mean is more useful than the flex, so here we are.
The receipts
One month. Two GitHub accounts. The damage:
- 710+ contributions
- 44 PRs merged
- 56+ issues opened
- 7 repos touched
- 515 of those contributions private — so you'll just have to trust me on those
Somewhere in there I also shipped the first end-to-end build of something that's entirely mine — zawaaj.in, the more commercial, more polished successor to my earlier project at invitations.ajmalaksar.com (which I'll be sunsetting soon). It's the first time I've taken a thing from nothing to a working product by myself, start to finish, and that felt different from any amount of feature work inside someone else's codebase. I tried to keep the blog alive. And I flew to Mumbai — which turned out to be the most useful thing I did all month, and it had no commits attached to it at all.
Exhibit A: I wrote an enterprise product spec. In GitHub issues.
This is the one that made me laugh. Across the month I wrote the full product specification for a v2 data-insights platform — PRD, connector layer, agent decomposition, eval harness, all the way down to SOC 2 audit logging — as a sequence of GitHub issues. Nine phases. Dozens of issues. A complete roadmap, authored the way some people journal.
Nobody asked me to do it in issues. I just find that writing the plan somewhere it can be argued with forces a kind of honesty that a blank doc doesn't. An issue has to be closeable. That constraint did more for the quality of the spec than any amount of free-form planning would have.
Exhibit B: a platform refactor, for fun
The bulk of the real work was a refactor-and-feature sprint on an agentic platform — 31 merged PRs, one of which weighed in at +4,334 / −278 lines (I'm aware that's not a number to be proud of; we'll come back to it). Quota fallbacks between model providers, demo endpoints, an eight-part phase-3 refactor labelled A through H like I was running out of letters on purpose.
Most of it was the unglamorous kind of work — the month was something like 73% commits, 16% issues, 9% PRs. Plumbing, not fireworks.
The part that wasn't code
I flew to Mumbai for ImagiNxt, a two-day event, and for the first time I watched people who aren't me use kAInet — the agentic marketing product I've been building with Express Analytics for a while now.
Here's the thing I have to say out loud: I build for marketers, and I am not one. I'm from a coding background and I've never done proper marketing, so a good chunk of how I imagined people would actually use the product was educated guessing. Two days of in-person conversations did what months of my own assumptions couldn't. Real marketers, from genuinely different backgrounds, told me what worked, what clicked, and — the valuable part — handed me feature ideas I'd never have thought of on my own: directions for kAInet that only someone who lives in marketing every day would spot. You do not get that from a call, a survey, or a Figma comment. The density of a hallway conversation you can't schedule is its own kind of data.
There were prep days before, important team meetings on the two days after, and a lot of good talk time with the team and with Hemant Warudkar, our CEO. I came home with a feature wishlist straight from the people we build for and a much clearer picture of what to make next. That's the opposite of a flex — it's me learning what I couldn't have guessed from a desk — and it's the part of the month I'd actually repeat.
The part I actually want you to take away
Here's the honest turn, and it comes about two-thirds of the way through on purpose, because the first two-thirds were the setup.
Volume isn't the flex. I called it momentum while it was happening. Looking back, some weeks it was just motion — output that felt like progress because the graph was green, not because I'd moved the thing that needed moving. A 4,000-line PR is not a trophy. It's usually evidence that I let something grow past the point where it should have been split.
I called it iteration; in practice it was optimism. Same lesson I keep relearning.
But — and this is the reason the month wasn't a waste — running this many parallel features through one brain taught me more git than any tutorial ever did. Not git-the-trivia. Git-the-survival-skill: keeping three feature branches alive at once, rebasing without losing my mind, reading a diff like it owes me money, knowing exactly how far two branches have drifted before I try to merge them. You don't learn that from a guide. You learn it from the specific panic of having made a mess and needing to get out of it cleanly.
The plan is still the work; the code is still the cheap part. A 700-commit month doesn't change that. If anything it's the proof — the months where I'd planned properly were calm, and the 4am ones were the months where I'd skipped that step and was paying interest on it.
What I'm still figuring out
Whether this pace is something to optimize or something to outgrow. I genuinely don't know yet. It produced real things and it also produced a few nights that ended at 4am chasing a concept I wasn't even sure was the right one. "Sustainable" is doing a lot of work in every productivity post I've ever read, and I'm not going to pretend I've solved it.
So I'll ask instead.
If you're earlier in this than I am: the commits compound, the chaos doesn't. Green squares are not the scoreboard. Plan the thing, then let the tools move fast inside the plan.
If you're further along: tell me what you stopped doing to get your months under control. I clearly need to hear it, and I'd rather hear it from you than from a production incident.
More soon. Hopefully before I rack up another 700.