We are seeking a highly experienced and technically astute Java Technical Lead to guide the development of our complex and distributed systems.
You will be instrumental in shaping our technical vision, leading architectural discussions, and mentoring a team of talented Java engineers.
This role requires a deep understanding of Java development, distributed systems, microservices, and modern data store solutions, coupled with proven leadership capabilities.
Responsibilities :
- Provide technical leadership and guidance to a team of Java developers, fostering a culture of technical excellence and innovation.
- Drive architectural design and decisions for complex, scalable, and resilient Java-based applications and distributed systems.
- Lead the design and implementation of microservices architectures, ensuring adherence to best practices for scalability, fault tolerance, and observability.
- Architect and implement deployment strategies for Java applications on Kubernetes, leveraging your understanding of Kubernetes deployment architectures.
- Design and implement solutions leveraging distributed systems technologies such as Kafka and Flink for high-throughput data processing and stream processing.
- Provide expertise and guidance on the selection and integration of various data store solutions, including NoSQL (MongoDB, Elasticsearch, Hadoop), in-memory (MemSQL / SingleStoreDB, Apache Ignite), cloud-based (Snowflake), and relational (Sybase, DB2, SybaseIQ) databases.
- Collaborate with UI development teams, providing guidance on integrating backend Java services with frontend technologies like React and JavaScript.
- Ensure the performance, scalability, and reliability of our Java-based applications and systems.
- Lead code reviews, ensuring code quality, adherence to coding standards, and best practices.
- Drive the adoption of modern development practices, including CI / CD pipelines, automated testing, and infrastructure-as-code.
- Troubleshoot and resolve complex technical issues across the application stack.
- Mentor and coach junior and senior developers, fostering their technical growth and career development.
- Participate in the recruitment and onboarding of new engineering talent.
- Collaborate effectively with product managers, designers, and other stakeholders to define and deliver product requirements.
- Stay up-to-date with the latest trends and technologies in Java development, distributed systems, and cloud computing.
Technical Skills :
Core Java : Deep understanding of core Java concepts, data structures, algorithms, and design patterns.Kubernetes : Extensive experience with Kubernetes deployment architectures, including scaling, orchestration, and monitoring of Java applications.Distributed Systems : Proven experience in designing and implementing solutions using distributed systems technologies like Apache Kafka and Apache Flink.Microservices Architecture : Strong understanding of microservices principles, design patterns, and implementation best practices.NoSQL Databases : Significant experience with one or more NoSQL databases such as MongoDB, Elasticsearch, and Hadoop.In-Memory Data Stores : Experience with in-memory data store solutions like MemSQL / SingleStoreDB and Apache Ignite for high-performance caching and data processing.Cloud Data Warehousing : Experience with cloud-based data warehousing solutions like Snowflake.Relational Databases : Solid understanding and experience with relational databases such as Sybase and DB2 (SybaseIQ experience is a plus).UI Technologies : Familiarity with frontend UI technologies like React and JavaScript, and the principles of integrating backend APIs with the frontend.Spring Framework : Strong experience with the Spring ecosystem (Spring Boot, Spring Cloud, Spring Data).API Design : Expertise in designing and implementing RESTful APIs.CI / CD : Experience with Continuous Integration and Continuous Delivery pipelines.Testing : Proficient in writing unit, integration, and end-to-end tests.Performance Tuning : Proven ability to identify and resolve performance bottlenecks in Java applications and distributed systems.Version Control : Expertise in using Git and related workflows.Build Tools : Experience with build tools like Maven and Gradle.Cloud Platforms (Preferred) : Familiarity with cloud platforms like AWS, Azure, or GCP.Observability (Preferred) : Experience with monitoring and logging tools (e.g., Prometheus, Grafana, ELK stack).Qualifications :
Bachelor's or Master's degree in Computer Science, Engineering, or a related field.10 - 12 years of hands-on experience in Java development.Significant experience in a technical leadership role, guiding and mentoring development teams.Proven track record of designing and implementing complex, scalable, and high-performance Java-based systems.Excellent communication, collaboration, and problem-solving skills.Ability to work effectively in a fast-paced and agile environment.(ref : hirist.tech)