
Boba
The AI-native trading platform I co-founded: 20K users, $12.7M volume.
- 20K
- users
- $12.7M
- trading volume
- 5K
- peak weekly actives
- $1.5M
- pre-seed raised
- ~25
- services
- 13
- chains

- Role
- Co-founder & CTO
- Stack
- GoTypeScriptPythonRustPostgresRedisRabbitMQRailway
- Links
- boba.xyz
Boba is a crypto trading platform with an AI agent built in: swaps across 13 chains, limit, DCA and TWAP orders, Hyperliquid perps, Polymarket, a token launchpad and wallet tracking, or just ask the agent to do it for you.
What sets it apart is Taro, the agent built into every screen. You can ask it what's moving, have it research a token or a wallet, and let it place the trade, with your approval.
I co-founded Able in 2024, architected Boba from the ground up, and hired and lead the engineering team of four while staying its most active engineer: 2,135 of the monorepo's 3,118 commits.
Decisions
Microservices, so the team could ship at full speed
I optimized for speed of delivery. Each engineer was strongest in a different language, so I built Boba as services and let everyone ship in the language they're fastest in, then put Go and Rust where performance decides outcomes: the real-time feed, the Solana sender and the order engine.
Every service owns one job, and a bad deploy in one never stops people trading. The cost is operations and consistency across 25 services. The next two decisions are how I paid it.
Railway over AWS: ship product, not infrastructure
With 25 services and no dedicated DevOps engineer, every hour on IAM roles, load balancers and deploy pipelines was an hour not spent on Boba. I put the platform on Railway instead.
Every service deploys straight from the monorepo into separate dev, staging and production environments, and every pull request gets its own environment in CI. Deployments went from a headache to something anyone on the team can test against in minutes.
AWS offers more control and gets cheaper at scale, and I traded that away on purpose: at our size, speed mattered more. It's also what makes microservices workable for a team of four, because the 25th service is as easy to deploy as the first.
Shared libraries turn chores into config
Twenty-five services in four languages only work if the hard parts are solved once. Adding an EVM chain used to mean editing about 60 places across five languages, and a missed one never failed a build. Now it's one entry in chains.json, a generator run, and every service picks it up.
The same rule runs through the database, Redis, swap parsing and observability: solved once in the monorepo, used by every service. Adding a chain or upgrading a dependency is config, not a chore.
Architecture

Inside Boba
Swap aggregationRaces ~11 EVM providers and 5 Solana routers for the best quote.
Swap safety guardsGuards that stop swaps from routing into dust pools or stranding tokens.
Order execution engineLimit, stop, DCA and TWAP orders on EVM and Solana, now in Rust.
Solana transaction senderA Rust sidecar that races transactions to the leader over QUIC.
Portfolio & PnL engineReal-time holdings, PnL and cost basis across 9 chains.
Wallet & KOL tracking1,567 smart wallets tracked, 100–200ms from onchain swap to client.
Real-time feedA Go WebSocket fan-out for prices, balances and swaps.
Data layerBuilt our own indexer MVPs, then bought market data and migrated in a week.
Rewards engineXP, fee tiers, instant cashback, 5-level referrals and quests.
Boba web & mobileA Next.js trading app and Expo mobile app, built for live market data.