Backend, APIs and integrations
APIs, databases and integrations for the system your company depends on. Built for the day volume triples and someone has to understand what happened at three in the morning.
The backend is where debt piles up out of sight. It works, right up to the day a query takes forty seconds, a partner's integration changes without notice, or nobody can say where an order went. By then, finding out costs more than doing it properly would have.
A versioned, documented API, a database modelled for the queries you actually run, integration with the systems already in place, queues for whatever cannot be synchronous, and enough observability to answer what happened without guessing. How much each piece weighs depends on what your system already has.
It makes sense when the system already has users and cannot go down, when a third-party integration has become a constant source of trouble, or when it is slow and nobody can explain why.
Architecture and domain modelling
Before the code, the model: what is an entity, what is a rule, what is an invariant. It is what keeps the system from becoming a collection of exceptions within two years.
APIs and integrations
A versioned API, documented in OpenAPI and tested. Integration with an ERP, a payment gateway, a carrier or whatever else, with retries, idempotency and defined behaviour for when the other side goes down.
Databases and performance
A schema designed for the real queries, indexes where they matter, and migrations that do not take the system down. A slow query is fixed by reading the execution plan, not by switching databases.
Queues and asynchronous processing
Whatever cannot hold up a request moves to a queue: sending, reporting, integration, reprocessing. With retries, backoff, and somewhere for what failed for good to land.
Authentication, permissions and audit
Login, roles and per-resource permissions, with an audit trail. Who did what, when, and what was there before the change.
Observability and operations
Structured logs, metrics and alerts that point at the cause. The goal is to answer what happened to one specific order in minutes, not in an afternoon.
- Language and runtime
- TypeScript · Node.js · Express
- Data
- PostgreSQL · Redis
- Asynchronous
- BullMQ · Webhooks
- Infrastructure
- Docker · AWS · Fly.io · Vercel
- Quality
- Vitest · Zod · OpenAPI
- Security
- OAuth 2.0 · Helmet · Rate limiting