Senior Java Developer / Principal Engineer
Job Description
We are looking for a Java Developer with experience in building high-performing, scalable, enterprise-grade applications. You will be part of a talented software team that works on mission-critical applications.
Role and responsibility include leading a Java/Java EE Microservice development team while providing expertise in the full software development lifecycle, from concept and design to testing.
Responsibilities:
- Hands-on development and delivery responsibility for the team
- Ownership and management of one or more microservice team and associated technical delivery, maintaining a high bar on quality within the agreed timelines
- Mentor team members for their development and for excellence in delivery, processes and standards
- Requirement analysis and elaboration at feature and story level along with team, backlog owners and product owners
- Story grooming & analysis, scenario definition etc.
- Technical planning and tracking for timely delivery and quality. Ensure delivery as per agreed solution design/architecture and performance criteria.
- Write high quality maintainable production grade code as per the defined architecture and designs
- Write high quality and maintainable unit & parameterized tests to test production code in an automated fashion
- High/Low Level Design – designing feature level solution, REST API contract, event contracts as per predefined guidelines and specifications
- Write API level Test Cases as per the scenarios described by QA/BA/Other development team members. Quality of all Test Code should also be of production grade.
- Deliver continuous improvement to technologies and processes in alignment with architecture team
- Documentation as per defined process and following pre-defined methodology
- Participation and contribution to the release activities and coordination
- Coordinate cross teams and stakeholders for sprint planning and progress on tech topics. Backfill Scrum Master in their absence.
Requirements:
- BS/MS degree in Computer Science, Engineering or a related subject
- Excellent reasoning & analytical skills
- Expert level understanding of Java 8 along with hands on working experience
- Very good understanding & working knowledge of Unit Testing using Junit 5, Mockito or similar tools
- Excellent understanding and working knowledge of Spring framework 5.x with deep knowledge in following modules: Mandatory – Spring Core, MVC, Spring Data, Spring Integration; Optional – Spring Batch, Spring Security, Spring Cloud
- Excellent understanding of REST API, ability to define & maintain REST API as per best practices and conventions
- Good understanding of event driven architecture, ability to define message contracts etc.
- Good knowledge of messaging and experience in either one messaging system like ActiveMQ, RabbitMQ, KAFKA, Kinesis etc.
- Excellent understanding of SQL, ability to write performant & complex queries
- Excellent knowledge of at least one ORM framework like Hibernation along with JPA
- Troubleshooting, bottleneck identification & fixes of performance issues related to Java backend code or SQL queries by profiling Java code with any tool, analyzing SQL execution plan
- Good knowledge of GOF design patterns and ability to write maintainable software using Java
- Experience in Agile software development methodologies e.g. SCRUM ceremonies etc.
- Experience with Microservices Architecture – mandatory
- Experience with AWS Services will be an advantage
Qualification
- Education: BE/B.TECH/ME/M.TECH/MCA/MSc (Computers)
- Years of Experience: 4-8 Years