We are looking for a skilled Distributed Cache & Java Support Engineer to join our team and provide expert support for distributed caching solutions. The ideal candidate will have a strong background in Java development combined with practical experience in enterprise distributed cache or in-memory data grid technologies. This role involves assessing cache use cases, onboarding Java and Spring Boot applications to the distributed-cache platform, troubleshooting distributed-cache issues, and performing JVM diagnostics to ensure optimal performance.
Key Responsibilities
- Provide production support for distributed cache clusters and Java application integrations.
- Monitor cluster health indicators such as partition distribution, memory usage, latency, throughput, capacity, and overall performance.
- Support configuration and troubleshooting of cache components including distributed maps, Near Cache, eviction and expiry/TTL policies, partitioning, backup and replication, serialization, and cluster discovery.
- Diagnose and resolve cache-related incidents, including high latency, memory pressure, member restarts, split-brain scenarios, data inconsistencies, and performance degradation.
- Collaborate with application, infrastructure, and vendor teams to investigate issues and drive timely technical resolutions.
- Review and modify Java or Spring Boot code to onboard new application use cases onto the distributed-cache platform.
- Work closely with application teams to understand use cases, data models, access patterns, expected loads, and caching objectives.
- Implement and validate application-side cache integration changes, including serialization, distributed maps, Near Cache, eviction/TTL settings, and client configurations.
- Troubleshoot JVM and application issues during onboarding, integration testing, and production stabilization phases.
Required Qualifications
- Bachelor’s degree in Computer Science, Software Engineering, Information Technology, or a related field.
- Minimum of 7 years of relevant experience in Java backend development, Java application support, distributed systems, or related engineering roles.
- At least 3 years of hands-on experience with distributed caching or in-memory data grid technologies integrated with Java applications.
- Strong hands-on Java development skills, including the ability to write and modify Java code effectively.
- Proficient in JVM troubleshooting techniques such as memory management, garbage collection analysis, thread dumps, heap analysis, and performance tuning.
- Experience with Spring Boot development or application support, particularly in cache integration and use-case onboarding.
- Practical experience with distributed caching or in-memory data grid platforms such as Redis, Hazelcast, Apache Ignite, Ehcache, Oracle Coherence, Infinispan, Memcached, or similar technologies. Training will be provided on the selected platform.
- Solid understanding of distributed maps, Near Cache, eviction/expiry/TTL policies, partitioning, backup/replication mechanisms, split-brain resolution, serialization, and cluster discovery processes.
Preferred Qualifications and Benefits
- Experience supporting production applications in mission-critical environments like banking or telecommunications, including incident triage, root cause analysis, and documentation.
- Basic exposure to Kubernetes, containers, Linux, networking, and optionally Anthos or OpenShift; deep platform expertise is not mandatory.
- Familiarity with CI/CD pipelines and deployment troubleshooting.
- Experience with monitoring and management tools such as Splunk, AppDynamics, or Hazelcast Management Center.
- Basic knowledge of TLS/mTLS and certificate troubleshooting.
This role offers the opportunity to work with cutting-edge distributed caching technologies and collaborate with diverse teams to optimize application performance and reliability. If you have a strong Java background combined with distributed cache expertise and enjoy solving complex technical challenges, this position could be an excellent fit.