A few weeks ago, I discovered that the price graph and options risk profile in the system I am building ran on separate codebases.
A seasoned programmer would call that a rookie mistake. It was. Every improvement now had to be made twice, and every new screen threatened to create another version of the same problem.
I run my own capital from Hong Kong across multiple asset classes and currencies, with options as part of the income engine that pays for my life. I need to see the whole book clearly enough to know where the risk sits and whether it has exceeded my thresholds.
I used to be the CFO of a global family office. One of the perks was institutional infrastructure. Now I am one person. My mindset stayed institutional; my purchasing power did not.
A Bloomberg terminal makes sense for a family office or asset manager managing other people’s money. It makes less sense for an individual investing their own, assuming a relevant alternative exists.
I went looking for that alternative. I found broker platforms built around their own execution and retail options software built around the US market. Across several screens, I could monitor individual trades. I could not see the portfolio they created together, particularly once mutual funds, Chinese stocks, and positions in different currencies entered the book.
My first attempt to solve this was Excel. It was good enough to answer one question at a time, badly.
Over the past 6 months, AI has become approachable enough for a tech-savvy individual like me to start rebuilding parts of the institutional infrastructure I once had.
I am building this system to see the book as one book: the positions, currencies, options, hedges, income trades, and the risk each decision creates elsewhere. I can use AI agents to turn an idea into software, then test it, break it, and improve it.
The only sensible way I know to learn is to take on a project large enough to expose what I do not yet know. Two codebases doing the same job exposed one of those gaps.
Why I had to build my own platform
I approach the portfolio like a former family-office CFO, but I buy software as a retail investor. Most retail platforms belong to a broker, cover only part of the investable universe, or cannot visualise options outside the US, let alone calculate risk across the whole portfolio.
I use Interactive Brokers for data and execution because it gives me access to the markets I need. My own layer should sit above it: one place to view every position, every options contract, and the risk they create across the portfolio.
That layer cannot pretend Hong Kong, Europe, and the US work the same way. Each options contract carries its own currency, multiplier, calendar, expiry convention, and data feed. Those differences need to remain with the instrument without forcing me to rebuild the rest of the system around each market.
That requirement decided what I built first.
Options were the first test
At the family office, strategic asset allocation came before individual investments: what the portfolio was for, what it had to generate, and how much risk it could carry. I brought that order with me. My income sleeve has to fund my life. The growth sleeve gets time to compound. My global portfolio management system has to begin with those portfolio jobs, then show how each position changes the risk of the whole book. It is also the starting point for how I benchmark my own book.
I started with options because they make that requirement difficult to ignore. A premium on its own says very little. The contract has to sit alongside the underlying position, the rest of the campaign and the portfolio risk it changes.
Siemens provides one European example. The screen brings the option into the same working view as the rest of my book, with the right currency, expiry, and contract details.

The Greeks, implied volatility and skew calculations have to work at position level before I can trust them across the portfolio.
One curve is not a campaign
A single-leg short call fits in one picture. A campaign does not.
The unit I need to track is the campaign: the opening position, every adjustment that follows and the eventual exit. It may stay unchanged, or I may add and remove capital through new legs or changes to existing ones. The trade can run across several expirations and last for months.
Microsoft is a live example. I own the shares as a long-term position in the growth sleeve and have a fair-value view on the company. The chart represents that exposure with synthetic long stock, built from a long call and a short put, alongside short calls and an unbalanced downside condor. Together, the legs are designed to benefit from a 5–10 per cent price drop or a 10 per cent rise over the next 55 days, while offsetting part of the holding’s positive delta.

The curve is a snapshot of a campaign. Before I close it, I may make no adjustments or several. A fall towards the short-put strikes would require an adjustment or exit before assignment, changing the capital committed, the remaining exposure, and the relationship between the options and the shares I already own.
All of those decisions belong to the same Microsoft trade. The system records each leg across expirations, the cashflows, the risk before and after every adjustment, and my reason for making it. That gives me a decision record for an AI-assisted post-mortem: where the original view was right or wrong, whether an adjustment improved the position, and which parts of the process I should repeat.
An options module is not a portfolio system
The Microsoft campaign shows that I can model and monitor an options position as it changes. The exit is still ahead. It also shows me the boundary of what I have built. A global portfolio system has to show how the risk from that campaign sits alongside the risk elsewhere in the book. Beta-weighted delta and portfolio-level Greeks, the measures I need to understand risk across the whole book, are still later phases of my build plan. So is AI-assisted volatility surface analysis.
The Siemens and Microsoft screens worked until I tried to improve them. Their price graphs and risk profiles ran on separate codebases, so every shared improvement had to be made twice. I spent almost a day rebuilding the graphs around a shared shell, with an adapter for what is different in each output. The next modules can now use the same base.
The repair forced me to ask a question I had missed: when I change something the system uses in several places, how many versions am I maintaining? Until then, I had tested each feature in isolation.
The architectural lesson was that the code should be deep and the interfaces small: one change should not force the same repair in several places.
It is the same mistake as reviewing every holding separately and calling the result a portfolio. Each position may make sense on its own while the structure fails the job of the whole. My two graphs worked. The system beneath them did not.
The responsibility AI leaves behind
The agents had done what I asked. The inconvenience was that I had asked for the wrong thing.
AI makes code cheap to produce. I spend roughly 6 hours a day building, with the rest reserved for investment management and research. My AI bill runs above US$200 a month, and I have spent around 300 hours on the system. So far, the cheap code has been fairly expensive.
I still have to decide what belongs in the system and verify that the outputs match the contracts, currencies, and cashflows in my book. I can delegate the work, as I did at the family office. I cannot delegate the decision to use it. With AI, a weak instruction or unchecked assumption can travel further and faster.
I left employment, but I did not leave the responsibility to remain employable. Building with AI is how I test whether I can still produce useful work without an institution behind me. Spreadsheet fluency once became part of doing my job properly. I think directing AI towards production-ready work is becoming the next version of that skill.
The work has to improve a live portfolio decision or reduce the cost of managing the book. Otherwise, I have built myself an expensive hobby. The project is large enough that I cannot bluff my way through it.
Options modelling is the most developed module, so it has become my test bed. I am less worried by a blank field than by a plausible number produced under the wrong assumptions. I have to check that the exercise model fits the contract, the interest rate fits its currency and a cached quote cannot pass for a live one. Contract identity also has to survive the move across exchanges and trading classes. Across a multi-leg campaign, I check that the fills, net position, P&L, and Greeks reconcile at every stage. Otherwise the screen can look precise while the risk is wrong.
None of this is glamorous. It is the bill for software development, even with AI. I need to know which decisions are embedded in the system, what evidence says it works and what breaks when I change it.
What I still cannot see
I left the family office knowing what I wanted around a portfolio: research I could trust, tools that let me see the risk, and a process for deciding what to do about it. The options workbench now lets me model and monitor positions across markets and underlyings. It cannot yet show me how those positions change the risk of the whole book.
I did not expect to enjoy building it this much.
Volatility analysis is next. Once it reaches the live book, I will publish whether it changes my view of the risk or a decision I make. The harder work is combining the risk from those campaigns with the risk across the shares, funds, currencies and other assets I already own.
If you liked this article, please consider sharing it with a friend.
Word of mouth is how this publication grows.
As of the date of publication, I hold positions in Microsoft. Positions may change after publication without notice. Cohong Lane is a periodical publication made generally available to the public; this is disclosure of my positions, not a recommendation to buy, sell, or hold any securities. Full disclaimer · About Philip.




The most valuable part of this build may be the decision record, not the dashboard. A risk number is useful only if you can trace it back to the contract, quote, currency and assumptions that produced it. Your point about a plausible number under the wrong assumptions really stayed with me: AI can make a system look finished long before it has earned your trust. Recording each adjustment and its rationale gives you a way to test the process later, including the decisions that felt sensible at the time but did not help.
Great work!
Do you have an idea of how much it cost you in tokens and dollars?
Of those 300 hours—how many were spent on testing?