← All posts

Nine Years, Six Products, One Scoring Engine

We recently went looking for the answer to a simple question — why does RoboTrader trade futures? — and discovered our own records could not answer it.

So we read the whole archive: twenty-three repositories, roughly 1,962 commits, from June 2017 to this month. What came back was not the company we describe on our About page. It was better, and considerably less tidy.

The first commit is not about trading

5 June 2017. The oldest surviving line of our code is boilerplate generated by a cloud provider's project wizard, followed immediately by a content-management system being stood up.

The product was not a trading platform. It was a news product — something that watched what the world was talking about and surfaced the words that were trending. Within days there was a live site. Within two years there was a voice-assistant skill, a React front end, and a family of APIs for headlines, channels, mentions and — the important one — scoring.

That scoring engine is the through-line of this entire story. Everything that follows is it, pointed somewhere new.

Six products, in order

Trending-word news product (2017)sentiment and headline APIs (2019)a re-platform of all of it onto a single data store (2020)equities (April 2020)crypto (April 2020, ten days later)a buy-the-dip service against a retail brokerage (September 2020)futures (2025).

The equities start is worth pausing on, because we had forgotten it. The very first commit in the trading repository says alpha. The next few wire up a brokerage API and a stock-price feed. RoboTrader began as a stock trader, and crypto — the thing everyone remembers us for — arrived ten days later and then consumed the next two years.

The good

The engine compounded even when the products did not.

Six products, and most of them are gone. But the thing underneath — take a stream of noisy inputs, score it, act on the score — never got thrown away. It got sharper each time it was repointed. The system that grades our futures trades tonight is a direct descendant of something built in 2017 to tell you which words were trending in the news.

And the volume tells you where the conviction was. The crypto engine alone accounts for 710 commits — more than the news product, the sentiment APIs, the equities work and the dip-buyer combined. Nobody hedged. When a direction was chosen, it got everything.

The bad

We restarted more often than we finished.

Three of those six products have essentially no ending in the record — they simply stop. The dip-buying service ran for about a week of commits and then nothing, forever. There is no decision, no note, no retrospective. A product died and the only evidence is an absence.

And the re-platforming was constant. The same sentiment APIs were rebuilt onto a new data store, then folded into a serverless architecture, then rebuilt again on our own hardware. A meaningful fraction of nine years went into moving working code from one place to another — each move justified, and collectively enormous.

The ugly

We wrote almost nothing down, and it cost us this year.

Every hard lesson in that archive — that trading frequency is a cost multiplier, that an illiquid instrument is a tax you volunteer for, that you must never add to a position falling against you — was learned expensively and recorded only as code. No post-mortems. No decision log. The reasoning lived in one person's head and in the order the commits happened to be written.

The consequence arrived in 2024, when the same class of problem — unstable instruments — had to be learned a second time, four years after the first, because the first time was never written up.

And then we deleted the evidence. When the strategy moved to futures, the old market vanished from our marketing, our jobs were disabled, and the origin story we published skipped the entire middle of the company. We had a nine-year record and told a two-chapter version of it.

This post exists because someone finally read the commits instead of the About page.

What we would tell anyone building something long-lived

Your abandoned products are not waste; your undocumented reasoning is. Every dead end in that archive contributed something that still runs. What we actually lost was not the products — it was the why, for every decision to stop.

The through-line is worth more than any single product. We spent nine years discovering we were not a news company, a stock trader, a crypto trader or a dip-buyer. We are a scoring engine, and we finally pointed it at a market that holds still.

Write down why you stopped. It is the cheapest thing in this entire story and the only one we consistently skipped.


RoboTrader trades CME micro futures. Trading involves substantial risk of loss and is not suitable for every investor. Past performance is not indicative of future results.