Skip to content

2025 Year Review

Executive Summary

2025 achieved one major milestone: live trading launched with real capital (November).

After 11 months of infrastructure building, recruitment, and strategy development, we deployed arbitrage strategy on Binance + Hyperliquid with $8,800 capital. The system preserved 99.9% capital but didn't achieve profitability due to latency constraints.

Team grew from 2 to 3 (hired Vicky as full-time QR). ML infrastructure is complete but models don't generalize yet.

Year ended with infrastructure disaster recovery but left us with one-command reproducible infra deployment.

We conclude 2025 with live trading capability, exchange BD relationships, and clear understanding of what's blocking profitability.

Plan vs Actual

Business Goals

  • 🔄 Trading Profit: Live trading launched but not profitable yet ($-8.36 loss, 99.9% capital preserved)
  • 🔄 Execution Costs: Fee negotiations secured with OKX and Binance.US BD
  • $1-5K Monthly Profit: Not achieved
  • ML P&L Impact: Models not yet producing usable signals
  • Customer/Investor Engagement: Not pursued - focused on trading first

Tech Goals

  • State Consistency: Fixed PnL inconsistency, websocket issues
  • Risk Limits: Capital allocation and account limits implemented
  • Trade Monitoring: Logfire + dashboard operational
  • Recovery Time: One-command infra redeploy achieved
  • ML Versioning: MLflow + artifact storage deployed
  • ML Monitoring: Logfire integration complete
  • ML P&L Correlation: Models don't generalize
  • 🔄 Collaborative ML Infra: Ready, one researcher active

Team Goals

  • Quantitative Researcher: Vicky hired after successful trial
  • Performance Metrics: GitHub issues + monthly tracking established
  • IP Protection: Separate repos for proprietary vs shared code
  • Trading Engine Engineer: Intentionally deferred until profitability proven
  • 🔄 Frontend Contractor: Gaddafi progressing, areas for improvement remain

Timeline of Key Events

Month Key Event
Jan CI/CD speed improved 50%, shared repository created, initial arbitrage strategy implemented
Feb 200+ candidates sourced, HK company audit passed, decision to maintain HK presence
Mar (Travel/Recovery)
Apr Extensive recruitment - 230 applications, 76 assessments, 8 trials started
May GitLab→GitHub migration, ML infrastructure 75% done, Vicky onboarded
Jun ML pipeline complete (MLflow + Logfire), first model beat historical baseline, Vicky hired full-time
Jul Paper trading deployed, prediction monitoring integrated, pytorch-forecasting added
Aug 11/13 infrastructure items completed, database separation done, break-even not achieved
Sep Hyperliquid gateway integrated, strategic pivot to cross-venue arbitrage
Oct Arbitrage achieved profitability in paper trading, extensive system fixes, didn't launch
Nov Live trading launched - first real capital deployed, identified latency as bottleneck
Dec OKX gateway done, infrastructure disaster + recovery, backtest system deployed

What Worked

Sequential "Infrastructure First" Approach

Building complete ML pipeline before paper trading, then paper trading before live, enabled rapid iteration at each stage. June's infrastructure investment paid off in July's quick paper trading deployment.

Rigorous Recruitment Process

230 applications → 76 assessments → 8 trials → 1 hire. Trial tasks revealed execution speed and quality as better predictors than credentials. Vicky hired after proving ML baseline - results first, then investment.

GitHub Migration

Better CI/CD, AWS integration, and project management than GitLab. Rebuilt pipelines from scratch resulted in cleaner, maintainable configuration.

Discipline to Defer Hiring

Decided not to hire trading engine engineer until profitability proven. Avoided premature team scaling that would have increased burn without revenue.

IaC Investment

December's infrastructure disaster was recovered with one-command redeploy. The investment in infrastructure-as-code enabled recovery that would have been impossible otherwise.

What Didn't Work

Too Many Parallel Goals

May's 5 simultaneous goals resulted in 2 complete, 3 not started. Small team can't parallelize effectively. Sequential execution consistently outperformed parallel attempts.

Over-Engineering ML Before Validating Basics

Extensive architecture work (ternary classification, regime awareness, GradNorm, sentiment features) didn't solve overfitting. Simpler models outperformed complex deep learning. Should have validated simple approaches first.

Delaying Live Trading for Perfection

August to November = 4 months preparing for live trading without deploying. Every month delayed learning critical production lessons - latency issues, dashboard bugs, execution challenges only visible with real money.

Speed Under Pressure Causes Mistakes

December's infrastructure disaster came from rushing manual operations to meet year-end goals. Avoidable error that cost 2 weeks of progress and historical data.

Not Testing IaC Recovery Until Needed

Had IaC but gaps emerged as complexity grew. Discovered gaps (RDS snapshot restore, manual steps) only during actual disaster. Should have done disaster recovery drills.

Year's Learning

Live Trading Reveals What Paper Trading Hides

Four months of paper trading didn't reveal latency as the critical bottleneck. Dashboard metrics that looked fine in simulation were misleading in production. Real money forces confrontation with real problems. Launch earlier, learn faster.

Infrastructure Capability ≠ Trading Profitability

Completed 85% of planned infrastructure in August but still couldn't achieve break-even. Technical excellence doesn't guarantee profitable trading. These are separate problems requiring separate solutions.

Complexity Isn't Progress

ML architecture grew complex (dual models, regime awareness, GradNorm) without improving performance. Simpler models with proper regularization outperformed. Adding features without improving generalization is wasted effort.

Rushing Under Pressure Is Expensive

December's disaster came from trying to go fast under Q4 pressure. Balance speed vs correctness. Lucky this happened with small capital - same mistake with client funds would be catastrophic.