Software Engineer - Currencies and Emerging Markets
In launching your career in our Software Engineering Group, we look first and foremost for people who are passionate around solving business problems through innovation and engineering practices. You will be required to apply your depth of knowledge and expertise to all aspects of the software development lifecycle, as well as partner continuously with your many stakeholders on a daily basis to stay focused on common goals. We embrace a culture of experimentation and constantly strive for improvement and learning. You'll work in a collaborative, trusting, thought-provoking environment-one that encourages diversity of thought and creative solutions that are in the best interests of our customers globally.
Athena is J.P. Morgan's cross-market risk management and trading system that provides functionality for traders, salespeople, operations and product control staff globally. It is used in our foreign exchange, fixed income, credit and commodities businesses. Athena includes a globally replicated object-oriented database, a powerful dependency graph and a fully integrated stack across pricing, risk and trading tools. The code is a combination of Python and C++: C++ for speed, and Python for flexibility and rapid but controlled releases. Athena is designed to provide a continuous deployment environment, and pull developers close to the business to help increase revenues, while improving operational processes and controls to reduce costs.
The Currencies and Emerging Markets (CEM) Athena team delivers business critical trade capture, risk management, transaction processing and trader tools to the CEM business globally. The CEM Athena roles require technically strong and disciplined python developers. A record of delivering high quality, well-tested solutions in a mature controlled environment is a prerequisite. The roles require an ability to attain clear understanding of Athena environment and of the unique design considerations that come into play in a diverse and highly interdependent systems environment. A high level of interaction with the business is required as the applications involved are revenue generating and directly used by the businesses globally.
This is a unique opportunity for delivery-minded individuals to take ownership of the full software development lifecycle, partnering with the CEM business to understand and improve business workflows. The successful candidate will be empowered to build relationships with the Singapore front-office and quantitative research teams in order to deliver local requirements, provide business face-off and technical support, enhancements and fixes to the local users, as well as to own the delivery of Asia Pacific requirements on large-scale, global re-engineering initiatives
This role requires a wide variety of strengths and capabilities, including:
- BS/BA degree with 1 or more years of software engineering experience, preferably within the Financial Services sector
- Proficiency in one or more of the following modern programming languages: Python, Java or C++.
- Willingness to become proficient and develop in Python if not already a primary language
- Experience in finance or investment banking as an application developer preferred, or willingness to rapidly learn the business domain
- Enthusiastic, self-motivated, strong interest in learning, effective under pressure and willing to take personal responsibility / accountability.
- Eager to take ownership of work, have real business impact, overcome obstacles and take it through to completion, working as part of this team and collaborating with a much bigger community of developers sharing the technology and code base.
- Ability to manage multiple tasks concurrently in an efficient and effective manner with minimal supervision.
- Excellent communication and interpersonal skills with the ability to present complex issues to non-technical users and to influence change.
- Good problem solving skills with an ability to find creative, out of the box solutions to complex problems
- Good understanding of Agile development methodologies, responsible for elucidating and agreeing requirements, building relationships with business users, and taking ownership of deliverables all the way to the production environment and beyond
- Focus on testing through the entire development cycle to produce reliable and maintainable software