A pragmatic stack for shipping, learning, and scaling.
I choose technology around product risk—not novelty. These are the tools I trust to move quickly, keep systems understandable, and learn from real usage.
Product apps
Interfaces and product foundations for web and mobile.
Next.js · React · TypeScript · Tailwind
My default for web apps, dashboards, marketing sites, and founder-facing products where speed, SEO, and maintainability all matter.
Flutter · Dart
For polished cross-platform mobile products with subscriptions, onboarding, analytics, and fast release iteration on iOS and Android.
Remix · Prisma · Stripe
A durable combination for SaaS products that need clear data models, reliable forms, billing, and a practical path to production.
Back end and data
APIs, product state, search, and research pipelines.
Node.js · Fastify · GraphQL · REST
The simplest API shape that fits the domain—from lean REST services to GraphQL systems with richer query boundaries.
PostgreSQL · Supabase · Redis
Relational data for core state, Redis for queues and caching, and search infrastructure when discovery is a real product feature.
Python · Pandas · scikit-learn · XGBoost
The research stack behind data pipelines, feature engineering, model experiments, and leakage-aware repeatable backtests.
Infrastructure and growth
Delivery, observability, entitlements, and feedback loops.
Vercel · AWS · Docker · Kubernetes
Deployment choices follow product stage: managed speed early, then containers and cloud control as system needs become real.
GitHub Actions · CI/CD
Repeatable builds, automated checks, and release workflows that keep shipping safe without slowing a small team down.
RevenueCat · Segment · Mixpanel
Entitlements, analytics, crash visibility, and funnel instrumentation are included in the build—not added after launch.