Service · Node.js · TypeScript · PHP · Payments · Real-time

Backend development

Twelve years of backend work in Node.js and PHP: APIs, payment flows, event-driven services and the databases underneath them. I've led backend teams and I've been the entire backend team, depending on what the project needed.

Where I'm most useful

  • Payments and money movement. Stripe, PayPal, provider integrations, double-entry ledgers, reconciliation jobs. Built so money cannot quietly disappear or be counted twice, and so you can prove it afterwards.
  • Financial systems. Double-entry ledgers, monitoring and reporting, and incident detection with reports - experience from regulated platforms where transactions have to reconcile.
  • APIs. REST and RPC services in Node.js (Express) or PHP (Symfony, Laravel): documented, versioned, tested.
  • Real-time features. Socket.IO and Redis pub/sub for live updates and notifications that hold up when everyone connects at once.
  • Event-driven architecture. Microservices on AWS SQS/SNS where they earn their complexity, and a monolith where they don't. I'll tell you which one I think you need.
  • Databases. PostgreSQL/Aurora and MySQL: schema design, constraints, transactions, replication. This is the part that is hardest to change later, so it is worth arguing about early.
  • Integrations. Stripe, PayPal, Google, Atlassian, Slack, Mailchimp, SendGrid, Intercom, OpenAI, Anthropic and other services.

How I work on code

In your repositories, under your review process, with CI from day one. Everything starts as a written spec and gets reviewed twice before it ships - once by me, once by an AI, because we catch different things. A short written update every week, and documentation as a deliverable rather than an apology. When the project needs UI, I bring a React developer and a designer I've worked with for years, under the same contract.

Tell me what you are running.

A few lines about what you have and what is going wrong is enough to start. I answer within a business day, and then we set up a call.