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.