About this role
About the Role
We are looking for a Senior Backend Engineer – NestJS to design, develop, and maintain scalable backend services and APIs using NestJS, Node.js, TypeScript, PostgreSQL, MongoDB, and Redis. You will work on secure APIs, integrations, background processing, real-time features, testing, and backend architecture while contributing to a high-quality, production-ready platform.
This is a hands-on senior role requiring strong backend engineering, problem-solving, and experience building production-grade applications. Fintech/payments experience is highly preferred.
Responsibilities
-
Build
-
and extend REST APIs and real-time (WebSocket) features in a modular NestJS
-
application: modules, controllers, services, DTOs, guards, interceptors, and
-
pipes.
-
Model
-
and evolve data in PostgreSQL (TypeORM) and MongoDB (Mongoose), including
-
deploy-safe migrations, data backfills, indexing, and query tuning.
-
Implement
-
policy-based authorization and data scoping for new features.
-
Build
-
asynchronous and scheduled processing: queues with retries and dead-letter
-
handling, idempotent jobs, cron jobs, and event-driven flows.
-
Integrate
-
third-party services: OAuth2 APIs, signed webhooks, schema-driven XML and JSON
-
payloads, and file-based exchanges.
-
Generate
-
documents and data files: PDFs, Excel and CSV imports and exports, and
-
large-file processing.
-
Protect
-
sensitive data with field-level encryption, log redaction, audit trails, and
-
strict input validation.
-
Write
-
unit tests and integration tests against real databases, and keep the OpenAPI
-
documentation current.
## Required
-
4+ years building production APIs with NestJS: dependency injection, custom providers, dynamic modules, guards, interceptors, pipes, exception filters, and the request lifecycle.
-
4+ years of Node.js backend development in TypeScript.
-
Strong PostgreSQL: schema design, transactions, indexing, query plans, and locking. Production experience with TypeORM or a comparable ORM, including migrations.
-
MongoDB with Mongoose, including aggregation pipelines and data migrations.
-
Redis and a job queue (BullMQ or similar): retries, backoff, idempotency, and concurrency control.
-
Authentication and authorization: JWT access and refresh tokens, multi-factor authentication, OAuth2 and SSO, and role- or policy-based access control (CASL or similar).
-
REST API design with OpenAPI (Swagger), and request validation with class-validator and class-transformer.
-
Unit testing with Jest; integration testing with Supertest and Testcontainers or equivalent.
-
Docker and Docker Compose for local development.
## Nice to have
-
Payments or fintech experience: merchant acquiring, ISO and agent models, merchant onboarding and underwriting, KYB and KYC, residuals and commissions, chargebacks.
-
Multi-tenant SaaS design, including tenant isolation with PostgreSQL row-level security.
-
Socket.IO with the Redis adapter.
-
PDF generation with Puppeteer; streaming Excel, CSV, and XML processing; worker threads.
-
Schema-driven integrations: XSD and JSON Schema, with validation in Ajv.
-
Transactional outbox and event-driven design; exact decimal arithmetic for financial calculations.
-
Observability: structured logging, correlation IDs with AsyncLocalStorage, metrics, and health checks.
-
AWS container services, Terraform, and GitHub Actions.
-
Incremental refactoring of large legacy services while raising test coverage.
-
Working knowledge of Angular, for full-stack contributions.
Candidate
Submission Guidelines
-
Please submit a CV detailing each relevant project, including the start and end dates (month and year), role, team size, key responsibilities, and technologies used, to help us accurately verify your experience.
-
Clearly indicate your years of hands-on professional experience with the core technology (NestJS), TypeScript, and other required technologies relevant to the role.