Morgan Stanley interview prep · updated Oct 2026

Morgan Stanley Backend Developer Interview Questions

Backend Developer 8 questions

Backend work at a firm centred on wealth management and investment work for clients means services that value portfolios, keep the history of every holding, calculate advisory fees and produce client statements. Financial advisors and clients read the output and act on it. Prepare to talk about valuation at scale, data that must be shown as it stood on a past date, permissions between advisors and clients, and correcting past errors. What to show here: figures a client can rely on and history kept intact. Each question below has what the interviewer is checking, an answer frame and a sample spoken answer to adapt.

Behavioral

1. Tell me about a time the business rules in a service had grown so many special cases, as fee schedules for client accounts often do, that nobody felt safe changing it. What did you do?

What they are checking
Checks whether you can bring order to tangled logic step by step, with proof that behaviour did not change.
Answer frame
  1. Describe the service and why it was feared.
  2. Explain how you captured current behaviour.
  3. Show how you restructured it in small steps.
  4. Share the result for the team.
Sample spoken answer

“I inherited a pricing module where each customer type had been added as another branch in one long function. Every change broke something. Before touching it, I recorded real inputs and outputs from production for a few weeks and turned them into tests. Then I moved the rules, one customer type at a time, into a table of rules with clear names, checking the recorded cases after each move. I also asked the business owner which special cases were still in use, and several were not. After that, a new rule was a small reviewed change, and your result.”

Red flag to avoid

Weak answers rewrite everything in one go, or keep adding branches because it is quicker.

Behavioral

2. Describe a time your service was down or slow while internal users, such as advisors preparing for client meetings, were waiting on it. How did you keep them informed?

What they are checking
Checks whether you communicate with non-technical users during a problem and think about what they need to carry on.
Answer frame
  1. Describe the problem and who was waiting.
  2. Explain what you told them and how often.
  3. Show any workaround you offered.
  4. Share what you changed afterwards.
Sample spoken answer

“A reporting service I owned became very slow one morning, and account managers needed reports for customer calls that day. While a colleague looked for the cause, I posted a short note in their channel: what was affected, what still worked, and when I would update them next. I kept to that time even when there was little news. I also exported the most requested report by hand for three people with early calls. The cause was a missing index after a data load. Later I added a status page for that service, and your result.”

Red flag to avoid

Weak answers go silent until the fix, or answer users in technical terms they cannot use.

System Design

3. Design a service that gives a financial advisor the current value of every client portfolio they look after, when there are many accounts, many holdings and prices that change during the day.

What they are checking
Checks how you split stable data from changing data, avoid repeated work and state how fresh the answer is.
Answer frame
  1. Separate holdings, which change rarely, from prices, which change often.
  2. Compute values by joining holdings to the latest price, shared across accounts.
  3. Cache per account with the price time attached.
  4. Cover a missing price and the end-of-day official value.
Sample spoken answer

“Holdings change only when there is a trade or a transfer, while prices change all day. So I would store them apart. Many accounts hold the same securities, so each price is fetched once and shared. An account's value is the sum of quantity times latest price, and I would compute it when asked and cache it briefly, with the time of the prices attached so the advisor can see how fresh it is. For an advisor's whole book, I compute accounts in parallel. If a price is missing, I use the last known one and mark it. The official end-of-day value is computed separately and stored.”

Red flag to avoid

Weak answers recompute every account on every price change, or show values without saying when the prices were taken.

System Design

4. Design the job that produces a statement document for every client account at the end of each quarter, and the way a corrected statement is issued if one turns out to be wrong.

What they are checking
Checks large batch design, checks before release, and versioning of documents that clients may already have read.
Answer frame
  1. Freeze the data as of the period end.
  2. Generate in parallel units that can be retried alone.
  3. Run control checks before any statement is released.
  4. Version documents so a correction replaces without erasing the original.
Sample spoken answer

“I would first take a fixed snapshot of holdings, prices and activity as of the period end, so every statement is built from the same data. The job splits accounts into groups, and each account can be regenerated alone if it fails. Before release, I run checks: every open account has a statement, opening value equals the last closing value, and totals match the books. Documents are stored with a version. If one is wrong, I issue a new version marked as corrected, notify the client, and keep the original on record, because someone may ask what the client was first shown.”

Red flag to avoid

Weak answers read live data while generating, or overwrite a wrong statement as if it never existed.

Technical

5. A client buys the same share on three different days at three different prices, then sells part of the holding. How would you model this so the gain on the sale can be worked out?

What they are checking
Checks whether you store purchases as separate lots and can apply a chosen method for matching sales to them.
Answer frame
  1. Store each purchase as its own lot with date, quantity and cost.
  2. On a sale, reduce lots by an agreed method, such as oldest first.
  3. Record which lots each sale used.
  4. Handle partial lots and later corrections.
Sample spoken answer

“One row per holding with an average cost loses information, so I would store each purchase as a separate lot with its date, quantity and cost. When the client sells, the service picks lots by the agreed method, for example oldest first, and reduces them. A sale can use all of one lot and part of another. I would write a link record for each lot used, with the quantity and the gain, so the result can be explained later. Lots are never deleted, only reduced. If a past purchase is corrected, the affected sales are recalculated and the change is recorded.”

Red flag to avoid

Weak answers keep only a total quantity and an average price, and cannot say which purchase a sale came from.

Technical

6. An advisor should see only their own clients, an assistant sees the clients of the advisors they support, and a client sees only their own accounts. Where and how would you enforce this in the backend?

What they are checking
Checks whether you enforce access in the data layer for every request instead of trusting the screen.
Answer frame
  1. Model the relationships: advisor to client, assistant to advisor, client to account.
  2. Resolve the caller's allowed accounts on the server for each request.
  3. Apply the filter in one shared layer used by every query.
  4. Log access and test with cases that should be refused.
Sample spoken answer

“I would store the relationships as data: which advisor covers which client, which assistant supports which advisor. On every request, the server works out the set of accounts the caller may see from their identity. It never trusts an account id sent by the client without checking it against that set. The check lives in one shared layer that every query passes through, so a new endpoint cannot forget it. When an advisor leaves or a client moves, only the relationship data changes. I would log who viewed which account, and write tests that try to read a stranger's account and expect a refusal.”

Red flag to avoid

Weak answers hide accounts in the user interface only, or check permission in some endpoints and not others.

Scenario

7. You discover that an advisory fee was calculated slightly too high for a group of client accounts last quarter, and the clients have already been charged. What do you do?

What they are checking
Checks how you handle a past money error: measure it exactly, escalate, correct with a record, and fix the cause.
Answer frame
  1. Confirm the error and its exact scope with a query.
  2. Escalate to your lead and the business owner at once.
  3. Prepare corrections as new entries for review.
  4. Fix the rule, add a test and check other periods.
Sample spoken answer

“First I would confirm it with a worked example and then find every affected account and the exact difference for each. I would take that to my lead and the business owner the same day, because clients were overcharged and the firm will need to decide how to tell them. The repair is a new credit entry on each account that refers to the original fee. I would not edit the past charge. The list of credits is reviewed by a second person before it runs. Then I fix the rule, add the failing case as a test, and check earlier quarters for the same fault.”

Red flag to avoid

Weak answers fix the code for next quarter and leave the past charge alone, or change old records in place.

Why this company

8. What draws you to backend work behind portfolios, fees and client statements at Morgan Stanley?

What they are checking
Checks whether you find the data problems of wealth management interesting in themselves.
Answer frame
  1. Say which data problems in investing interest you.
  2. Connect them to advisors and clients who act on the output.
  3. Link to your backend experience.
  4. Say what you want to learn.
Sample spoken answer

“I like backend work where time matters in the data. In wealth management you must know what a client held, what it was worth and what you told them on any past day, even after later corrections. That is a harder and more interesting problem than storing the latest state. At Morgan Stanley the output reaches advisors and clients who make real decisions with it, so there is no room for a figure you cannot explain. I have built billing and reporting services, and I would like to learn the investment side properly: lots, valuations and how fees are derived.”

Red flag to avoid

Weak answers speak about finance paying well or being fast, and never mention the data or the clients.

Salary questions come last

No figures on this page: pay depends on the level, the city and the offer in front of you. When the offer comes, the free salary negotiation script helps with that part.

For the call itself

The questions above are the prep. On the real call, ClapAssist helps with the ones you did not practice.

ClapAssist is an AI interview assistant for Mac and Windows. It listens to the interview on your computer and shows you what to say, in short lines you can read while you talk. Your live interview audio and screen are never stored. Your resume and notes are saved to your account so the app fills them in on any computer. It is hidden from screen share on every plan, including Free; only you can see it.

Download with 10 free minutes
Mac and Windows · Stays out of screen share · No card