
Mastering Server Components in Next.js
Mastering Server Components in Next.js, including client boundaries, data fetching, caching, streaming, and the mistakes that make App Router code messy.
Articles
JavaScript is the working language behind most of my front‑end writing, from small browser behaviours to application state and asynchronous code. These articles favour the mechanism behind a feature over a clever trick, whether the subject is callbacks, async code, or a language edge that only becomes obvious in production.

Mastering Server Components in Next.js, including client boundaries, data fetching, caching, streaming, and the mistakes that make App Router code messy.

Maximum Subarray and Kadane's Algorithm explained with TypeScript, showing how a linear pass tracks current and best sums across positive and negative values.

Converting objects to query strings is essential for handling URLs in JavaScript. Here, I explore encoding, parsing, and managing query parameters in Next.js.

Best practices for managing environment variables in Next.js, so secrets stay server‑side and deployments do not freeze the wrong values at build time.

try, catch, and finallyGo beyond basic try/catch in JavaScript with finally, custom errors, async error handling, testing, user‑facing failures, and defensive‑code traps.

Proxy and Reflect APIA look into how JavaScript's Proxy and Reflect APIs work together to intercept and redefine object behaviour, including practical use cases and common patterns.

Solve Number of Provinces with union‑find in TypeScript, comparing DFS, connected components, path compression, union by rank, and matrix scanning.

NgRx Store vs. SignalStore explained with real Angular trade‑offs, including scope, TypeScript ergonomics, devtools, effects, and when neither is necessary.

Timing attacks explained for web developers, including side channels, string comparisons, real examples, and practical defences in JavaScript.

Vuex vs. Pinia explained with real trade‑offs, including API design, TypeScript ergonomics, migration paths, and when each choice still makes sense.

Solve the N‑Queens problem with TypeScript backtracking, including the decision tree, constraints, complexity, and test cases.

Use Angular signals for performance optimisation with derived state, computed values, OnPush, effects, RxJS interop, and measuring whether work improved.

Solve Kth Smallest Element in a BST with in‑order traversal, showing why the tree's ordering removes the need for a separate sorting step in interviews.

Manage Angular state with RxJS Subjects and derived streams, including combineLatest timing, AsyncPipe cleanup, local UI state and when signals fit better.

React developer vs. Next.js developer explained through production concerns: rendering, routing, caching, SEO, deployment, CMS data, and debugging.

Solve Combination Sum with backtracking in TypeScript, using a growing path, remaining total, sorted pruning, reuse rules, and common mistakes too.

A clear walkthrough of LeetCode Jump Game using a greedy algorithm, including why the farthest‑reach approach works and where slower ideas get stuck.

Memoisation helps JavaScript functions run faster by caching previous results. Here's a clear guide on how and when to use memoisation effectively.