02 Oct
|
Expatready
|
India
Senior Full Stack Engineer (Backend-Heavy) · Node.js / NestJS / PostgreSQL / AWS
About ExpatReady
ExpatReady is a multi-tenant SaaS CRM built for Canadian immigration practitioners: Regulated Canadian Immigration Consultants (RCICs) and immigration lawyers. Practices use ExpatReady to manage clients, immigration cases and documents in one secure platform.
Our users handle some of the most sensitive personal data there is: passports, financial records, family and travel histories, immigration status. For us, security, tenant isolation, reliability and Canadian data residency are core product features, not afterthoughts. All production data is hosted in Canada (AWS ca-central-1).
The role
We're hiring a Senior Full Stack Engineer whose center of gravity is the backend: roughly 70% backend, 30% frontend, with real hands-on DevOps ownership.
You'll own core backend services (the data model, APIs, tenant isolation, background processing, integrations and the infrastructure they run on) and build the React UI on top of them. You'll work directly with the founder and a small team, with real influence over architecture and technical direction.
There's no separate DevOps or platform team. You'll design, ship and run the system end to end.
Our tech stack
- Backend: Node.js, TypeScript, NestJS
- Database: PostgreSQL, Prisma, Row-Level Security for tenant isolation
- Async and caching: Redis, BullMQ
- Frontend: React, Vite, Refine, shadcn/ui, Tailwind CSS
- Cloud and infra: AWS (ca-central-1), S3, Docker
- AI tooling: Claude Code, Cursor, Copilot
What you'll do
Backend and data (your main focus)
- Design, build and maintain backend services and REST APIs in Node.js and TypeScript (NestJS), with clear module boundaries and business logic kept in services
- Own the PostgreSQL data model: schema design, migrations, indexing, query tuning and data integrity, using Prisma
- Build and harden multi-tenant isolation with PostgreSQL Row-Level Security,
so one practice can never see another's data
- Implement role-based access control for firm owners, practitioners and staff
- Build background and async processing with Redis and BullMQ: notifications, scheduled reminders, retries and failure handling
- Build secure document and file handling on S3: uploads, access control, signed URLs and retention
- Build and maintain third-party integrations and webhooks
- Implement audit logging, input validation, encryption and secrets management across the platform
Frontend
- Build and maintain the React application (Vite, Refine, shadcn/ui) with clean data-fetching patterns and solid component architecture
- Turn backend capabilities into fast, reliable workflows for busy practitioners
DevOps and reliability
- Own CI/CD pipelines, deployments and environments on AWS (ca-central-1)
- Run infrastructure as code, containerized services, monitoring, logging and alerting
- Lead incident response and follow-up when things break, then fix the root cause
- Manage backups, disaster recovery and cost awareness
Engineering quality
- Raise test coverage across unit, integration and end-to-end tests
- Review code, including AI-generated code, with a high bar for correctness and security
- Contribute to architecture decisions and help shape engineering practices as the team grows
What you bring (must have)
- 5+ years shipping production full stack web applications, with strong ownership of the backend
- Strong Node.js and TypeScript; production experience with NestJS or a similar structured framework (Express with strong architecture, Fastify, AdonisJS)
- Strong PostgreSQL: data modeling, migrations, indexing, query optimization, transactions; experience with Prisma or TypeORM
- Solid API design, authentication and authorization (sessions/JWT, OAuth, RBAC), input validation and error handling
- Experience with job queues and async processing (BullMQ, SQS or similar)
- Senior-level React: hooks, data fetching, state management, component architecture
- Hands-on DevOps: AWS, Docker, CI/CD, infrastructure as code, monitoring and observability
- Strong automated testing habits
- Daily use of AI coding tools, plus the judgment to verify, test and reject their output when it's wrong
- Clear written English; comfortable working async with a Canada-based team
Strong plus
- Multi-tenant SaaS experience, especially database-level tenant isolation (PostgreSQL RLS)
- Experience building software that handles sensitive or regulated data (legal, healthcare, fintech, immigration)
- Familiarity with privacy and security frameworks: PIPEDA, GDPR, SOC 2 controls, OWASP Top 10
- Document-heavy workflows: PDF generation or parsing, OCR, e-signatures, file storage at scale
- Experience with Refine, shadcn/ui or TanStack Query
- Early-stage startup experience, where you owned systems end to end
Security and data handling
Because we protect our clients' personal information, this role includes:
- Background verification before your start date
- A confidentiality agreement (NDA)
- Least-privilege, audited access to production systems and data
Work arrangement
- Full time, remote from India
- Working hours: evening/night shift on IST, with daily overlap with Canadian business hours
- Immediate joiners or short notice period preferred
How to apply
Apply through LinkedIn and include a short note (3-5 sentences) answering: "Describe a backend system you owned in production. What broke, and what did you change because of it?"
📌 Senior Backend Engineer (Node.js / DevOps) (India)
🏢 Expatready
📍 India