Claude Code, but for backend people
Not a demo reel. How I actually use Claude Code for queue workers, schema migrations, and payment code where wrong answers cost RM.
· 4 min read
Claude Code sold itself to me on one Saturday at a mamak in Bangsar when I shipped a BullMQ retry policy with error-class-specific backoffs in about 90 minutes. It was not the speed. It was that I got to think at the policy layer — "5xx should back off longer than 429, 401 should not retry at all" — while the agent wrote the TypeScript.
That is the whole bet for backend people. The model is fine at frontend. It is genuinely useful on backend work where you have tests, types, and a runtime that screams when you break the contract.
What I actually ship with it
I keep a few rules on any project Claude Code touches:
-
Schema first. Drizzle schema lives in one file. Anything touching persistence starts there. The agent is very good at generating CRUD + types from a schema. It is bad at inferring one from fragmented code.
-
One domain, one session. Payments session does payments. Don't mix in "while you're there, also clean up the admin UI." Cross-cutting context blows up its judgement.
-
Tests before the clever bit. Write the Vitest case that fails for the exact behaviour I want. Let the agent make it green. This is the fastest way to stop it inventing.
-
Diff review by human. Always. Do not skip. The 5% of the time it silently drops an idempotency guard is the reason your phone rings at 03:00.
What it is bad at
Anything with a dirty secret in the codebase. Anything where the root cause is three directories away from the symptom. Anything involving an undocumented platform quirk — Shopee webhooks, for example, or the way FPX reconciliation files come in two different shapes depending on whether it is a public holiday.
For those, it is a rubber duck that codes. You still do the thinking.
The unglamorous part
Most of the ROI is not in generation. It is in context management. Good Claude Code usage looks like obsessive directory hygiene, specific commit messages, tight PR scopes. The agent does its best work when the codebase does not lie to it.
Which is just — you know — how to write code anyway.
Keep reading
- aiclaude
Opus 4.7 is slower on my codebase. Here's where the benchmarks lie.
Anthropic's SWE-bench Pro jump is real. But adaptive thinking adds latency that benchmarks absorb and surgical codebases do not.
- writingvoice
Write a blog in 2026 without sounding like ChatGPT
Dev blogs are drowning in generated prose. Here are five rules to write with actual voice before readers learn to skip yours on sight.
- malaysiahiring
Malaysia's 900 AI startups need backend engineers, not prompt engineers
The capital has arrived. The data centers are built. The thing Malaysia is still short of is the decade-accumulated skill of building systems that stay correct.