- Company Name
- Diabolocom
- Job Title
- Senior Backend Software Engineer, Routing Squad
- Job Description
-
**Job Title**
Senior Backend Software Engineer, Routing Squad
**Role Summary**
Lead the design, development and maintenance of a high‑performance routing engine that connects customers to agents across voice, email, chat, SMS and social media. The role focuses on decoupling the routing logic into a microservice, expanding its capabilities, and ensuring scalability, reliability, and maintainability of the core routing system.
**Expectations**
- Minimum 10 years of software development experience in product‑driven companies.
- At least 5 years of hands‑on Java development.
- Proven ability to design distributed systems, make architectural decisions, and assess performance trade‑offs.
- Strong ownership mindset with readiness to grow into a lead role.
- Comfortable extending and refactoring large, existing codebases.
**Key Responsibilities**
1. Extract the current routing module into a standalone microservice using Java/Kotlin and Spring Boot.
2. Unite inbound and outbound channel routing, introduce interaction scoring, weight‑based distribution, and customizable routing rules.
3. Design and implement the data model in PostgreSQL, ensuring efficient queries and proper indexing.
4. Integrate message brokering (RabbitMQ) for event‑driven routing decisions and use Redis for caching agent availability and routing state.
5. Write unit, integration, and end‑to‑end tests; enforce code quality through reviews and CI/CD pipelines.
6. Collaborate with product managers to capture requirements, translate business rules into technical solutions, and validate ROI of new features.
7. Mentor junior engineers, set technical standards, and contribute to engineering culture.
8. Monitor system performance, troubleshoot incidents, and propose optimizations to enhance latency, throughput, and fault tolerance.
**Required Skills**
- **Languages**: Java (≥ 8, preferably 17/21), Kotlin 1.9.
- **Frameworks**: Spring Boot 3.x, Spring Data, Spring Cloud (optional).
- **Databases**: PostgreSQL (SQL design, query optimization).
- **Messaging**: RabbitMQ (producer/consumer patterns).
- **Caching**: Redis (in‑memory data structures, caching patterns).
- **Containerization**: Docker (image creation, configuration).
- **Distributed Systems**: Microservices architecture, event‑driven design, CAP considerations, horizontal scalability.
- **Testing**: JUnit, Mockito, integration testing, automated test pipelines.
- **Development Practices**: TDD/BDD, CI/CD, version control (Git), code review.
- **Soft Skills**: Strong problem‑solving, communication, stakeholder collaboration, autonomy, leadership potential.
**Required Education & Certifications**
- Bachelor’s or Master’s degree in Computer Science, Software Engineering, or equivalent technical domain.
- Technical certifications (e.g., Oracle Java SE, Spring Professional) are advantageous but not mandatory.