
LeetCode: Finding the Diameter of a Binary Tree
The diameter of a binary tree is the longest path between any two nodes. I'll explain clearly how we can solve this problem using recursion in JavaScript.
Practical notes and articles on React, Next.js and web platform work.

The diameter of a binary tree is the longest path between any two nodes. I'll explain clearly how we can solve this problem using recursion in JavaScript.

How to solve Course Schedule with topological sort in TypeScript, comparing Kahn's algorithm with DFS cycle detection and why in‑degrees read clearly.

What GEO is, where the term helps, where it misleads, and how generative engine optimisation relates to search, retrieval, trust, and clearer web content.

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.

I paid Dev Match Ltd. for an iPad a year ago. It never arrived. Months of excuses from James McConnell, then a CCJ. This is my detailed record of what happened.

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.

JavaScript Symbols explained in plain English, including unique keys, well‑known symbols, hidden metadata, and the cases where they are genuinely useful.

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.