
Prefix Sums and Hash Maps: Solving 'Subarray Sum Equals K'
Solve Subarray Sum Equals K with prefix sums and a hash map in TypeScript, including negative numbers, count storage, and why sliding window fails.
Articles
Development is the broadest category in my writing, so it works as the main archive rather than a narrow subject label. It brings together implementation notes and technical decisions, with delivery lessons from across the rest of the site.

Solve Subarray Sum Equals K with prefix sums and a hash map in TypeScript, including negative numbers, count storage, and why sliding window fails.

CSS container queries let components respond to an ancestor container's size. I explain query containers, responsive components, and browser fallbacks.

Build a headless CMS‑powered Next.js site with content modelling, fetch layers, mapped front‑end data, preview support, and scalable rendering choices.

Sorting complex arrays in JavaScript requires custom comparison functions. Here, I explore techniques for sorting numbers, objects, nested properties, and more.

Solve Word Search with backtracking in JavaScript, covering recursive path exploration, visited state, pruning, restoration, and grid trade‑offs.

aspect-ratio for Responsive LayoutsThe CSS aspect-ratio property makes it easier to maintain consistent proportions in responsive layouts. Here, I explore how it works and when to use it.

Solve Linked List Cycle with fast and slow pointers in TypeScript, comparing visited‑node storage with Floyd's cycle detection and common mistakes.

Multi‑tenant applications serve multiple customers from a single codebase. Here, I walk through building a scalable multi‑tenant web application using Next.js.

Solve Single Number in TypeScript with XOR bit manipulation, comparing hash maps, constant extra space, duplicate cancellation, and why the trick works.

How deployment expectations moved from simple Netlify static deploys towards Vercel pipelines, previews, framework builds, observability, and rollback.

Build a reusable Vue 3 composable with the Composition API, covering side effects, useOutsideClick, browser boundaries, typing, lifecycle handling, and testing.

When you set up a custom domain in Vercel, the default vercel.app subdomain still serves your site, which can lead to duplicate content. Here's how to fix it.

How to solve Number of Islands with grid traversal, treating the matrix like a graph, marking visited land safely, and reasoning about DFS in TypeScript.

provide/inject API: When and How to Use ItWhen Vue provide/inject is the right tool, how to keep it reactive, and where it fits better than props or a full store in larger component trees.

Vue 3 replaces Vue 2's getters and setters with JavaScript proxies. This article explains how they differ and why proxies improve Vue's reactivity system.

<b> and <strong>The <b> and <strong> tags both make text bold, but they serve very different purposes and convey different meaning. Here, I explain these differences.

Optimise Vue.js performance with lazy loading and code splitting, covering route‑level chunks, async components, bundle strategy, measurement, and UX.

How to solve Longest Substring Without Repeating Characters with sliding window basics, comparing Set and last‑seen‑index approaches in TypeScript.