Career Central

Connecting people since 1887
Leverage our network to build your career.
Tell us about your professional DNA to get discovered by any company in our network with opportunities relevant to your career goals.

High-Performance Computing Research - Lead Software Engineer



Software Engineering
New York, NY, USA
Posted on Tuesday, July 2, 2024

Job Description

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 JPMorgan Chase within the Chief Technology Office’s Global Technology & Applied Research team, you serve as a seasoned member of an agile team to design and deliver production quality technology implementation in a secure, stable, and scalable way. You are responsible for carrying out critical technology solutions across multiple research areas within the team in support of the firm’s business objectives. You work in close collaboration with the quantum inspired algorithm research team.

Job responsibilities

  • Executes creative software solutions, design, development, and technical troubleshooting with ability to think beyond routine or conventional approaches to build solutions or break down technical problems
  • Develops secure high-quality production code in C, C++, Python and other languages and reviews and debugs code written by others. Write high-quality documentation and unit tests for the software solutions
  • Design and implement high-performance distributed executions of the software solutions and deploy them onto distributed platforms including multi-threaded CPUs, multiple CPUs and GPUs
  • Optimize the software solutions for execution speed, memory efficiency and communication latency through algorithmic improvements and vectorization
  • Work with the quantum-inspired algorithm researchers to identify bottlenecks in subroutines of the algorithms and devise methods to speed up the executions
  • Identify dependencies in the code to ensure seamless execution in other environments
  • Identifies opportunities to eliminate or automate remediation of recurring issues to improve overall operational stability of software applications and systems
  • Leads evaluation sessions with external vendors, startups, and internal teams to drive outcomes-oriented probing of architectural designs, technical credentials, and applicability for use within existing systems and information architecture
  • Leads communities of practice across Software Engineering to drive awareness and use of new and leading-edge technologies
  • Adds to team culture of diversity, equity, inclusion, and respect

Required qualifications, capabilities, and skills

  • Formal training or certification on software engineering concepts with 5+ years of industry experience
  • Bachelor’s degree combined with 4+ years of industry experience in algorithm execution or a Master’s or Ph.D. degree in computer science, physics, math, engineering or related fields combined with 2+ years of industry experience
  • Hands-on practical experience delivering system design, application development, testing, and operational stability
  • Advanced in one or more programming language(s) - Proficiency in Python
  • Experience leading software projects.
  • 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.)
  • In-depth knowledge of the financial services industry and their IT systems
  • Practical cloud native experience
Preferred qualifications, capabilities, and skills
  • Proficiency in C++ and Standard Template Library (STL). Proficiency in C / Julia
  • Experience with GPU acceleration and distributed programming of algorithms (CUDA, OpenCL, OpenMP, MPI, AVX)
  • Familiarity with mainstream compilers (gcc, icc, llvm/clang) especially their features and options related to tuning the performance of the compiled software
  • Experience in implementing data structures for randomized algorithms in big data settings (e.g., Sketching techniques, sampling techniques for numerical linear algebra)
  • Experience in building tensor network libraries for applications in machine learning and optimization. Experience in using FPGAs to accelerate algorithms across machine learning or optimization
  • Experience in running large scale Monte-Carlo simulations. Experience in accelerating annealing type algorithms using GPUs
  • Experience in finance is a plus, though no prior familiarity with financial use cases is required