
Rendering Lists in React and Why Keys Matter
Render lists in React with stable keys, avoiding index and random‑key bugs, preserving component state correctly through filtering, sorting, and reordering.
Articles
Front‑end development is where product intent becomes the interface people actually use. My writing approaches it as engineering rather than surface decoration, with attention to browser behaviour and code that remains accessible, fast, and safe for a team to change.

Render lists in React with stable keys, avoiding index and random‑key bugs, preserving component state correctly through filtering, sorting, and reordering.

== and === in JavaScriptCompare == and === in JavaScript through type coercion, strict equality, surprising conversions, safer defaults, and when loose equality still appears.

An article that provides a beginner‑friendly introduction to classes in JavaScript, explaining what they are, how they work, and how to use them in your code.

Comparing arrays in JavaScript is trickier than it first looks. This guide covers reference equality, value comparison, and practical alternatives.

Write safer JavaScript for older browsers by checking support, avoiding fragile assumptions, containing failures, and keeping core interactions usable.

IIFEs were a common JavaScript pattern before modern modules took over. This guide explains what they do, why they existed, and when they still appear.

call, apply, and bind in JavaScriptUnderstand call, apply, and bind in JavaScript, including this context, borrowed methods, callbacks, partial application, and production review caveats.

Use push() and unshift() to append or prepend JavaScript array items, with simple examples and the easily missed return value of each method.

The JavaScript prototype chain underpins inheritance, enabling object property sharing. Here, I explore its workings, property searching, and quirks.

A practical overview of JavaScript build tools and module formats, covering globals, CommonJS, AMD, Browserify, bundling, and project trade‑offs.

Type coercion in JavaScript explained clearly, including implicit vs. explicit conversion, equality surprises, string concatenation, and number casting.

Use CommonJS modules in JavaScript with require() and module.exports, covering Node.js origins, browser bundling, limitations, and ES module comparison.

Create object URLs for local file previews, revoke them at the right time, and avoid retaining Blob data too long or breaking a browser consumer.

Find the best web developer near you in Brighton, Sussex, or London. This guide covers what to look for, from technical skills to communication and aftercare.

Controlled vs. uncontrolled components in React explained with form examples, refs, validation trade‑offs, and why each approach suits different jobs.

this Changes in JavaScript Event Handlers and MethodsUnderstand why this changes in JavaScript methods and event handlers, including call sites, arrow functions, bind(), event objects, and context bugs.
forEach and for...ofCompare classic for loops, ES5 forEach() and ES6 for...of in JavaScript, including NodeList support, readability and when a loop can stop early.

Asynchronous Module Definition explained, including AMD module loading, define(), dependency handling, CommonJS, ES modules, and modern relevance.