Mid Level Software Engineer – Backend
Summary
Builds and evolves scalable NestJS/TypeScript backends with PostgreSQL, Redis, and event-driven Pub/Sub, following clean architecture and strict testing practices.
Responsibilities
- Design and evolve domain APIs in NestJS/TypeScript following a strict layered architecture: thin controllers, business logic in the service layer, data access isolated in repositories.
- Build event‑driven communication between services with Pub/Sub, using patterns such as 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.