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
- Develop high-quality production level software solutions for quantum inspired algorithms. 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.
- Contribute to JPMC’s IP by pursuing necessary protections of generated IP
- Identifies opportunities to eliminate or automate remediation of recurring issues to improve overall operational stability of software applications and systems
- 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 -Proficiency in Python
- Demonstrated ability to maintain and develop algorithm software
- 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
- In-depth knowledge of the financial services industry and their IT systems
- Practical cloud native experience
Preferred qualifications, capabilities, and skills
- Proficiency in C / Julia. Proficiency in C++ and Standard Template Library (STL).
- Experience with GPU acceleration and distributed programming of algorithms (CUDA, OpenCL, OpenMP, MPI, AVX).
- 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 running large scale Monte-Carlo simulations. Experience in accelerating annealing type algorithms using GPUs.
- Experience in using FPGAs to accelerate algorithms across machine learning or optimization.
- Experience in finance is a plus, though no prior familiarity with financial use cases is required.