Technical Leadership: Provide guidance and leadership to the development team in Java best practices and design patterns.
Architecture and Design: Lead the design of software architecture and ensure Java solutions meet project requirements. Responsible for anticipating and identifying technical impediments and solving them with architecture design, technology choices, or prioritization.
Code Reviews: Oversee code reviews, maintain code quality, and mentor team members.
Performance Optimization: Optimize Java applications for performance, scalability, and efficiency.
Team Collaboration: Foster teamwork, facilitate communication, and encourage knowledge sharing among team members.
Mentoring and Training: Mentors and coaches the technical team, specifically with code reviews, pair programming, etc.
Client/Stakeholder Communication: Interact with clients or stakeholders, provide technical insights, and offer solutions to meet project goals.
Works with the Product Owner to align the roadmap with strengths and opportunities within the existing architecture.
Co-creates engineering practices, coding style guidelines, testing approach, etc.
Constantly looking for better ways to solve technical problems and design solutions, not afraid of challenging the status quo.
Requirements
Expertise in Core Java: Demonstrable experience in Core Java is essential, providing the foundation for technical leadership.
Spring Boot: Proficiency in Spring Boot, a popular Java framework for building microservices, is required.
Advanced Programming Principles: Knowledge of advanced object-oriented programming principles like SOLID is necessary for guiding the development team effectively.
API Development: Significant experience in designing and using RESTful APIs, GraphQL APIs, asynchronous message queues, and services.
Architecture Expertise: Proven experience in building and maintaining large-scale distributed architectures, particularly microservices-based architectures.
Database Knowledge: Familiarity with both relational databases (e.g., Postgres, MySQL, Oracle) and NoSQL databases (e.g., Redis) is crucial for making informed architectural decisions.
Testing Advocacy: A commitment to promoting the writing of effective unit, integration, and API contract tests for maintaining code quality.
AWS Knowledge: Required knowledge of AWS tools, including ECS (Elastic Container Service), Cloudwatch, Lambda, RDS (Relational Database Service). AWS certification is a significant advantage.
DevOps Proficiency: Comfort with modern DevOps best practices and tools, such as Kubernetes, Terraform, CI/CD (Continuous Integration/Continuous Deployment), and ElasticSearch.