Java Team/Tech Lead (offline)

Project: KYC: Re-identification process via MyRaif

 

Requirements

 

-Professional Experience: A minimum of 5 years of experience in Java development, with a proven track record of technical leadership roles

-Architectural Expertise: A thorough understanding of microservices architecture principles, with the ability to design, implement, and optimize scalable microservice-based systems

-Spring Boot Proficiency: Advanced knowledge and practical experience in Spring Boot, including but not limited to MVC, REST, Data, Security, and messaging

-Containerization and Orchestration: Proficient in Docker containerization across various environments and experienced with Kubernetes and Helm for orchestration and deployment

-Messaging Systems: Hands-on experience with Kafka and Kafka Streams for building real-time data pipelines and streaming applications

-Communication Protocols: Knowledge of diverse communication protocols including REST, gRPC, and event-driven messaging

-Continuous Integration/Continuous Deployment (CI/CD): Understanding of CI/CD practices, including the implementation of quality gates to ensure high standards of code quality and reliability

-Testing: Comprehensive experience in unit, integration, and API testing for microservices, ensuring robust and reliable software delivery

-Design Patterns: Good knowledge of Gang of Four (GoF) design patterns, demonstrating the ability to apply these patterns to solve software design problems efficiently

-Contract Testing: Proficiency in contract testing to ensure microservices interact correctly and fulfill predefined agreements

-API Versioning: Experience with managing API versions to maintain compatibility and support progressive enhancement of services

-Ownership: Takes full responsibility for the outcomes of their work, ensuring excellence in delivery and continuous improvement of practices.

 

Optional Skills

 

-Native Images and GraalVM: Experience with GraalVM for compiling Java applications into standalone native images, enhancing startup time and reducing memory footprint

-Cryptographic Protocols: Understanding of cryptographic protocols and their application in securing data and communications within distributed systems

-AWS Cloud Services: Familiarity with AWS Cloud services including EC2, RDS, and DynamoDB, and their use in deploying, managing, and scaling applications in the cloud.

 

Java Technical Lead Responsibilities

 

-Technical Solution Design: Evaluate and select appropriate technical solutions and architectures following thorough decomposition, with a specific focus on microservices. This includes assessing various options and making decisions that align with project goals and technical requirements

-Code Quality Assurance: Enforce coding standards and conventions across the team to maintain high-quality code. This involves leading code reviews, establishing best practices, and ensuring consistency in coding styles and approaches

-Task Decomposition and Distribution: Break down complex user stories into manageable tasks and distribute these tasks among developers to optimize team productivity and project progression. This requires a deep understanding of the project scope and individual team member capabilities

-Software Development: Actively contribute to coding and development activities, demonstrating best practices in software engineering and serving as a model for the development team

-Proof of Concept (PoC) Development: Lead and execute the development of proofs of concept for innovative solutions, new technologies, and architectural patterns. This is critical for validating ideas and determining their feasibility for integration into the project

-Cross-Team Collaboration: Facilitate and align contributions with other teams, ensuring seamless integration and cooperation between different parts of the organization. This includes communicating technical requirements, dependencies, and timelines

-Stakeholder Engagement: Work closely with product owners and stakeholders to accurately estimate task durations, communicate technical challenges, and adjust project timelines as necessary. This involves translating technical details into business contexts and ensuring that project deliverables meet business needs