Technical Blog
Engineering Notes
Writing on AI engineering, system design, and building in public — the AI Recruiter Assistant can answer questions about these posts too.
How I Built a Real-Time LeetCode Stats Dashboard with 2-Minute Polling
Behind the scenes of fetching live LeetCode data server-side, avoiding CORS, caching intelligently, and building a UI that tells you exactly when data is fresh.
Why Every Developer Should Solve 50 Hard LeetCode Problems
Not because interviews ask for them — but because hard problems rewire how you think about constraints, edge cases, and trade-offs in production systems.
Building a Payment Gateway from Scratch: What the Tutorials Don't Tell You
Idempotency keys, dead-letter queues, row-level locking, webhook retries — the unglamorous infrastructure that makes real money move correctly.
Scroll-Driven Animations with Canvas: How This Portfolio's Background Works
300 JPEG frames, a requestAnimationFrame loop, lerp-based smoothing, and a DPI-aware cover-fit algorithm — the full technical breakdown.
Redis Caching Patterns That Actually Work in Production
Cache-aside, write-through, TTL strategies, and the cache invalidation problems that will bite you — from real experience building CodeMyFYP Academy.
Next.js App Router: Patterns I Use on Every Project
Server components, streaming, route groups, parallel routes, and the mental model shift that makes App Router click — from someone who's shipped multiple production apps with it.
From Founder to Engineer: What Building CodeMyFYP Taught Me About Systems
Starting a company at university and building the platform from scratch — the technical decisions, the mistakes, and the engineering instincts that came from owning every layer.
Dynamic Programming: The Patterns Behind the Problems
After solving 60+ DP problems, I've found they mostly fall into five pattern families. Recognizing the family is 80% of solving the problem.
TypeScript Patterns I Use Every Day (And Why They Matter)
Discriminated unions, const assertions, template literal types, satisfies, and the pattern that finally made me stop fighting the type system.
Graph Algorithms That Show Up Everywhere (And How to Spot Them)
BFS, DFS, Dijkstra, Union-Find, and topological sort — the five graph primitives that underlie hundreds of LeetCode problems and real system design challenges.
Prompt Engineering for Reliable AI Agents: What I Learned Building Career Agents
System prompts, JSON output schemas, temperature settings, chain-of-thought triggers, and the evaluation harness that tells you whether your prompts actually work.
PostgreSQL Indexing: The Missing Guide for Application Developers
B-tree, partial, composite, and covering indexes — when to use each, how to verify they're being used, and the common mistakes that nullify your indexes entirely.
CI/CD with GitHub Actions: From Zero to Production-Ready Pipeline
How I set up automated lint, test, build, Docker, and deployment pipelines for my projects — the exact workflow files and the reasoning behind each step.
Designing Multi-Agent Systems That Don't Fall Apart in Production
Lessons from building Career Agents — why a single orchestrator, strict JSON contracts, and shared session memory matter more than clever prompts.
JWT Authentication Done Right: Stateless Auth Without the Footguns
Access tokens, refresh tokens, secure storage, rotation strategies, and the common implementation mistakes that make JWT-based auth insecure — with fixes.
How I Optimized a Next.js App's Core Web Vitals from 60 to 95
LCP, CLS, FID — the actual changes (image optimization, font loading, code splitting, ISR) that moved the needle on real performance metrics.
Five Roles, One Codebase: RBAC Lessons from a Multi-Tenant EdTech Platform
How CodeMyFYP Academy enforces data isolation across Students, Mentors, Recruiters, Faculty, and Administrators without duplicating business logic per role.
GTM Engineering: Why I Ship an llms.txt Next to My Sitemap
Technical SEO used to mean robots.txt and sitemaps. Now it also means making your site legible to AI crawlers and answer engines.