We are looking for a Full Stack Developer with a strong backend focus who can design, build, and scale reliable production systems.
You will primarily work on backend services and data-intensive workflows using Node.js/TypeScript, while also contributing to React/Next.js applications when required. The role involves building APIs, integrating external data sources, designing efficient data models, processing asynchronous workloads, and developing systems that remain reliable and performant as data volume and traffic grow.
We are looking for an engineer who goes beyond implementing individual features and thinks about architecture, scalability, performance, reliability, maintainability, and the complete lifecycle of a system.
Design, develop, and maintain scalable backend services using Node.js and TypeScript.
Build clean, well-structured REST APIs and service integrations.
Design secure APIs with validation, authentication, authorization, rate limiting, error handling, versioning, and backward compatibility.
Integrate with third-party APIs, feeds, and external data providers.
Build reusable services, modules, libraries, and abstractions.
Handle asynchronous and long-running workloads using queues, workers, scheduled jobs, and background processing.
Design systems capable of handling increasing traffic, data volume, and processing workloads.
Make practical architectural decisions around service boundaries, data flow, storage, caching, queues, and background processing.
Identify bottlenecks and improve throughput, latency, resource utilization, and reliability.
Design for failure using retries, timeouts, idempotency, deduplication, and appropriate error-handling strategies.
Evaluate when to use synchronous processing, asynchronous processing, caching, batching, or event-driven architectures.
Contribute to technical architecture and design discussions.
Design and maintain efficient database schemas and data-access layers.
Work with MongoDB and other databases as appropriate.
Design indexes and data-access patterns based on workload and query requirements.
Optimize queries, bulk operations, upserts, pagination, and data-retention strategies.
Ensure data consistency and prevent duplicate or conflicting records.
Design systems capable of supporting millions of records and high-volume workloads.
Diagnose and resolve database performance issues.
Build reliable background-processing systems using technologies such as Redis, BullMQ, Kafka, RabbitMQ, or similar tools.
Design worker systems with configurable concurrency and controlled resource usage.
Implement retry strategies, exponential backoff, job tracking, and failure handling.
Design idempotent and recoverable processing workflows.
Build processing pipelines that can scale horizontally.
Build and maintain applications and internal tools using React and Next.js.
Develop administrative dashboards and operational interfaces.
Work across the frontend and backend when features require end-to-end ownership.
Build reliable frontend experiences with appropriate loading, validation, error, and empty states.
Write unit, integration, and API-level tests for critical functionality.
Participate in code reviews and maintain high standards of code quality.
Diagnose and resolve production issues across application, database, queue, and integration layers.
Use logs, metrics, profiling, and database analysis to investigate complex issues.
Add appropriate logging, monitoring, metrics, and tracing.
Identify and resolve performance and reliability bottlenecks.
Follow clean code, SOLID principles, modular architecture, and engineering best practices.
Maintain clear technical and setup documentation.
Use Git effectively and contribute to CI/CD workflows.
Work closely with product, QA, DevOps, and engineering teams.
Translate business requirements into practical technical solutions.
Take ownership from requirement understanding through design, implementation, testing, deployment, and production support.
4+ years of professional software engineering experience.
Strong hands-on experience with JavaScript/TypeScript and Node.js.
Strong understanding of backend development, REST APIs, asynchronous programming, and service architecture.
Hands-on experience with MongoDB or another production-grade database.
Experience with Redis and/or background job processing systems.
Good understanding of database indexing, query optimization, transactions/atomic operations, and data consistency.
Experience building applications using React and/or Next.js.
Understanding of system design and scalable architecture.
Strong problem-solving, debugging, and analytical skills.
Experience writing maintainable, testable, production-quality code.
Proficiency with Git and familiarity with CI/CD and modern software development workflows.
Experience designing distributed or event-driven systems.
Experience with BullMQ, Kafka, RabbitMQ, or similar messaging and processing systems.
Experience with Docker and cloud platforms such as AWS, GCP, or Azure.
Experience with microservices or modular monolith architectures.
Experience with application observability, including logging, metrics, monitoring, and tracing.
Experience handling high-volume ingestion, ETL/data processing, search, marketplace, or platform workloads.
Experience with Elasticsearch/OpenSearch or similar search technologies.
Familiarity with performance testing, profiling, and application optimization.
Experience working with XML, RSS, REST, or other external data feeds.
Experience with job/recruitment, marketplace, content, or aggregation platforms.
Experience with Kubernetes or infrastructure-as-code.
Experience with real-time technologies such as WebSockets or Server-Sent Events.
Experience with data pipelines, stream processing, or large-scale ingestion systems.
Familiarity with security practices such as authentication, authorization, rate limiting, and secure API design.
Comfortable using modern AI-assisted development tools while maintaining strong ownership of code quality, testing, security, and technical decisions.
We value engineers who:
Think about why a system should be designed a certain way, not only how to implement it.
Understand the trade-offs between simplicity, scalability, cost, performance, and reliability.
Can break ambiguous problems into smaller, well-defined engineering problems.
Care about edge cases, failure scenarios, and data correctness.
Can independently own a feature or system from idea to production.
Are comfortable learning unfamiliar technologies when the problem requires them.
Communicate technical decisions clearly through code, documentation, and discussion.
Balance short-term delivery with long-term maintainability.
High-volume data ingestion and processing pipelines
External API and feed integrations
Distributed background processing
Data synchronization and reconciliation systems
Search and indexing systems
Internal operational and administrative platforms
Recommendation and ranking-related services
Fraud and platform-abuse prevention systems
Performance and scalability improvements
Developer and operational tooling
These are examples of potential areas of ownership and are not intended as mandatory experience requirements.
Backend: Node.js, TypeScript, Express/NestJS
Frontend: React, Next.js
Data: MongoDB, PostgreSQL, Elasticsearch/OpenSearch
Messaging & Processing: Redis, BullMQ, Kafka/RabbitMQ
Infrastructure: Docker, cloud platforms, CI/CD
Observability: Logging, metrics, monitoring, and tracing
The exact technology choices may evolve. Strong engineering fundamentals and the ability to select the right technology for a problem are more important than knowledge of every tool listed above.
Deliver production-ready features with limited supervision.
Design backend systems that remain maintainable as complexity grows.
Build reliable data-processing workflows that can handle large volumes.
Identify and resolve performance, scalability, and reliability bottlenecks.
Make sound technical trade-offs and clearly explain architectural decisions.
Improve engineering quality through testing, documentation, code review, and automation.
Take ownership of systems and outcomes rather than only individual tickets.
Build solutions that are reliable in production and practical to operate.