
Creating Custom Viewport Units Instead of Using vh and vw
Create custom viewport units with CSS variables and JavaScript to avoid mobile 100vh bugs caused by browser chrome, keyboards, and visible height changes.
Articles from more than two decades of building, rebuilding, debugging, and leading web projects.

vh and vwCreate custom viewport units with CSS variables and JavaScript to avoid mobile 100vh bugs caused by browser chrome, keyboards, and visible height changes.

Add seeded randomisation to an SSR Gatsby project, keeping content order deterministic across builds whilst still rotating destination‑style content.

Convert Roman numerals to integers in JavaScript, covering subtractive notation, invalid input caveats, and a clear TypeScript implementation.

Convert integers to Roman numerals in JavaScript, covering symbol rules, greedy matching, edge cases, and a clear TypeScript implementation.

Automate copyright year updates across JavaScript, React, Angular, Vue, jQuery, PHP, and WordPress so footers do not go stale each January across stacks.

setInterval()A discussion about using JavaScript's setInterval for repetitive tasks. Manage intervals effectively and understand best practices for time‑bound executions.


Solve regular expression matching with recursive and dynamic‑programming context, covering dot and star behaviour, edge cases and TypeScript.

Solve Container With Most Water in TypeScript using the two‑pointer pattern, with pointer movement, complexity, edge cases, and testable logic explained.

How much software engineers make in the UK, with realistic late‑2023 salary ranges for graduate, mid‑level, senior, London, and sector‑driven roles.

A look back at JavaScript build tools before framework CLIs, covering Grunt, Gulp, Browserify, webpack, Babel, npm scripts, and everyday trade‑offs.

Discover why working with a local web developer in Brighton matters. With local insight, tailored solutions, and reliable support, Brighton businesses benefit.

Is software engineering high paying in the UK? Usually yes after the early career stage, though pay varies a lot by location, sector, seniority, and company.

prototype.apply() in JavaScriptUnderstand Function.prototype.apply() in JavaScript, including this binding, array‑like arguments, call() differences, dynamic invocation, and modern use cases.

Explore the 'Longest Palindromic Substring' problem: its relevance in web development and four JavaScript (ES6 & TypeScript) solutions for efficiency.

text‑wrap: balanceExploring the synergy of `text‑wrap: pretty` and `text‑wrap: balance` in web typography, enhancing text aesthetics and readability in different contexts.

Master the 4Sum problem in JavaScript: Explore the two‑pointer technique, solve with ES6/TypeScript, and test using Cypress. Elevate your coding skills.

text‑wrap: prettyAn exploration of the power of `text‑wrap: pretty` in CSS, a simple but very effective way to enhance web typography by preventing orphans in blocks of text.

Why old jQuery plugins became front‑end debt, from hidden state and global CSS to accessibility gaps, browser assumptions, migration cost, and ownership.

hasOwnProperty() MethodDiscover JavaScript's `hasOwnProperty()` for checking an object's own properties, an essential method for accurate and reliable object property iteration.

Solve 3Sum Closest in JavaScript with sorting and two pointers, reducing brute‑force work whilst finding the nearest total efficiently in TypeScript.