Stocks
The portfolio manager for a multi-account equity book: a daily review, a research pipeline, P&L and the briefings.
Five applications I designed, built and run for a single family office, open here as one live, read-only demo. Every account, position, deal, document and person in it is invented; the screens, the workflows and the market data are the real thing.
Opens in Stocks. Move between the five apps with the switcher at the top of the sidebar. No sign-in, nothing to install.


Each card opens straight into that app's live demo. Details explains what it does and which screens to open first.
The portfolio manager for a multi-account equity book: a daily review, a research pipeline, P&L and the briefings.
The office's system of record: every entity and investment, the properties, distributions, treasury and tax.
Where new deals get decided: a staged pipeline, per-type scoring, underwriting and a memo that grows with the deal.
A monitor for the private book: marks and multiples, operating scorecards and every investor update, read.
The mailbox that files itself: it reads every email and attachment, proposes where it goes, and a person approves.
A family office runs on a surprising amount of software it never set out to own: a book of public equities across many brokerage accounts, a few hundred private investments held through a web of entities, dozens of properties each sending a monthly statement in its manager's own format, a shared mailbox that receives thousands of documents a year, and a pipeline of new deals that each need a decision. For years that lived in linked workbooks, email threads and a few people's memories. These five applications replaced that, one domain at a time, and they are used every working day by the people who run the office.
They were built in-house, by one person, on one stack: Python and Flask, PostgreSQL, server-rendered pages with a light reactive layer, and a careful use of language models where reading unstructured material is the job. Each one has a daily rhythm of its own, with overnight feeds, scheduled briefings and background workers, and each is covered by a large test suite that is deliberately checked by mutation, so a test that cannot fail is found before it is trusted.
The demo is each live application captured page by page, over an invented book that was generated to be realistic rather than tidy: positions that disagree with each other, statements with a line the mapping does not know, deals stuck in a stage, a filing that is late. That is what the real thing looks like, and it is what these tools are for.
One identity across every app, with per-app access grants, device alerts and an account switcher for the people who wear several hats.
A single PostgreSQL cluster with per-app roles, boot-time migrations serialised with advisory locks, and no silent fallbacks to anything else.
An in-app assistant that can read any app the signed-in person is allowed to see, through the apps' own calculations rather than raw tables.
Every database, repository and secret captured nightly to two object stores, one of them immutable, and the whole platform rebuilt from that copy in a rehearsal.
A webhook per app, a serialised safe-deploy that waits out a running import, and a web/worker split so a background job can never take a page down.
Thousands of tests across the five, with mutation passes that re-introduce each defect to prove the test that guards it can actually fail.
The code is private. If you would like to walk through any of it, get in touch.