My thoughts on software development, life, and more.
A line-by-line breakdown of the greedy 'justified rows' algorithm behind Google Photos and Flickr, covering how to pack images of different aspect ratios into full-width rows of equal height in React and TypeScript.
A breakdown of the planner, validation pipeline, human review loop, and admin dashboard behind Quizco's AI quiz agent.
Expensasaurus is an expense tracking and budgeting app built with Next.js and Appwrite — featuring smart insights, budget management, and transaction analytics.
Using TypeScript template literal types to create type-safe Tailwind CSS class names with autocomplete and compile-time validation.
A deep dive into JavaScript's prototypal inheritance — prototype chain, Object.setPrototypeOf, the new keyword, constructor property, and ES6 classes.
Quizco is a quiz builder and assessment tool for teachers and creators, built with React, React Query, and Clerk authentication.
A visual explanation of how JavaScript's execution context and execution context stack work under the hood.
Why the default sort() doesn't work as expected for numbers, and how to use compare functions for ascending, descending, and string sorting.
Product Board is a project management platform built with the MERN stack, featuring Kanban boards, real-time notifications, and role-based access.
OS Resume is an oversimplified resume builder that helps students and professionals create professional resumes quickly and for free.
A comprehensive guide to understanding var, let, and const in JavaScript — scope, hoisting, and reassignment explained.