Full‑stack developer focused on the web. Builds and ships end to end. Works with edge runtimes, type‑safe APIs, and calm, readable UIs. Measures what matters.
I have preferences, but I use the right tool for the job.
- Languages: JavaScript/TypeScript, PHP, Node.js, Bun
- Frontend: React (Next.js, Gatsby, Remix), Vue, shadcn/ui, Tailwind CSS, SASS, LESS
- Backend: Express, Hono, Laravel, WordPress
- APIs: REST, GraphQL
- Databases: SQL (MySQL, PostgreSQL), NoSQL (MongoDB), Firebase
- Tools/Frameworks: Redux, TanStack, Jest, Semgrep, Vitest, Playwright, Wallaby
- Cloud/DevOps: CI/CD (GitHub Actions), Cloudflare, AWS, Docker, Serverless
Helps you ship only the CSS your page uses. Visual preview catches regressions. • Live →
- Tech:
TypeScript,Hono,tRPC,TanStack Router - Highlights:
- Reduces CSS to the selectors your HTML actually uses
- Visual preview to spot breakage before copying
- Migrated from Next.js to Cloudflare Workers for lower latency and cost
A simple place to learn and review words with examples and community votes. • Live →
- Tech:
TypeScript,React,Hono,tRPC,TanStack Router,Cloudflare infrastructure - Highlights:
- Lab LCP p50 ≈ 1.17s on Fast 4G. CLS 0.00
- Debounced, index‑friendly search with sensible limits
- Clean UI with keyboard paths and calm states
- Tech:
Express.js,React,shadcn/ui,Vercel - Highlights:
- Listing and search with filters
- Simple, direct UI
An MCP server that returns placeholder image URLs for prototypes. • Install → • Repo →
- Tech:
TypeScript,MCP SDK - Highlights:
- Keeps screens viewable when assets are missing
- Reduces manual cleanup during reviews
A calm new tab that shows year progress. • Install →
- Tech:
JavaScript - Highlights:
- First paint doesn’t wait on the network
- Store facts: 5.0 (9), 49 users
- No data collection
Check out my /uses page.
Open to new opportunities. I like clear problems, simple designs, and shipping.
Learn more about me →

