Senior Software Engineer – Backend
Summary
Build and maintain scalable backend services in NestJS/TypeScript, designing clean APIs, PostgreSQL schemas, and event-driven systems with Redis and Google Cloud.
Responsibilities
- Design and evolve domain APIs in NestJS/TypeScript following a strict layered architecture: thin controllers, business logic in the service layer, and data access isolated in repositories.
- Build event-driven communication between services with Pub/Sub, using patterns like transactional outbox and idempotent consumers to guarantee reliability.
- Model and optimize PostgreSQL schemas and queries—proper types, indexing, and normalization decisions (when a field should really be a related table).
- Use Redis for caching and session data, with deliberate TTL and invalidation.
- Design clean, versioned REST contracts (plural resources, correct HTTP verbs and status codes, standardized JSON response envelopes).
- Implement authentication and authorization (SSO/JWT via a central gateway), always revalidating permissions on the server—never trusting the client.
- Collaborate with front-end/BFF engineers on typed, contract-first API interfaces.
- Write unit and integration tests as a first-class part of delivery.
- Participate in code and architecture reviews, and help make (and document) sound architectural decisions.
Requirements
- Solid experience with NestJS and the Node.js ecosystem.
- Strong TypeScript and object-oriented / clean-architecture fundamentals (SOLID, separation of concerns, dependency inversion).
- Deep PostgreSQL knowledge: schema design, indexing, query optimization.
- Hands‑on experience with event-driven / message‑based architectures (Pub/Sub, queues, or similar) — retries, idempotency, ordering.
- Comfort with layered / hexagonal service design and keeping business logic out of controllers and infrastructure.
- Experience designing and consuming REST APIs at scale (versioning, contracts).
- Authentication & authorization fundamentals (JWT, SSO, OAuth concepts).
- Docker and containerized deployments.
- Git and Agile workflows (Scrum/Kanban).
- Ability to write unit and integration tests to ensure reliability.
- Strongly desired experience deploying to Google Cloud (Cloud Run, Cloud SQL, Pub/Sub, Secret Manager, Cloud Scheduler / Jobs).
- Redis for caching and real-time data.
- Experience in distributed / multi-service (microservices) systems and monorepo / shared-library setups.
- A reuse‑first mindset: extending shared platform code instead of duplicating.