Posts
Articles on frontend, full-stack and AI engineering: implementation details, measurements and lessons learned.
Articles on frontend, full-stack and AI engineering: implementation details, measurements and lessons learned.
Reranking for two-stage RAG retrieval, from cross-encoders to TypeSafe's Jev: how it works, its limits, a 90-query evaluation, agent integration, and a prompt-injection guard.
From Copilot and Cursor to CLI agents, I share how I delegate tasks, verify AI-generated code, and keep engineering judgment in the loop.
Learn why .env is not secrets management, using the Zeabur incident to explain secret access, auditing, rotation, and secure delivery.
Learn how Docker Sandboxes isolate AI coding agents with microVMs. Compare containers and sandboxes, configure network policies, and run Claude Code safely.
Tools and architecture from four years of web and React Native work: monorepo, env vars, database, queues, frontend libraries and AI coding rules.
How TypeScript works behind your editor: tsserver, the Language Server Protocol, configured vs inferred projects, and why stable boundary types matter.
Client Components can't import Server Components. Sync client state to URL search params so the RSC page re-renders with it, using useRouter and nuqs.
JWT bearer tokens vs session cookies: access/refresh token flows, server sessions in Redis, revocation, XSS and CSRF risks, and how to choose.
Why react-hydration-error happens in Next.js: how hydration works, SSR vs CSR, and three practical ways to prevent mismatches.
React Server Components render on the server and stream to the client, shrinking bundles. How RSC works in Next.js and how it differs from SSR.
Why AI chat apps favor SSE over WebSocket, compared on browser support and deployment, plus a streaming chat built with Hono, Zustand and the AI SDK.
Implement semantic search with pgvector in PostgreSQL: embeddings, similarity metrics, IVFFlat vs HNSW indexes, and a complete Bun/TypeScript example.
Why browsers block cross-origin requests and how to fix CORS errors with server headers or a dev proxy, with Hono, Vite and Next.js examples.
Abnormal requests in my backend logs revealed an attack on my site. Here is how I built Cloudflare WAF rules to block the malicious traffic.
I spent most of 2024 rebuilding the personal site I started in 2021 to learn Next.js and TypeScript. Here is the stack I chose and why.