Lead Software Engineer - Java

JPMorgan Chase JPMorgan Chase · Banking · Bengaluru, Karnataka, India · Commercial & Investment Bank

Lead Software Engineer role at JPMorgan Chase focused on building and delivering market-leading technology products in a secure, stable, and scalable way. The role involves executing creative software solutions, designing and developing cloud-native, microservices-based applications, and leveraging AI-assisted engineering practices to improve code quality and delivery speed. The engineer will also be responsible for driving team adoption of these AI tools and ensuring responsible AI use within engineering workflows.

What you'd actually do

  1. Execute creative software solutions, design, development, and technical troubleshooting, thinking beyond routine or conventional approaches to build solutions or break down technical problems.
  2. Deliver end-to-end solutions in the form of cloud-native, microservices-based applications, leveraging the latest technologies and best industry practices.
  3. Use domain modeling techniques to build best-in-class business products, structuring software for clarity, testability, and evolution.
  4. Develops secure high-quality production code, and reviews and debugs code written by others.
  5. Drives team adoption of enterprise-authorized AI-assisted engineering practices within the work environment to improve code quality, delivery speed, and operational outcomes (e.g., AI-assisted code review/refactoring, test strategy acceleration, incident/root-cause analysis support), while establishing consistent validation standards (secure coding, peer review, automated testing) and promoting reuse of effective patterns across the team.

Skills

Required

  • Formal training or certification on software engineering concepts
  • 5+ years of hands-on experience in software engineering
  • system design
  • application development
  • testing
  • operational support
  • Proficiency in back-end technologies (e.g., Java, Springboot, Node.js)
  • experience building microservices-based applications
  • Demonstrated ability to independently solve design and functionality challenges with minimal supervision
  • Experience working with cloud platforms (e.g., AWS, Azure, GCP)
  • distributed systems
  • web technologies
  • RESTful APIs
  • web services
  • WebSockets
  • JSON
  • Hands-on experience designing and building scalable applications using SQL and NoSQL databases
  • Understanding of application resiliency
  • Experience with agile development methodologies (e.g., Scrum)
  • understanding of the software development life cycle
  • Proficiency in automation and continuous delivery methods
  • Proficient in all aspects of the Software Development Life Cycle
  • Advanced understanding of agile methodologies such as CI/CD, Application Resiliency, and Security
  • Demonstrated proficiency in software applications and technical processes within a technical discipline (e.g., cloud, artificial intelligence, machine learning, mobile, etc.)
  • Demonstrated experience leading effective use of approved AI-assisted software development tools (e.g., for coding, code review, test acceleration, troubleshooting)
  • ability to set team expectations for validating AI outputs for correctness, performance, and security
  • Strong understanding of responsible AI use in engineering workflows
  • experience coaching engineers on safe, compliant adoption within delivery practices

Nice to have

  • Strong soft skills
  • presentation
  • negotiation
  • mentoring
  • stakeholder management
  • Strong problem-solving
  • analytical skills
  • communication skills
  • Ability to drive broader impact by sharing and contributing best practices
  • Experience in the banking domain
  • AWS certification

What the JD emphasized

  • enterprise-authorized AI-assisted engineering practices
  • AI-assisted code review/refactoring
  • test strategy acceleration
  • incident/root-cause analysis support
  • responsible AI use in engineering workflows
  • data sensitivity considerations
  • secure handling of inputs/outputs