REST and GraphQL APIs
Versioned, documented endpoints with request validation at the boundary and consistent error shapes, so the frontend team is not reverse-engineering responses from a Postman collection.
Backends that hold up when the traffic arrives — built, documented and handed over by the developer who wrote them.
Most Node.js work I take on is not greenfield. It is a backend that was built quickly, worked fine at ten users, and started falling over somewhere between a hundred and a few thousand. Response times creep up, the database connection pool exhausts under load, and nobody left on the team knows why one endpoint takes four seconds.
That is a solvable problem, and it is usually not solved by rewriting everything. It is solved by profiling the actual bottleneck, fixing the three or four things causing most of the pain, and putting enough instrumentation in place that the next regression shows up before a customer reports it.
Versioned, documented endpoints with request validation at the boundary and consistent error shapes, so the frontend team is not reverse-engineering responses from a Postman collection.
Schema design, indexing, and query work for PostgreSQL or MongoDB. Most 'we need to scale' problems turn out to be a missing index or an N+1 query inside a loop.
JWT or session-based auth, refresh token rotation, role and permission checks enforced server-side rather than hidden behind a disabled button in the UI.
WebSocket and Socket.IO work for chat, live dashboards, notifications and presence — including the reconnection and backpressure handling that gets skipped in tutorials.
Moving slow work off the request path with BullMQ or similar, with retries, dead-letter handling and visibility into what failed and why.
Containerised builds, environment separation, health checks and CI that runs tests before anything reaches production.
Before quoting on an existing system I read it and run it. A fixed price given without that is a guess, and guesses get revised upward later.
One endpoint, one job, one migration — something shippable in days rather than a two-month plan that cannot be course-corrected.
Not 100% coverage theatre. Tests on auth, money, and anything touching data integrity.
A README that works on a clean machine, environment variables documented, and a walkthrough call. You should not need me to deploy it.
Multi-tenant data models, subscription and billing integration, usage metering and admin tooling.
Operations software that replaces a spreadsheet several people are editing at once.
The API layer behind an iOS or Android client, including push notifications and offline sync conflict handling.
Payment providers, CRMs and logistics APIs — with webhook verification and idempotency so a retry does not charge a customer twice.
Yes, and it is a large share of the work I do. The first step is a paid review — typically a few days — where I read the codebase, run it locally, and write up what is actually there: structure, dependency health, the parts that will cause trouble, and what I would do first. You own that document whether or not we continue. It is the only honest way to price work on code I have not seen.
Both. Express is a reasonable default for small to mid-size APIs and keeps the dependency surface small. NestJS earns its structure once several developers are in the codebase or the domain has real complexity. If you already have one, I work in what you have rather than arguing for a migration you did not ask for.
It means a block of my time reserved for your project on a recurring basis — commonly two or three days a week — rather than a fixed-scope project with a fixed end date. It suits teams with an ongoing roadmap rather than one deliverable. You get the same person every week, which is the point.
Expand-and-contract: add the new column or table, backfill it, move reads over, then remove the old one in a later deploy. Each step is reversible on its own. Destructive migrations run behind a backup I have verified restores, not one I assume exists.
You do, from the first commit. Work happens in your repository where possible, or in one transferred to you at handover. No part of the delivery is held back as leverage.
A short call costs nothing, and if your project is a better fit elsewhere I will say so. Replies usually within 24 hours.
Get in touch