Java Developer - Distributed Systems (6-8 yrs)
Varite
posted 4d ago
Fixed timing
Key skills for the job
We are seeking a highly motivated and experienced Java Developer with a strong focus on building and supporting distributed systems, particularly within a Kubernetes environment.
In this role, you will be instrumental in developing and enhancing our stream processing applications, ensuring their reliability, scalability, and performance.
You will collaborate closely with a talented team to deliver high-quality software, troubleshoot production issues, and contribute to the continuous improvement of our platform.
If you have a solid foundation in Java development and a passion for distributed technologies, we encourage you to apply.
Essential Job Functions :
- Design, develop, and implement new features and enhancements for our existing stream processing applications built using technologies such as Kafka Streams, Flink, or Apache Beam.
- Write clean, efficient, and well-documented Java code.
- Participate in code reviews to ensure code quality and adherence to best practices.
- Provide timely and effective support for production issues related to our stream processing applications.
- Collaborate with the team to diagnose and resolve complex technical problems.
- Assist in addressing compliance-related requirements and ensuring our systems adhere to relevant regulations.
- Write comprehensive unit, integration, and potentially end-to-end tests to ensure the reliability and stability of the software.
- Create and maintain clear and concise technical documentation, including design documents, API specifications, and operational procedures.
- Participate in operational tasks related to the deployment, monitoring, and maintenance of our applications within a Kubernetes environment.
- Contribute to automation efforts for deployment and operational processes.
- Troubleshoot and resolve issues related to the Kubernetes infrastructure and application deployments.
Required Skills :
- Excellent command of the Java programming language and its core libraries.
- Experience with build tools such as Maven or Gradle.
- Familiarity with Java frameworks like Spring or Jakarta EE.
- Expertise in Stream Processing Applications.
- Significant experience and deep expertise in building stream processing applications using at least one of the following technologies:
- Solid understanding of Kubernetes concepts, including pods, deployments, services, namespaces, and configuration management (ConfigMaps, Secrets).
- Experience deploying and managing Java applications within a Kubernetes environment.
- Familiarity with containerization technologies like Docker.
- Good understanding of fundamental distributed systems concepts such as consistency, fault tolerance, and distributed messaging.
- Proficiency with version control systems, preferably Git.
- Experience with other stream processing technologies or message brokers (e.g, Apache Pulsar, RabbitMQ).
- Familiarity with monitoring and logging tools (e.g, Prometheus, Grafana, ELK stack).
- Experience with CI/CD pipelines (e.g, Jenkins, GitLab CI/CD).
- Knowledge of cloud platforms (e.g, AWS, Azure, GCP).
- Understanding of testing methodologies and experience writing different types of tests.
- Experience with performance tuning and optimization of distributed systems.
- Familiarity with compliance standards relevant to the financial industry (if applicable).
Education :
- Bachelor's degree in Computer Science, Engineering, or a related field
Functional Areas: Software/Testing/Networking
Read full job descriptionPrepare for Varite Java Developer roles with real interview advice
5-8 Yrs