About this role
Role Overview
MDOTM is seeking a Java Software Engineer to join our Engineering team. You will be actively contributing to the development and optimization of our high-performance Spring Boot backend, ensuring scalability, reliability, and security.
Your responsibilities
• Develop, maintain, and optimize scalable Spring Boot application
• Implement clean, modular, and testable Java code
• Contribute to design and implement features following relational (MySQL) and NoSQL (MongoDB) databases
• Implement and follow best practices in software architecture, leveraging Layered Architecture, DDD, or Event-Driven design
• Troubleshoot and optimize backend performance and security
• Work with DevOps teams to improve CI/CD automation and deployment processes
Requirements
• Experience in Java & Spring Boot (microservices, REST APIs)
• Proficiency with SQL & NoSQL databases
• Experience with software architecture patterns (Layered Architecture, DDD, Event-Driven Design)
• Experience with TDD and testing best practices in Spring Boot (JUnit, Mockito, Testcontainers)
• Experience with messaging systems (ActiveMQ, Kafka)
• Good knowledge of English (both written and spoken)
• Excellent communication skills, with the ability to explain complex problems and solutions to different stakeholders.
Bonus Points
• Experience with modern API communication (GRPC, GraphQL, REST)
• Hands-on experience with CI/CD tools (GitLab Pipelines, GitHub Actions, Jenkins)
• Experience with AWS, especially EC2, S3
• Hands-on experience with Docker & Kubernetes for containerized application deployment and management
• Security best practices for backend applications (knowledge of ISO 27001:2022 Annex A 8.28 is a plus)