Mar 20, 2020
Refer to Position Description
Morgan Stanley is a global financial services firm and a market leader in investment banking, securities, investment management and wealth management services. With offices in more than 43 countries, the people of Morgan Stanley are dedicated to providing our clients the finest thinking, products and services to help them achieve even the most challenging goals.
As a market leader, the talent and passion of our people is critical to our success. We embrace integrity, excellence, team work and giving back.
The Technology division partners with our business units and leading technology companies to redefine how we do business in ever more global and dynamic financial markets.
Our sizeable investment in technology results in leading-edge tools, software, and systems. Our insights, applications, and infrastructure give a competitive edge to clients’ businesses—and to our own.
Enterprise Technology & Services (ETS) delivers shared technology services for the Firm supporting all business applications and end users. ETS provides capabilities for all stages of the Firm’s software development lifecycle, enabling productive coding, functional and integration testing, application releases, and ongoing monitoring and support for over 3,000 production applications.
ETS also delivers all workplace technologies (desktop, mobile, voice, video, productivity, intranet/internet) in integrated configurations that boost the personal productivity of our employees. Application and end user services are delivered on a scalable, secure, and reliable infrastructure composed of seamlessly integrated datacenter, network, compute, cloud, storage, and database services.
This role is within the Dynamic Languages team at Morgan Stanley. We are a small, highly skilled team of Python developers whose role is develop and maintain the firm’s proprietary Python modules, set technical direction for Python and collaborate with Python developers in other areas, particularly Machine Learning, to encourage best practices. The team is currently led out of London and this role is part of a build out of the team in Montreal.
Python is one of the most widely used languages at Morgan Stanley, with users in business and quant teams as well as core technology. A large number of critical systems depend heavily on proprietary modules and developers working on these modules require attention to detail as well as experience with modern testing techniques and tools. The firm’s technology platform is undergoing major changes, with the increased adoption of open source libraries, a move to cloud and the widespread adoption of Python across many areas of technology and business.
This role provides a number of opportunities:
- Developing and supporting systems for automated onboarding of Python packages
- Working with our machine learning, numerical analysis, data teams and other users to provide the Python infrastructure, build environment and tooling.
- Maintaining and modernizing core proprietary libraries.
With the continued growth in the number and range of applications using Python this role provides opportunities to gain experience on a broad range of problem areas.
The Dynamic Languages team is part of Enterprise Application Infrastructure (EAI). EAI is responsible for the Python platform at Morgan Stanley, as well as its equivalents in C++, .Net, Java, etc. In addition to the core libraries and frameworks used by developers across Morgan Stanley, EAI also provide technical expertise in all aspects of computing in the form of design advice, performance tuning and hands-on engagements with development teams. This provides a unique insight into how Python, and other languages, are used in large-scale enterprise solutions and the types of problems that occur with deployments of this size. The role requires a developer with strong design skills, strong CS fundamentals, deep knowledge of Python as well as a curiosity about what is happening “under the hood” - how, why and what if are questions that we answer on a daily basis.
The successful candidate should have a passion for technology and an interest in challenging themselves. The required skills are:
- At least 3 years of experience
- Deep knowledge of Python, including internals
- Solid understanding of data-structures, algorithms and other CS fundamentals.
- Strong unix skills, including makefiles
- Natural inclination to dig beneath the surface to understand how things work, why they are a certain way and what the design trade-offs are.
It is a technology-focused role and there is no requirement for business knowledge.
Nice to have:
- Some knowledge of or experience with C/C++
- Windows development (nmake/vc)
Knowledge of French and English is required.
Morgan Stanley is an equal opportunities employer. We work to provide a supportive and inclusive environment where all individuals can maximize their full potential.