These are the questions a Neuberger Berman loop for a Application Developer II, Private Markets Technology (Front Office) actually asks, each with an answer you can adapt and say out loud. Rehearse them first, then run OfferPilot AI live in the interview so the copilot hears the question and drafts your answer in real time.
Opening
Tell me about yourself and why Neuberger Berman.
Give a concise arc of your background in enterprise data systems, SQL Server, window functions, performance-tuned stored procedures, and Python/pandas pipelines, and lead with caring about correctness of the numbers first, then point-in-time storage, idempotent loads, and reconciliation. The framing that lands here is front-office private-markets technology where the data has to be right and engineers sit close to investment decisions. If you are ready to be on-site with the desk, say so plainly.
Domain (Private Markets)
Explain commitment vs. called vs. unfunded, and how exposure is computed.
Define the terms precisely: commitment is total capital pledged, called or contributed is what has actually been drawn via capital calls, and unfunded is the remainder, commitment minus called. Then compute exposure as NAV plus unfunded, because you are economically on the hook for capital that can still be drawn. Close on why it matters for risk: two positions with the same NAV but different unfunded have very different true exposure.
What's the difference between IRR and TVPI, and what is the J-curve?
Distinguish them cleanly: IRR is the money-weighted annualized return that accounts for cash-flow timing, while TVPI is a multiple, total value to paid-in, equal to DPI (realized) plus RVPI (unrealized). Explain you quote both because a high IRR on a quick flip can still be a small multiple. Then define the J-curve as the early-life dip where fees and early markdowns pull returns negative before investments mature and distributions arrive.
SQL / Coding
Get the latest NAV per fund as of a report date.
Restate it as one row per fund, its most recent NAV on or before the report date, and surface the assumptions, possible same-date ties broken by a load sequence, and never letting one fund's data bleed into another. Describe the plan: partition by fund, order by nav_date descending with a tiebreaker, take row number 1. Mention verifying with a same-date restatement across two funds and naming the supporting index on (fund_id, nav_date).
Python / Coding
Forward-fill a fund's NAV time series without leaking across funds.
Call out the two traps up front: filling across fund boundaries and backfilling a future value backward, which is lookahead bias. So group by fund first, sort by date, and forward-fill only, never backfill. Close by describing your test: a fund with a gap fills from the prior value, while a second fund's first row stays NaN rather than inheriting another fund's value.
Data Engineering
How do you make an ingestion load idempotent and safe to re-run?
Make replayability the theme: a load must re-run without duplicates or half-loaded state. Describe keying each row on a natural business key plus a load batch, using MERGE or insert-if-not-exists so a re-run updates rather than duplicates, and wrapping the batch in a transaction for all-or-nothing. Add quarantining bad rows to a reject table, recording row counts around every join to catch fan-out, and comparing money with a tolerance, so a job that dies mid-file lands in exactly the same state on re-run.
Finance-correctness
Why shouldn't you compare two monetary amounts with '='?
Explain that floating-point money accumulates rounding error, so values that should be equal can differ by a fraction of a cent and fail equality, or worse pass when they should not. Say you compare with a tolerance, abs(a minus b) against a max of an absolute and relative tolerance, and for ledgers you use Decimal or integer cents so there is no float at all, rounding at the boundary for analytics. Frame it as a correctness reflex that matters more in front office than any clever algorithm.
Behavioral (STAR)
Tell me about a performance problem you diagnosed and fixed.
Pick a story where you reached for the execution plan and the numbers instead of guessing. Describe a stored procedure that degraded as data grew, finding a non-sargable predicate and a scan where a seek belonged, rewriting to keep the predicate index-friendly, adding a covering index, and switching a RANGE window to ROWS where the frame semantics allowed. Stress that you validated correctness by pinning output to known totals before and after, then measured the runtime drop.
Closing
Do you have any questions for us?
Ask questions that show getting the numbers provably right is what you care about most. Strong ones: how the team handles point-in-time and restatements and whether the store is bitemporal or snapshot-based, what the reconciliation and data-quality process looks like before numbers reach the front office, and where the role sits relative to the investment team and how close the feedback loop is.
Answer these live, not just in practice
Preparation gets you the shape of an answer. In the room, the follow-up you did not rehearse is what decides the loop. OfferPilot AI listens to the interviewer, transcribes on-device, and drafts a speakable answer grounded in your own résumé, while staying off the screen-share stream. Download it free and get 5 minutes a day, or see plans.