Lead Software Engineer - Low Latency Java
As a Lead Software Engineer at JPMorgan Chase within the Global Liquidity and Cash Management Technology team, you will help promote technical delivery by making significant technical contributions as key member of a team with a reputation for rapidly delivering exciting and innovative capabilities.
We are seeking a highly motivated Lead Software Engineer, to drive development of cutting-edge technology solutions for the Corporate & Investment Bank’s Payments business. You'll play a pivotal role in building the next-generation low-latency wholesale banking platform, designed for global scale, supporting hundreds of millions of accounts and responding in milliseconds to thousands of requests every second. We seek a passionate technologist eager to learn, grow, and apply their skills to build a significant new platform.
As a technical lead, you will help drive technical delivery by making significant technical contributions as key member of a team with a reputation for rapidly delivering exciting and innovative capabilities. Initially, you will be responsible for leading the development of the quality engineering framework to support the validation of a complex, low latency distributed system. The role’s scope is broad and will extend to include contributions across the entire project including the delivery of production code.
Day to day you will write your own performant, secure and thread-safe code and help your team grow their technical capabilities, through paired programming and code reviews. You will collaborate with colleagues from Product, Architecture, Infrastructure and Engineering to develop efficient technical designs that deliver new client features, whilst achieving stringent non-functional requirements for security, performance and availability.
This exciting role provides you with the opportunity to see the direct impact of your contributions on the liquidity business and receive client feedback from around the globe. While banking experience is not required, you must be a passionate and well-rounded technologist, eager to continuously learn and enhance your skills.
Job responsibilities
- Design and develop robust, high-performance, latency-sensitive code, incorporate security requirements and reviewing code written by team members using software engineering best practices.
- Work closely with Product Owners, Solutions Analysts, Technical Architects and Senior Engineers to design the best technical design and approach for technical development.
- Translate business requirements into technical solutions, recommend alternative technical and business approaches, and lead engineering efforts to meet ambitious timelines with optimal solutions.
- Produce architecture and design artifacts for complex applications while being accountable for ensuring design constraints are met by code.
- Assess compliance, risks, and vulnerabilities to ensure all systems and baselines are operationally sound, performant at scale, and exceed customer expectations.
- Contribute to the on-going development of the team, including recruitment, paired programming, peer review and mentoring.
- Collaborate effectively as part of a global team and add to team culture of diversity, opportunity, inclusion, and respect.
- Provide technical leadership to engineering sub-teams focused on the delivery of epics by transforming requirements into stories and a build plan.
- 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.
- Applies knowledge of tools within the Software Development Life Cycle toolchain, including enterprise-authorized AI-assisted development and automation capabilities, to improve the value realized by automation.
- Provide out of hours application support and coordination of Production releases.
Required qualifications, capabilities, and skills
- Formal training or certification on enterprise software development concepts and advanced applied experience.
- Excellent understanding of Java 17+ fundamentals and frameworks (e.g. Spring Boot), OO programming paradigms, multi-threading, messaging technologies, and computer networks.
- Strong experience of producing test cases and using automated testing frameworks which support validation of both functional and non-functional requirements (e.g. JUnit, Blazemeter, JMeter).
- Knowledge of relational database technologies (e.g., PostgreSQL and CockroachDB), database resiliency, recoverability, scalability, and security.
- Hands-on practical experience delivering system design, application development, testing, and operational stability. This includes experience with diagramming software (e.g., PlantUML, Lucid, Draw.io, Visio) and technical writing.
- Strong interpersonal, communication, documentation, diagramming, and presentation skills, with experience working with globally distributed teams and stakeholders.
- Passion for technical innovation and staying up to date with emerging technologies.
- Understanding of the full software development lifecycle and agile methodologies.
- Demonstrated technical leadership experience along with coaching and mentoring.
- Demonstrated experience leading effective use of approved AI-assisted software development tools (e.g., for coding, code review, test acceleration, troubleshooting) with the ability to set team expectations for validating AI outputs for correctness, performance, and security.
- Strong understanding of responsible AI use in engineering workflows, including data sensitivity considerations, secure handling of inputs/outputs, and adherence to resiliency and security expectations; experience coaching engineers on safe, compliant adoption within delivery practices
Preferred qualifications, capabilities, and skills
- Experience of low-latency programming techniques and technologies (e.g. Inter-Process Communication, Memory-Mapped Files and Ring Buffers).
- Experience with gRPC and Google Protocol Buffers.
- Experience of working on distributed systems and detailed knowledge of distributed systems design patterns.
- Hands on experience another statically compiled language like Golang, Rust or C++.
- Awareness of key architectural patterns/approaches, algorithms, data structures, cryptography, security protocols (e.g., TLS and OAuth/OIDC), secure system design and Threat Modelling.
- Certified Kubernetes and public cloud knowledge (e.g. CKAD and AWS certifications).