Engineering
Thoughts.
// Insights on software architecture, performance, and reliable system design.

How I Learned to Learn
Learn the basics first, test yourself instead of re-reading, and space your reviews. Try a forgetting curve to see why spacing wins.

SOLID: 5 Principles That Make Your Codebase Easier to Change
One React profile form, refactored once per SOLID principle, with before and after TypeScript code and a live editor where you edit the uploader, press Save, and read the console.

Next.js 14 First Look: Turbopack, Server Actions and Partial Prerendering
What Turbopack, Server Actions and Partial Prerendering do in Next.js 14, why they exist, and what changed in Next.js 15 and 16.

Static Site Generation in Next.js: getStaticProps, getStaticPaths and ISR
Build pages once instead of on every request: when to use getStaticProps and getStaticPaths, how ISR keeps them fresh, and when SSR or client fetching fits better.

Designing a Distributed Video Streaming System
Design a distributed video streaming system: estimate the scale, choose the architecture, then break it with a traffic spike you control.