Role Overview
We are looking for a Backend Developer with 3+ years of hands-on experience developing, testing, deploying, and maintaining scalable backend applications using Node.js, TypeScript, and Fastify. The ideal candidate should have practical experience with REST APIs, PostgreSQL, Redis, asynchronous processing, automated testing, CI/CD pipelines, Docker, Linux VMs, and production troubleshooting. Experience working with IoT, telemetry, event-driven, or high-volume backend systems will be an added advantage.
Key Responsibilities
• Design, develop, and maintain backend services using Node.js, TypeScript, and Fastify.
• Develop secure, scalable, and maintainable REST APIs.
• Work with Fastify plugins, hooks, decorators, schemas, validation, authentication, and authorization.
• Implement clean and maintainable backend code following established coding standards.
• Develop database functionality using PostgreSQL and optimize SQL queries, joins, transactions, and indexes.
• Work with Redis for caching, Pub/Sub, distributed processing, or background jobs.
• Develop and maintain asynchronous and background processing services.
• Work with message brokers and event-driven systems, including retries, failure handling, idempotency, and duplicate-processing strategies.
• Handle high-volume data processing efficiently.
• Write unit, integration, and API automation tests and maintain good coverage for critical functionality.
• Participate in peer code reviews and ensure coding standards are followed.
• Build and maintain CI/CD pipelines for build, lint, type checking, tests, packaging, and deployment.
• Build and maintain Docker images for backend applications.
• Deploy and troubleshoot applications running on Linux VMs and container platforms.
• Monitor production applications and investigate performance or availability issues.
• Collaborate with frontend, IoT, DevOps, database, QA, and other engineering teams.
Mandatory Technical Skills
Node.js & Fastify
• Strong Node.js and TypeScript development experience.
• Hands-on experience with Fastify.
• REST API development and asynchronous programming using Promises and async/await.
• Fastify plugins, hooks, request/response validation, authentication, and authorization.
• JWT-based authentication, error handling, structured logging, and configuration management.
Database
• Strong hands-on experience with PostgreSQL and SQL.
• Good understanding of joins, transactions, indexing, query optimization, connection pooling, and database migrations.
• Ability to troubleshoot database performance issues in production.
• Experience with time-series databases such as TimescaleDB is an advantage.
Redis
• Practical experience using Redis for caching, Pub/Sub, background processing, or distributed application use cases.
• Experience with BullMQ or similar job-processing frameworks is preferred.
Message Queues & Event-Driven Systems
Practical knowledge of at least one messaging technology such as NATS / NATS JetStream, Kafka, RabbitMQ, AWS SQS/SNS, Azure Service Bus, or similar message-broker technologies.
• Understanding of producers, consumers, message acknowledgements, retries, and dead-letter handling.
• Understanding of consumer concurrency, duplicate message handling, idempotency, message ordering concepts, and failure recovery.
Automated Testing
Writing automated tests is a key responsibility for this position. The candidate should be comfortable writing tests as part of normal feature development.
• Unit testing, integration testing, and API testing.
• Fastify API testing and dependency mocking.
• Database integration testing.
• Authentication, authorization, negative, and error-scenario testing.
• Understanding of test coverage.
• Hands-on experience with Vitest, Jest, or similar testing frameworks.
CI/CD
Hands-on experience creating or maintaining CI/CD pipelines using GitHub Actions, GitLab CI, Jenkins, Azure DevOps, Google Cloud Build, or similar platforms.
• Automated builds, linting, type checking, and test execution.
• Docker image creation and deployment automation.
• Environment-specific configuration and secret handling fundamentals.
• Pipeline failure troubleshooting and rollback fundamentals.
Docker & Containerization
• Docker and Dockerfile development.
• Multi-stage Docker builds and image optimization.
• Container networking basics, environment variables, health checks, and logs.
• Ability to troubleshoot containerized applications.
Linux VM Management
The candidate should be comfortable managing and troubleshooting backend applications running on Linux VMs.
• SSH and common Linux commands.
• File and directory permissions.
• Process management using systemd, PM2, or equivalent tools.
• Environment configuration and application logs.
• CPU, memory, disk, port, and network troubleshooting.
• Service restart and recovery procedures and basic firewall concepts.
• Ability to investigate application crashes, high CPU usage, memory issues, disk-space issues, networking problems, and service availability problems.
Production Troubleshooting
• Slow APIs and high API error rates.
• Application crashes, memory leaks, and high CPU utilization.
• Database connection exhaustion and slow database queries.
• Queue backlogs and failed background jobs. • Deployment failures, network connectivity issues, and VM resource issues.
Monitoring & Observability
• Knowledge of Prometheus, Grafana, cloud monitoring platforms, or centralized logging systems is preferred.
• Understanding of application health, API latency, error rates, CPU, memory, database connections, queue backlog, and worker-failure monitoring.
Good to Have
• NATS JetStream, TimescaleDB, BullMQ, WebSockets, PgBouncer, or PostgreSQL read replicas.
• Google Cloud Platform / Cloud Run, AWS, or Azure.
• Prometheus, Grafana, Firebase Cloud Messaging, ClickHouse, or Kubernetes basics.
• Experience with IoT platforms, device telemetry processing, distributed systems, or high-volume event processing.
Expected Candidate Profile
• Able to understand requirements and independently develop backend functionality.
• Able to design APIs and database changes appropriate to the assigned feature.
• Writes automated tests as part of feature delivery.
• Participates effectively in code reviews and follows coding standards.
• Can create or maintain CI/CD pipelines and troubleshoot failures.
• Can deploy, monitor, and troubleshoot backend applications in production.
• Has practical production experience beyond basic CRUD API development.
• Experience with scalable, distributed, event-driven, IoT, telemetry, or high-volume backend systems is highly preferred.