I started building Atlas on July 31. It's now on its third version, and the one running today finally looks like the platform I have been envisioning for a long time. Getting here took two restarts, a reset in the middle of the third attempt, and a few changes of tools. This is what happened, including the parts I'd do differently.

atlas-v1 117atlas 121atlas-next 732process reset
060120180Jul 31: atlas-v1 3Aug 1: atlas-v1 51Aug 2: atlas-v1 3Aug 3: atlas-v1 5Aug 4: atlas-v1 16Aug 5: atlas-v1 12Aug 6: atlas-v1 16Aug 7: no commitsAug 8: no commitsAug 9: atlas-v1 3Aug 10: no commitsAug 11: atlas-v1 8Aug 12: no commitsAug 13: atlas 1Aug 14: atlas 3Aug 15: no commitsAug 16: no commitsAug 17: no commitsAug 18: no commitsAug 19: no commitsAug 20: no commitsAug 21: atlas 3Aug 22: no commitsAug 23: atlas 2Aug 24: atlas 6Aug 25: atlas 3Aug 26: atlas 3Aug 27: atlas 10Aug 28: atlas 8Aug 29: atlas 9Aug 30: atlas 4Aug 31: no commitsSep 1: atlas 24Sep 2: atlas 11Sep 3: atlas 7Sep 4: atlas 6Sep 5: no commitsSep 6: no commitsSep 7: no commitsSep 8: no commitsSep 9: atlas 14Sep 10: atlas 7, atlas-next 22Sep 11: atlas-next 84Sep 12: atlas-next 63Sep 13: atlas-next 27Sep 14: atlas-next 38Sep 15: atlas-next 51Sep 16: atlas-next 19Sep 17: atlas-next 30Sep 18: atlas-next 5Sep 19: atlas-next 7Sep 20: atlas-next 4Sep 21: atlas-next 4Sep 22: atlas-next 28Sep 23: atlas-next 94Sep 24: atlas-next 160Sep 25: atlas-next 96resetAug 1Aug 15Sep 1Sep 15
Commits per day, Jul 31 to Sep 25. The dashed line is the Sep 23 reset.Source: Atlas git history.

Version one: the agent picked the structure

The first version was also my first real project with an AI coding agent, and I didn't know how to set one up. The agent decided the folder structure, and it came up with something I couldn't follow. By the time I understood how the pieces were supposed to fit together, it was too late to fix the foundation. After eleven days and about 117 commits I stopped and started over, this time with a structure I had chosen myself.

Version two: the trade Atlas lost track of

The second version lasted about a month and got further. At one point it placed a paper trade on an OANDA practice account. The trade ended up losing, but the bigger problems were that it wasn't the strategy I had described, and the order reached the broker without its take profit attached. Atlas couldn't match that order against its own records, so I closed it by hand, and then it couldn't account for my manual close either. The architecture for keeping Atlas and the broker in agreement didn't exist yet, so as far as the system was concerned, that trade was simply lost. It showed me that an agent can write code that runs and still not understand what it's building, at least with the coding agents I was using at the time. It's also a big part of why the current version checks every order against the broker's own records and stops when the two disagree.

The OANDA practice platform showing Atlas's first paper trade on EUR/USD. The chart has a stop loss line and no take profit line, and the TP column in the trades table is empty.
First paper trade, Sep 3. The take profit never reached the broker.

We fixed it. The second paper trade reached OANDA with its take profit attached. It lost too, but this time it was reconciled properly.

Other things went wrong in that version too. The agent hard-coded EUR/USD and OANDA all over the codebase, as if I would only trade one market with one broker. My goal is to plug in any supported broker someday, and I couldn't get there without a major refactor. That's a big part of why I started over. The agent also versioned everything as though the system were in production, so I ended up with a version 2 and then a version 3 of the same pieces. I had to tell it plainly that we weren't in production, that nothing in the database mattered yet, and that everything could be reset. Documentation piled up faster than code, a lot of it had to be maintained and ended up going stale, and the agent stopped following directions I had already given it. The historical backtesting that the whole platform depends on never worked well.

Part of the old Atlas experiment form. Field labels read StrategyVersion and DatasetSnapshot, and a data panel reads Proof: OANDA Practice EUR/USD and Policy: ATLAS_HISTORICAL_GAP_POLICY_V1.
Experiment form in the second version, Aug 25. Code names on screen, with OANDA and EUR/USD built into the data.Strategy name hidden.

Version three: 27 workstreams

Around September I switched to Codex, and the results got somewhat better. I also rebuilt the project from scratch as atlas-next. My mistake there was modeling the new version on the old one. I carried over its assumptions along with its good parts, so the baggage came with me. The workflow I built didn't help either. It grew into 27 separate workstreams, and at one point the repository had about 41,000 lines of documentation against 18,000 lines of code. It felt like progress while I was writing it. Looking back, a lot of it was ceremony.

Sep 23
27workstreams opened
88workstream doc files
W001W002W003W004W005W006W007W008W009W010W011W012W013W014W015W016W017W018W019W020W021W022W023W024W025W026W027

 

Workstreams opened in atlas-next, Sep 10 to 23, then archived in the reset.Source: Atlas git history. File counts sampled Sep 12, 15, 18, and 22.

The reset

On September 23, I reset that process and switched to Claude, and things started to work. The plans were better and I rewrote less. It asked better questions before building, understood what I needed, stayed on long tasks and picked them back up, and checked in when it needed a decision from me instead of guessing. I should say that Claude also helped me write this post, so weigh that however you like. The bigger change was that my workflow finally had room for what I actually bring to Atlas.

What I bring that the agent doesn't

I'm a trader, and there's knowledge in trading that you don't get from reading code. What should happen to a setup when the market closes for the weekend? How long should a system wait after the market reopens before it starts trading again? Someone building a trading platform without that experience wouldn't know to ask, and an agent won't ask on its own. Those decisions are what make Atlas mine. Once I spent my time on them and let the agent do the building, it started to look like what I had imagined.

Today the third version runs deterministic backtests on stored data, and on September 27 I started its first paper run on my OANDA practice account. It isn't ready for real money yet. It trades on paper through Friday, and I'll write about how that first week goes.

I was skeptical about using AI to build a trading system. Earlier this year, I took a 30-hour Udemy course on writing forex trading algorithms in Python, hoping I could build something like Atlas someday. It never turned out quite like I wanted. AI agents are what finally let me turn what I know about trading into working software, and that's the part I didn't believe on July 31.