Senior Java Developer
Overview :
We are seeking a skilled Senior Java Developer to join our team in developing a highly scalable library for method orchestration and execution in a distributed computing environment, leveraging AWS cloud infrastructure.
This role involves working with cutting-edge architecture, similar to a MapReduce framework, where tasks are distributed across multiple servers, coordinated to produce meaningful aggregated results.
Responsibilities :
- Design and implement a Java-based library that orchestrates and executes methods across a distributed network.
- Develop and maintain code for scalability, ensuring the library can handle extensive distributed workloads.
- Deploy the library within AWS accounts, ensuring robust integration with cloud services.
- Implement Redis for real-time data processing, utilizing Redis Reliable Queues and Redis Streams to manage workflow and data coordination.
- Collaborate with the team to set up and configure AWS components (e.g., S3 for large payloads, Elasticsearch for consumer group monitoring).
- Use DynamoDB as a secondary data store to ensure consistency and reliability of distributed tasks.
- Work with the team to define workflows and ensure smooth communication between command producers and consumers.
- Leverage Pub / Sub messaging systems to support asynchronous workflows and maintain high availability.
Required Skills :
Strong proficiency in Java Core (Java 18 or later) with experience in distributed computing.Deep understanding of AWS services, including experience deploying Java applications within AWS environments.Experience with Redis, including Redis Streams, Pub / Sub, and Reliable Queues.Familiarity with DynamoDB for scalable and reliable data storage.Knowledge of S3 for handling large data payloads in distributed architectures.Understanding of Elasticsearch and event-driven systems in a cloud environment.Ability to work in a highly distributed environment, with an emphasis on scalability and fault tolerance.Preferred Qualifications :
Prior experience with distributed processing frameworks (e.g., MapReduce).Experience with large-scale data processing in a multi-server environment.Familiarity with event-driven architectures and microservices.