Cloud Services & NestJS Experience
1. Which NestJS libraries and modules have you used, and what did you personally develop with NestJS?
Libraries: @nestjs/common, @nestjs/core, @nestjs/platform-express, @nestjs/typeorm (TypeORM + PostgreSQL), @nestjs/jwt, @nestjs/config, @nestjs/swagger, class-validator/class-transformer
I built multiple NestJS microservices covering domains like user profiles, calendar/scheduling, social interactions (follow/like), and search. Also developed a shared internal npm package for JWT authentication and role-based guards reused across services.
2. What technical and architectural decisions did you make in your NestJS projects?
- Event-driven microservices via GCP Pub/Sub as inter-service message bus
- Shared auth package — extracted JWT auth into a reusable npm package for consistency across all services
- Timezone-aware scheduling — all dates in UTC, business logic in local calendar timezone
- TypeORM datasource pattern — separate datasources for production (PostgreSQL) and tests (in-memory PostgreSQL via pg-mem)
- Polymorphic role-based profiles —
Userentity with conditional relations to role-specific profiles - Pipeline architecture for search — chain of external providers → cache → deduplication → ranking
- Event sourcing for data changes — every profile update publishes to Pub/Sub for cross-service cache invalidation
3. Which AWS, GCP, or Azure services have you used?
AWS: ECS Fargate, S3, SES, SNS, SQS, CloudWatch Logs, Secrets Manager, EC2
GCP: Cloud Run, Cloud SQL (PostgreSQL), Cloud Storage, Pub/Sub, Cloud Build, VPC, Load Balancer, MemoryStore (Redis)
Cloudflare: Workers, Browser Rendering (Puppeteer)
MongoDB: Atlas (managed), Atlas Search
4. Five or six cloud services and your responsibilities:
| Service | Responsibility |
|---|---|
| AWS ECS Fargate | Designed task definitions for multiple service types (API, Queue, Admin, Public) across dev/stage/prod environments; built Prometheus service discovery that auto-detects running ECS tasks via ECS + EC2 APIs |
| GCP Pub/Sub | Implemented event-driven communication between microservices with typed payloads and multiple topics; responsible for reliability and message contract design |
| AWS S3 | Built secure file upload flow: presigned URLs generated by backend, direct client-to-S3 upload; lifecycle policies and CORS configuration |
| Cloudflare Workers + Puppeteer | Built a serverless PDF generation service from scratch: HTML→PDF rendering, browser session pooling for 10x speedup, cron-based session pre-warming, aggressive resource blocking for performance |
| GCP Cloud Run + Cloud Build | Set up CI/CD pipeline: Git push → Cloud Build → Cloud Run deployment; Terraform infrastructure-as-code applied in the same pipeline; IAM service account management |
| MongoDB Atlas Search | Implemented full-text search with permission-filtered queries using Atlas Search indices |
5. What monitoring and observability tools have you used?
- Sentry — error tracking with profiling on both frontend (Next.js) and backend (Express)
- Prometheus (prom-client) — custom metrics (Counters, Gauges) with tenant and organization labels; Node.js default metrics
- CloudWatch Logs — custom Pino transport with batched writes and per-instance log streams
- Pino — structured JSON logging with shared context propagation (request ID, tenant, organization, job, task)
- Datadog — log aggregation and APM in Kubernetes environments. Configured structured Pino logs for Datadog agent ingestion; made an intentional design decision to omit hostname from log base fields in K8s so the Datadog agent correctly tags logs with the node host and preserves Kubernetes metadata (pod, namespace, container). Used Datadog for cross-service log correlation and debugging in production. Also integrated Datadog RUM (Real User Monitoring) and custom events on the frontend for tracking user-facing performance and business metrics.
- Cloudflare Workers Observability — built-in metrics for edge workers
6. How involved were you in monitoring, troubleshooting, and improving the product?
I built the entire observability stack myself:
- Wrote a custom Pino → CloudWatch transport
- Built Prometheus service discovery that dynamically finds running ECS tasks and scrapes metrics from multiple services
- Implemented contextual logging so every log entry carries tenant + organization for request tracing across services
- Designed structured JSON log format compatible with Datadog agent auto-parsing in Kubernetes — ensuring logs are properly tagged with pod, namespace, and container metadata
- Created health-check cron jobs for application heartbeat monitoring
- Integrated Sentry with profiling for performance bottleneck detection
- Set up log stream naming per-instance for easy troubleshooting
7. Did you work on the product continuously after the initial delivery?
Yes. The codebase shows sustained post-launch evolution:
- 50+ data migrations — date standardization to UTC, logo data migration, deal stage restructuring, permissions migration, cache invalidation, attachment extraction
- 40+ cron jobs added after launch — auto-enrich, contact synchronization, relation scoring, inbound email processing, scheduled report generation
- PDF generation migrated from server-side rendering to Cloudflare Workers as a performance optimization
- MCP (Model Context Protocol) integration retrofitted into an existing application for AI agent capabilities
8. What improvements, features, or optimizations did you implement?
Major features:
- Recurring appointment scheduling with timezone-aware overlap detection
- Multi-filter search with composite queries (JSONB fields, price ranges, full-text)
- Full Microsoft Graph integration — Outlook/Exchange sync (emails, calendar, contacts) with deduplication
- OpenAI integration — email information extraction, FAQ generation, chat completions
- MCP server for AI agent interaction
Performance optimizations:
- PDF generation moved to edge workers with session pooling — 10x reduction in generation time
- MongoDB Atlas Search indices for full-text queries
- TypeORM composite queries with aggregation for complex search results
Infrastructure & DevOps:
- Full observability stack from scratch (Pino + CloudWatch + Prometheus + Sentry + Datadog)
- Prometheus ECS service discovery with automated task detection
- Migration framework with CLI runner and per-migration test coverage
- CI/CD pipeline: Git → Cloud Build → Cloud Run + Terraform apply
- Infrastructure as Code for all cloud resources (GCP via Terraform)