Expoint - all jobs in one place

The point where experts and best companies meet

Limitless High-tech career opportunities - Expoint

JPMorgan High-Performance Computing Research - Lead Software Engineer 
United States, New York, New York 
440101612

03.12.2024

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 applied 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