About the Role
We are looking for a Backend Software Engineer to join our engineering team at Ketabchi. You will work on building scalable backend systems, developing microservices, improving existing architecture, and modernizing legacy systems using current technologies and best engineering practices.
We value engineers who enjoy solving complex problems, understand the trade-offs involved in backend architecture, and are comfortable working with both modern systems and legacy codebases.
Responsibilities
Design, develop, and maintain scalable backend services using Node.js and TypeScript.
Build and maintain microservices-based systems.
Apply common microservice patterns and best practices.
Develop and maintain asynchronous systems using message brokers.
Work with MongoDB and PostgreSQL and design efficient database solutions.
Investigate and debug complex production and development issues.
Improve the scalability, reliability, performance, and maintainability of existing services.
Participate in legacy system modernization and migration projects.
Collaborate with other engineers, product managers, and stakeholders to deliver high-quality solutions.
Work with Docker and containerized applications.
Deploy, operate, and troubleshoot services running on Kubernetes.
Contribute to code reviews, technical discussions, and engineering best practices.
Requirements
Strong knowledge of Node.js and TypeScript.
Hands-on experience building backend applications and APIs.
Practical experience working with microservices.
Familiarity with microservice architecture patterns, such as service-to-service communication, asynchronous processing, retries, idempotency, and distributed systems concepts.
Experience working with message brokers such as RabbitMQ or Kafka.
Experience with MongoDB and PostgreSQL.
Strong debugging and problem-solving skills.
Experience working with Docker and containers.
Familiarity with Kubernetes and basic container orchestration concepts.
Good understanding of software engineering principles and clean, maintainable code.
Ability to work effectively as part of a team.
Comfortable working with legacy code and gradually improving or migrating existing systems.
What We Value
At Ketabchi, we are passionate about building scalable systems and continuously improving our technology stack. We believe that good engineers don’t just write new code—they understand existing systems, identify problems, and improve them.
You should be comfortable with:
Working on both new and legacy systems.
Making pragmatic engineering decisions rather than chasing technology for its own sake.
Understanding and improving existing architectures.
Debugging problems across application, database, and infrastructure layers.
Learning new technologies and applying them where they provide real value.
Collaborating closely with your teammates and sharing knowledge.