Expoint - all jobs in one place

Finding the best job has never been easier

Limitless High-tech career opportunities - Expoint

JPMorgan High-Performance Computing Research - Software Engineer III 
United States, New York, New York 
873376420

08.09.2024

Job responsibilities

  • Executes software solutions, design, development, and technical troubleshooting with ability to think beyond routine or conventional approaches to build solutions or break down technical problems
  • Develop high-quality production level software solutions for quantum inspired algorithms. Develop high-performance production level code in C, C++, Python and other languages
  • Write high-quality documentation and unit tests for the software solutions.
  • 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.
  • Be able to benchmark the software solutions of the algorithms for any given business case against state of art solutions in the firm. Identifies opportunities to eliminate or automate remediation of recurring issues to improve overall operational stability of software applications and systems.
  • Produces architecture and design artifacts for complex applications while being accountable for ensuring design constraints are met by software code development
  • Be able to proactively identifies hidden problems and patterns in data and uses these insights to drive improvements to coding hygiene and system architecture
  • Contributes to software engineering communities of practice and events that explore new and emerging 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 3+ years of applied experience.
  • Bachelor’s degree combined with 2+ years of industry experience in algorithm execution or a Master’s or Ph.D. degree in computer science, physics, math, engineering or related fields.
  • Demonstrated ability to maintain and develop high-performance algorithm software
  • Proficiency in coding in Python
  • Proficient in all aspects of the Software Development Life Cycle
  • Hands-on practical experience in system design, application development, testing, and operational stability
  • Experience in developing, debugging, and maintaining code in a large corporate environment with one or more modern programming languages and database querying languages
  • Solid understanding of agile methodologies such as CI/CD, Application Resiliency, and Security
  • Demonstrated knowledge of software applications and technical processes within a technical discipline (e.g., cloud, artificial intelligence, machine learning, mobile, etc.)

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.