Learning through building: Evidence-based stories showing what I learned, how I solved problems, and what I'd do differently next time.
Click each card to expand the full learning journey →
A WebSocket-based voice agent with live audio transcription using Cloudflare Workers AI
Try Demo →src/components/demo-VoiceAgent.tsx:183Key Takeaway: This took me 3 tries to get right, but now I understand audio processing fundamentals.
Security fix: migrated from client-side OpenAI API to Cloudflare Workers AI bindings
8581789: "Removed OpenAI, used fully Cloudflare Workers"Key Takeaway: Security isn't optional—it's part of the architecture.
Reduced API abuse by 60% through debouncing and rate limiting
src/lib/pacer-ai-utils.tsKey Takeaway: Performance optimization isn't just about speed—it's about smart resource usage. Results: 60% fewer API calls, 80% cost reduction.
Built a 50k-row table with fuzzy search, sorting, and pagination using TanStack Table
Try Demo →src/data/demo-table-data.tsKey Takeaway: Scalability isn't about handling the happy path—it's about handling 100x the expected load.
Integrated all 8 TanStack packages in production (Start, Router, Query, Table, Form, Pacer, Store)
package.json - 14 @tanstack/* packagesKey Takeaway: Learning a tool means using it in production, not just reading docs.
Fixed "Maximum call stack size exceeded" build error caused by circular dependencies
f167fdf: "Fixed vite", d5e54f8: "Fixed infinite recursion"Key Takeaway: Error messages are breadcrumbs, not dead ends. Follow them backwards to find the root cause.
I iterate until it works (git history shows the journey)
I learn from mistakes (security fixes, build errors)
I build to understand (15+ demos, not just tutorials)
I ship to production (deployed on Cloudflare Workers)