Senior Java Software Engineer/Lead Developer
JOB SUMMARY: We are seeking an experienced Senior Java Software Engineer to design, develop, and support large-scale production applications. The ideal candidate will have strong hands-on experience with Java, Spring Boot, microservices, Kafka, and production support. This role also involves system architecture, technical leadership, performance optimization, automated testing, and mentoring junior engineers.
Key Responsibilities:
Design, develop, test, and implement scalable enterprise applications and microservices.
Build reusable components and libraries that can support multiple product teams.
Develop Java-based services using Spring and Spring Boot.
Design and maintain event-driven integrations using Apache Kafka.
Troubleshoot production issues and conduct root-cause analysis.
Define and lead corrective actions for recurring or system-wide problems.
Improve application performance, scalability, resiliency, and reliability.
Identify and reduce technical debt during ongoing development.
Create automated tests and document code, scripts, systems, and technical processes.
Incorporate security best practices throughout the software development lifecycle.
Evaluate technical risks and recommend practical solutions.
Support safe, small, and incremental production releases.
Identify opportunities to reuse solutions and reduce duplicate work across teams.
Explore emerging technologies and develop prototypes when appropriate.
Provide technical guidance and coaching to junior engineers.
Collaborate with development, architecture, security, infrastructure, and product teams.
Recommend improvements to Agile delivery and engineering practices.
Required Qualifications:
7-9 years of experience designing, developing, and implementing large-scale solutions in production environments.
Strong hands-on experience with:
Java
Spring and Spring Boot
Microservices architecture
Apache Kafka
Production application support
Strong understanding of object-oriented design principles.
Experience building and integrating REST APIs.
Experience with automated testing using JUnit or similar tools.
Knowledge of Agile/Scrum development methodologies.
Experience with continuous integration and continuous deployment practices.
Ability to troubleshoot complex systems and perform root-cause analysis.
Strong written and verbal communication skills.
Ability to communicate technical ideas through code, documentation, and diagrams.
Preferred Qualifications:
Experience with PostgreSQL, Redis, Kubernetes, Git, GitHub Actions, Maven, and Azure DevOps.
Experience with cloud platforms such as AWS or Microsoft Azure.
Knowledge of performance optimization, system resiliency, and highly available architecture.
Experience mentoring developers and providing technical leadership.