
State Management in Angular: NgRx vs. SignalStore
NgRx Store vs. SignalStore explained with real Angular trade‑offs, including scope, TypeScript ergonomics, devtools, effects, and when neither is necessary.
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‑five collected together for you below.

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

AI coding tools make code faster to produce, but technical debt still needs review, ownership, tests, documentation, and senior engineering judgement.

Diagnose traffic drops after a redesign, migration, or replatform by checking route parity, rendered HTML, redirects, canonicals, sitemaps, and schema.

AI can inflate output without improving outcomes. This article explains why weak metrics, faster generation, and shallow review create a productivity mirage.

Artificial superintelligence means AI that broadly outperforms humans, not just a better chatbot. What ASI means, why it matters, and what remains uncertain.

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.

Plan Content Security Policy in Next.js with static pages, nonces, third‑party scripts, headers, frames, previews, and incremental deployment safely.

Solve the N‑Queens problem with TypeScript. This article explains the backtracking method and provides a step‑by‑step code solution. Ideal for web developers.

AI automation improves productivity, but unmanaged labour displacement risks weaker demand, brittle organisations, concentrated gains, and a race to the bottom.

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

How to solve Kth Smallest Element in a BST by leaning on in‑order traversal instead of extra sorting the tree already makes unnecessary in interviews.

RxJS offers a powerful, reactive approach to managing state in Angular apps. Here, I clearly explain practical patterns and show how to use them effectively.

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.

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

How to solve LeetCode Coin Change with dynamic programming, and why the obvious greedy approach fails on exactly the cases worth understanding in interviews.