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 ETT – Options Algorithmic Trading, 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.
Team Overview:
The Electronic Trading Technology (ETT) team is responsible for developing and maintaining the robust technology infrastructure that underpins our electronic trading activities. This includes designing and implementing systems for order management, trade execution, market data processing, and risk management. Within ETT, the Options Algorithmic Trading team specializes in developing and optimizing algorithmic trading engines specifically for options instruments.
Job Responsibilities:
Execute creative software solutions, design, development, and technical troubleshooting with the ability to think beyond routine or conventional approaches to build solutions or break down technical problems. Develop secure, high-quality production code in Java, and review and debug code written by others to ensure adherence to best practices and performance standards. Design and implement algorithmic trading strategies, focusing on optimizing execution and performance in a low-touch trading environment. Collaborate with the product team to translate trading strategies into efficient and scalable algorithms. Continuously improve and refactor existing codebases to enhance performance, implement comprehensive testing, and ensure the reliability of trading systems. Contribute to a team culture of diversity, equity, inclusion, and respect, fostering an environment where innovative ideas and diverse perspectives are valued.Required Qualifications, Capabilities, and Skills:
Formal training or certification on software engineering concepts and proficient advanced experience developing in Java. Hands-on practical experience delivering system design, application development, testing, and operational stability. Advanced in one or more programming language(s). Proficiency in automation and continuous delivery methods. Proficient in all aspects of the Software Development Life Cycle. Experience with algorithmic trading systems and familiarity with trading protocols such as FIX. Practical experience with performance optimization and low-touch system design. Strong understanding of data structures, algorithms, and multithreading in Java. Familiarity with financial markets and trading concepts, particularly in equities and options.Preferred Qualifications, Capabilities, and Skills:
Experience in designing and implementing high-performance, low-touch trading systems. Ability to troubleshoot complex software issues and optimize application performance and reliability. Experience with messaging systems such as AMPS or Kafka, particularly in the context of real-time data streaming and processing. Experience with Cucumber for behavior-driven development (BDD) and testing, particularly in Java environments. Experience with automation tools and scripting languages (e.g., Python, Shell) to streamline testing and reporting. Proficiency in working with Linux operating systems, including scripting and basic administration tasks relevant to trading systems. Familiarity with monitoring and logging tools such as Grafana or Splunk for application performance and system health monitoring.