Back to selected work
Bitcoin Analytics
Independent Product Engineer·Since 2025
A Bitcoin market and portfolio analytics dashboard: price, returns, volatility, drawdowns, moving averages and market mood, alongside multichain wrapped-Bitcoin wallet balances across Ethereum, Base and BSC.
The problem
Reading Bitcoin exposure properly means holding two things at once: what the market is doing, and what you actually hold. Public market APIs rate-limit and go down, and wrapped-Bitcoin holdings sit behind a different token contract on every chain. This pulls both into one view that degrades instead of breaking.
What I owned
- Product direction, architecture and implementation decisions
- Market data integration with Coinbase/Kraken fallback, per-source backoff and a short-lived local price cache
- An analytics layer: returns, volatility, drawdowns, moving averages, price bands, a returns heatmap and volume, over 1D/1W/1M ranges
- Fear & Greed market mood, plus portfolio holdings, risk and cost-basis tracking held entirely in the browser
- Multichain wallet connectivity and wrapped-Bitcoin balance aggregation (Ethereum WBTC, Base WBTC, BSC BTCB)
- Code review, debugging, integration testing and final quality — using AI tools as an implementation accelerator throughout
Technical challenges
- Staying inside public API rate limits without the dashboard going blank — a failing source is backed off rather than retried
- Keeping a dozen chart cards readable on a phone without cutting the data they exist to show
- Aggregating wrapped-Bitcoin balances consistently across chains with different token contracts and decimals
- Structuring an AI-assisted build so generated code still met production standards after review
Engineering decisions
- React + TypeScript + Vite for a fast, dependency-light client-side dashboard
- A provider-fallback pattern for market data rather than a single point of failure, with per-source backoff so an outage degrades one card instead of the page
- Cost basis and preferences in localStorage — the dashboard has no accounts and no backend to hold anyone's positions
- Modals loaded on open rather than on arrival, keeping the first paint small
- Deployed via GitHub Actions to a dedicated custom subdomain
Technology
ReactTypeScriptVitewagmiviemRechartsTanStack QueryGitHub Actions
Built with a heavily AI-assisted engineering workflow — product direction, architecture, review and final quality were mine throughout.