Job description
Job Title: Backend Node.js Developer
Level: Mid / Senior (3–5 years experience)
Employment Type: Full-time(Remote)
Role Overview
We are looking for an independent, detail-oriented Backend Node.js Developer who writes clean, maintainable code, designs robust database structures, and knows how to optimize queries and background jobs for performance and reliability.
You will own server-side logic, database design, API integrations, and scheduled jobs/cron tasks that keep the system running smoothly.
Key Responsibilities
1. Backend Development & APIs
Design, develop, and maintain RESTful (and/or GraphQL) APIs using Node.js (Express, NestJS, or similar).
Implement business logic, data validation, and error handling in a clean, structured way.
Ensure APIs are secure, reliable, and backward compatible where needed.
2. Database Design, Rules & Optimization
Design and maintain database schemas (tables/collections, relationships, indexes).
Implement database rules and constraints (foreign keys, unique constraints, validations) to maintain data integrity.
Write efficient queries and stored logic where appropriate.
Perform query optimization (indexes, query refactoring, avoiding N+1, caching strategies) to improve performance.
Work with relational (e.g., PostgreSQL/MySQL) and/or NoSQL (e.g., MongoDB) databases as required.
3. Cron Jobs, Scheduling & Background Tasks
Design and implement cron jobs and scheduled tasks (daily/weekly/monthly jobs, maintenance scripts, notifications, clean-ups).
Manage background processing using job queues (e.g., BullMQ, Agenda, or similar).
Monitor job executions, handle failures, and implement retries and alerting for critical jobs.
Ensure that scheduled tasks and jobs are idempotent, fault-tolerant, and efficient.
4. Code Quality & Best Practices
Write clean, modular, testable code following best practices and agreed coding standards.
Maintain a clear project structure and separation of concerns (services, controllers, repositories, etc.).
Participate in code reviews, refactor legacy code where needed, and help improve team standards.
Effectively utilize SonarQube for code quality and security.
Add unit and integration tests for critical logic using tools like Jest, Mocha, or similar.
5. Performance, Security & Reliability
Optimize backend performance (response time, throughput, memory usage).
Implement security best practices: input validation, auth, rate limiting, OWASP considerations, secure storage of secrets.
Use logging and monitoring tools to track system health and diagnose issues.
Contribute to scaling strategies (horizontal scaling, database optimization, caching layers like Redis).
6. Independent Ownership & Collaboration
Work independently on assigned modules/features, from design to deployment.
Break down tasks, estimate work, and manage your own timelines effectively.
Collaborate with frontend developers, product owners, and other stakeholders to clarify requirements.
Provide technical input on architecture, trade-offs, and implementation choices.
Required Skills & Qualifications
Education
Degree/Diploma in Computer Science, Software Engineering, IT, or equivalent hands-on experience.
Technical Skills
3–5 years of backend development experience, with strong proficiency in Node.js.
Hands-on experience with one or more Node.js frameworks: Express, NestJS, Koa, etc.
Strong understanding of relational databases (PostgreSQL/MySQL) and/or NoSQL (MongoDB).
Experience with:
Database schema design and indexing strategies
Query optimization and performance tuning
Implementing cron jobs and scheduled tasks (node-cron, Bull, Agenda, or similar)
Familiarity with Redis or other caching mechanisms is a plus.
Experience with authentication & authorization (JWT, OAuth2, etc.).
Comfort with Git and modern development workflows.
Soft Skills & Mindset
Works well with minimal supervision, able to take a problem and drive it to completion.
Strong sense of ownership and responsibility for stability and quality of backend services.
Good communication skills; able to explain technical decisions clearly.
Analytical thinker with a habit of documenting decisions and processes.
Nice-to-Have
Experience with microservices or distributed systems.
Experience with Docker and containerized deployments.
Familiarity with CI/CD pipelines.
Knowledge of message brokers (e.g., RabbitMQ, Kafka).
Experience working in an agile/Scrum environment.