Lead Software Engineer – Java
We have an opportunity to impact your career and provide an adventure where you can push the limits of what's possible.
As a Lead Software Engineer at JPMorganChase within the Commercial & Investment Bank, you are an integral part of an agile team that works to enhance, build, and deliver trusted market-leading technology products in a secure, stable, and scalable way. As a core technical contributor, you are responsible for conducting critical technology solutions across multiple technical areas within various business functions in support of the firm’s business objectives.
Job responsibilities
- Designs and develops robust, high-performance, latency-sensitive code; incorporates security requirements; and reviews code written by team members using software engineering best practices.
- Writes secure, high-quality code and automated tests.
- Works closely with Product Owners, Solutions Analysts, Technical Architects, and Senior Engineers to define the best technical design and development approach.
- Translates business requirements into technical solutions, recommends alternative technical and business approaches, and leads engineering efforts to meet ambitious timelines with optimal solutions.
- Helps refine the technical aspects of epics in collaboration with Solutions Analysts.
- Produces architecture and design artifacts for complex applications while ensuring design constraints are met by code.
- Drives architectural reviews, code reviews, and business demos.
- Assesses compliance, risks, and vulnerabilities to ensure all systems and baselines are operationally sound, performant at scale, and exceed customer expectations.
- 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.
- Contributes to the ongoing development of the team, including recruitment, paired programming, peer review, and mentoring.
Required qualifications, capabilities, and skills
- Formal training or certification on software engineering concepts and 5+ years applied experience
- Excellent understanding of Java 17+ fundamentals and frameworks such as Spring Boot
- Strong knowledge of object-oriented programming paradigms, multithreading, messaging technologies, and computer networks
- Experience with low-latency programming techniques and technologies such as Inter-Process Communication (IPC), memory-mapped files, and ring buffers
- Experience with gRPC and Google Protocol Buffers
- Experience working on distributed systems, including detailed knowledge of distributed-systems design patterns
- Detailed knowledge of relational databases (e.g., PostgreSQL, CockroachDB) including resiliency, recoverability, scalability, and security
- Experience with distributed messaging technologies such as Kafka
- 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
- Experience with diagramming tools (PlantUML, Lucid, Draw.io, Visio) and technical writing; passion for technical innovation, staying current with emerging technologies, understanding the SDLC and agile methodologies, and demonstrated coaching/mentoring experience
- Hands-on experience with another statically compiled language such as Golang, Rust, or C++.
- Experience with Apache Ignite, GridGain, Hazelcast, or Redis.
- Experience with infrastructure as code software such as Terraform.
- Awareness of key architectural patterns/approaches, algorithms, data structures, cryptography, security protocols (e.g., TLS and OAuth/OIDC), secure system design and Threat Modelling.