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