Morgan Stanley
- Designation: Senior Associate
- Term: Aug 2015 - Oct 2018
- Duration: 3 years, 3 months
Summary
Morgan Stanley is one of the biggest global financial service providers. As a college hire, I went through the company’s training program and joined the Confirmations team. For this project, Confirmations means to generate a record of actions taken by an actor(User/financial advisor) with all the relevant details.
Projects
Confirmations
I have worked on trade confirmations application, which generates a record of transaction details of the trade executed by an actor and send relevant parties. It involves multiple steps of collecting the relevant information, validating it against the existing records and then sending the final document by different means.
Rules engine renovation
After that, I moved to a migration project to renovate a Rules engine using latest Java version. This project was specific to the company’s use case, where different teams can define a rule and corresponding action to perform based on that rule.
My Contributions and Achievements
- Enhanced the product by adding new features viz. supporting new trade type
- Managed deployment of new features using company wide change management tool
- Troubleshooting and bug fixes for production bugs
- Successfully renovated legacy application and upgrade it to use latest technologies i.e. latest Java version, faster database, new system architecture
Skills Acquired
- Understanding of Financial products
- Understanding of Software development life cycle
- How different components works for a large scale product
- Debugging a distributed application that spans across multiple services. Identifying the source service that caused the issue and then checking the logs of that service to identify the root cause.
- Standard Deployment practices: Perform a sanity test for a successful deployment. Perform pre-defined rollback steps in case of failure
- Java programming language design patterns: By working on Java based project, I learned how to efficiently use the OOPs (Object Oriented Programming) concepts and different data structures and algorithms suitable for different scenarios.
- Linux command line: Multiple Linux concepts were useful during the debugging process. Eg. SSH, command line tools, bash to automate some checks
- Database migration: During the renovation product, I created an automation script to migrate database tables from old database to new database with different table structures.
- Documentation: It is an essential part of product development and I have contributed in adding documentation for different features, processes and troubleshooting guides.
- Tools and Technologies used:
- Languages: Java, Python, Bash
- Frameworks: Spring, Hibernate
- Database: DB2
- Operating System: Windows, Linux
- Prodect Management Tools: Jira, Confluence
- DevOps: TCM (Change management tool), ServiceNow