With so much written about both technology start-ups and established firms like Facebook and Google, it’s often overlooked that much of the advancement and investment currently taking place in the industry is being driven by the financial services sector.
Companies like Morgan Stanley typically build much of their own technology systems in-house, creating a demand for graduates with an aptitude to become skilled software developers or infrastructure specialists.
Take the trading floor as an example. The bank is involved in millions of trades every day on behalf of its clients, and this trading activity generates a huge amount of data. Just a single trade will generate a wide variety of different types of information – economic, payment, risk – all with discrete but interconnected functions.
The sheer volume of trades and the resulting data is both an opportunity and a challenge – and rising to this challenge is critical to maintaining high standards of client service. Morgan Stanley’s “Detailed Subledger” (DSL) project is the bank’s response.
Morgan Stanley managing director Richard Sealy and executive director Dhiren Shah, both of whom are closely involved in the project, told us about the business case behind it, why it’s so exciting from a technology perspective, and how graduates can get involved in working on it.
Why was the DSL project set up?
DSL allows all of the bank’s trading-related financial data–from its trading systems, risk models, accounting systems and more – to be held in the same logical store. This has significant advantages that address key business issues that we’re currently facing at Morgan Stanley.
In the challenging markets since the financial crisis, investment banks like Morgan Stanley need to make more efficient use of their key assets, which means we need more powers of analysis and control over our data than ever before.
Storing all of the bank’s financial data together using DSL means that data can be analysed very quickly and efficiently for a range of different purposes. Without DSL, by contrast, the connections between related pieces of information could be missed.
How is the DSL system structured and how was it built?
The system has a three-tier architecture: database, service layer, and user interface.
The database is where we store the vast amount of data for our financial transactions. The user interface is designed to allow users, without any detailed understanding of how the data is stored, to generate complex reports analysing financial data.
The service layer, the link between them, contains a query service that turns user search requests into coded and efficiently structured search queries that will extract the required information from the database quickly and accurately. The query service contains a semantic layer, which recognises certain key search terms to speed up the generation of new queries from user search requests and to help with data management.
For the database we use relational technology for the operational store and detailed transaction drill-through, and columnar technology (for efficient reporting across large scale data).
The components in the service layer were built in-house at Morgan Stanley primarily using the Scala programming language. Scala is a scalable language (hence the name) that blends object-oriented and functional programming concepts. It is a statically typed JVM language that interoperates seamlessly with Java.
The user interface was built on Microsoft’s .NET framework in C# and WPF.
What are some of the most interesting features of the DSL project?
The DSL makes use of bi-temporal data modelling – that is, data is modelled along two orthogonal timelines, the valid time and the transaction time. This means that all amendments to the data are additive (rather than destructive), so that it is always possible to retrieve the state of the data at it actually was at any given time, or alternatively to retrieve it as it should have been once any subsequent amendments have been applied.
The query service is “aggregate-aware”, meaning that it can decide on a case-by-case basis whether its queries use pre-aggregated data for optimised performance or carry out the aggregations itself. It also enforces fine grained entitlements, meaning users can only access data when they’re specifically authorised to do so.
What’s next for the DSL project?
One of the developments coming in the future for the DSL project is the introduction of self-learning capabilities to the query service – that is, enabling it to learn and optimise its functioning based on the search requests it receives and the data that is stored, rather than just following explicitly programmed instructions.
How does work on the DSL project take place day to day?
The core DSL team is made up mainly of Java and Scala developers.
The team uses Agile methodology, working closely together in two-week “sprints” on particular sub-projects, while continuing to review completed elements where necessary. Git is used for source code control.
How can graduates get involved in the DSL project?
There are currently four graduate trainees in the DSL team (one in London, one in Budapest and two in New York). Each of them had Java experience when they joined, but were trained on the job to program in Scala.
We’re keen to find new graduates to join the DSL project, and they can do so through Morgan Stanley’s general technology graduate training programme.
This training programme, which takes place in London and New York, gives graduates a fantastic and very thorough introduction to the bank and its technology work. On completion, graduates are given project-specific training that will enable them to join the team involved in the technology project that interests them most –and we’d say the DSL project is very much worth considering.