
Understanding the Module Pattern in JavaScript
The JavaScript module pattern explained through closures and private state, plus the architectural lessons it still teaches modern developers today.
Articles
This is a very broad category within my articles which encompasses any aspect of web development, from initial design and architecture to coding, testing, and deployment.
Below you will find a subset of articles from my blog specifically about Development. This is an area that I have worked with for many years, and have managed to write about quite a few times. There are three hundred thirty‑two collected together for you below.

The JavaScript module pattern explained through closures and private state, plus the architectural lessons it still teaches modern developers today.

Solve Rotting Oranges with multi‑source BFS in TypeScript, treating each queue level as one minute and tracking fresh cells until spread completes.

React performance work is often about avoiding repeated effort. This guide looks at memoisation, browser caching, and smarter data‑fetching choices.

Solve Kth Largest Element in an Array with Quickselect in TypeScript, comparing sorting, heaps, partitioning, random pivots, and trade‑offs under pressure.

Set and MapJavaScript's `Set` and `Map` simplify common tasks like managing unique values or key‑value pairs. Here, I'll share practical examples for everyday development.

How to solve LeetCode Find Peak Element with binary search, and why local comparisons are enough even when the array is not sorted in the usual way.

The 'Course Schedule' problem tests our ability to detect cycles using graph traversal. I'll explain a clear solution using depth‑first search with TypeScript.

How to test Vue components with Vue Test Utils using realistic interactions, focused assertions, better test boundaries, and less brittle design.

How to solve Search in Rotated Sorted Array with modified binary search, identifying the sorted half each step and narrowing safely in TypeScript.

The 'Merge Two Sorted Lists' problem on LeetCode involves combining two sorted linked lists into one. Here, I explore a clear solution with TypeScript examples.

Solve Koko Eating Bananas with binary search on the answer, using feasibility checks, speed bounds, ceiling division, TypeScript examples, and edge cases.

Tail call optimisation in JavaScript, why it matters conceptually, and why patchy engine support still makes it unreliable for production recursion.

WeakMap and WeakSet in JavaScriptUnderstand WeakMap and WeakSet in JavaScript, including weak references, metadata storage, private data patterns, memory behaviour, and Map or Set differences.

React's virtual DOM optimises performance by reducing updates to the real DOM. Here, I explain how it works, how it compares, and why it improves efficiency.

Managing routes in large Vue applications can become challenging. Here, I share practical best practices for structuring Vue Router to keep apps organised.

Garbage collection in JavaScript frees up unused memory automatically. Here, I explain how it works and how to prevent memory leaks in your applications.

How to implement server‑side rendering in Vue, with a clearer mental model for hydration, data loading, caching, and where SSR actually pays off.

Solve Daily Temperatures with a monotonic stack in TypeScript, storing indices to find the next warmer day without repeated scanning and common mistakes.