Backend Engineer
Our client is looking for a passionate Senior Java Backend Developer to design and develop backend software solutions for the international, growing cruise industry. The platform is built as a distributed system of 30+ microservices on Kubernetes, with event-driven architecture powered by Apache Kafka, distributed caching via Hazelcast, and search/read-model capabilities via Elasticsearch/OpenSearch.
Requirements:
• Strong, hands-on experience in the respective discipline at a senior level;
• Proficient knowledge of Java 17/21, Spring Boot 3.x, and Hibernate 6.x, including modern language features;
• Strong experience building and operating event-driven microservices with Apache Kafka and/or Kafka Streams;
• Hands-on experience with distributed caching and in-memory data grids, ideally Hazelcast (cluster topology, partition management, split-brain protection);
• Strong experience in IAM and API security (implementation of frameworks in microservices, ideally Keycloak);
• Experience with Elasticsearch/OpenSearch for search, read-model/CQRS patterns, and operational concerns (index templates, ILM policies, shard management, slow-query diagnosis);
• Solid relational database experience with MySQL across multi-schema environments, including schema design, data migration, and performance tuning;
• Experience with JVM performance and memory diagnostics (heap/off-heap analysis, GC tuning such as G1GC/ZGC, startup time optimization via CDS/AppCDS);
• Proficient understanding of code versioning tools, such as Git;
• Proficient understanding of OWASP security principles and secure coding practices;
• Experience with observability tooling such as Datadog APM/RUM or OpenTelemetry;
• Implementing automated testing platforms and unit/integration tests;
• Strong understanding of agile methodology;;
• Highly proficient in both spoken and written English.
Would Be a Plus
• Experience with Resilience4j or similar circuit breaker / resilience patterns in microservices;
• Familiarity with AI/LLM integration patterns (e.g. Model Context Protocol, LangChain4j).
Responsibilities:
• Execute full software development life cycle (SDLC) for backend services within a large microservices ecosystem;
• Design and develop event-driven services using Kafka and related streaming patterns;
• Develop flowcharts, layouts and documentation to identify requirements and solutions;
• Write well-designed, testable, maintainable code following team standards;
• Produce specifications and determine operational feasibility;
• Integrate services into a fully functional distributed system running on Kubernetes;
• Develop software verification plans and quality assurance procedures;
• Document and maintain service functionality and architecture decisions;
• Troubleshoot, debug, and upgrade existing systems, including JVM performance and memory issues;
• Deploy services and evaluate operational/monitoring feedback (Datadog, OpenTelemetry);
• Comply with project plans and industry standards;
• Ensure services are kept current with framework and platform updates (Java, Spring Boot, Hibernate);
• Build reusable code and shared libraries for use across services;
• Optimize applications for maximum speed, scalability, and resource efficiency;
• Implement security and data protection across services (IAM, API security, OWASP);
• Design and implement data storage and caching solutions (MySQL, Elasticsearch/OpenSearch, Hazelcast).