Search this site

Dean Hume

Articles written by Dean Hume.

21 July 2026

A Maturity Matrix for Game Development

Use a practical maturity matrix to assess your game development team, spot gaps in engineering and people practices, and choose what to improve first.

4 June 2026

Building a Custom MCP Server with Node.js

Build a Node.js MCP server that answers bin collection questions from a JSON file, then connect it to VS Code so your AI assistant can use your data.

18 February 2026

Staying Technical as a Technical Program Manager

Learn practical ways Technical Program Managers can stay technical - daily habits, internal engineering practices, and hands-on routines that keep skills sharp while leading programs at scale.

14 March 2022

Leading Virtual Teams - Book Review

I’m always on the lookout to improve both myself and my team's daily work, so when I came across a book entitled Leading Virtual Teams by the Harvard Business Review, it really caught my eye.

7 January 2021

Ghost CMS & Linux - Fixing "No Space Left on Device" Issue

I was quite surprised to found out that I was greeted with an annoying HTTP 503 error on my site over the Christmas period. After taking a closer look at the logs on Amazon, it turns out that I had actually run out of disk space on the instance.

21 January 2020

My Favourite Soft Skills Interview Questions

In my day to day role, a big part of what I do involves hiring and assessing Software Engineers. It might not be to everyone’s liking, but I really do enjoy the interview process. It’s a great chance to meet new people and I often learn new things

19 March 2019

Experimenting with the Streams API

Process NDJSON with the Streams API and render results as they arrive, rather than making users wait for a large download to finish.

4 February 2019

Brewfather - Progressive App Review

I look under the hood of Brewfather's progressive web app to explore how Workbox caching and Firebase offline data supported a practical homebrewing tool.

10 October 2018

Software Team Maturity Matrix

Use a maturity matrix to assess your team's engineering and people practices honestly, spot gaps and decide which improvements need attention first.

3 July 2018

Getting started with the Ambient Light Sensor

The Ambient Light Sensor API provides developers with the means to determine ambient light levels as detected by the device’s main light detector. This information is available to developers in terms of lux units.

30 April 2018

Progressive Web Apps - Book Giveaway

"Progressive Web Apps" has recently been released, and if you haven't already gotten your hands on a copy, I have 5 free copies to give away to lucky readers.

24 April 2018

Service Workers can save the environment!

Service workers allow you to cache resources on the user's device when they visit your site for the first time. Fewer HTTP requests mean less CPU usage and less energy consumed.

29 March 2018

Converting a Ghost blog to a Progressive Web App

In this article, I am going to take you through the different steps required to get a Ghost blog up and running as a Progressive Web App (*hint: it’s easier than you think!*)

1 March 2018

Lessons learnt: Leaving an organisation

Before leaving an organisation, write down what worked, what didn't and what you'd change. Those notes can help you make better choices in your next role.

5 December 2017

Guest Posts and Advent Calendars

My 2017 guest articles cover progressive image loading with Intersection Observer and SQIP, plus a practical learning path for junior web developers.

18 October 2017

Progressive Web Apps - Podcast

My 2017 conversation with Matthew Groves on Cross Cutting Concerns covers Progressive Web App basics and the tools and techniques available to web developers.

12 October 2017

Book Review: The New CSS Layout

I’ll be the first to raise my hand and admit that my CSS skills are about as stinky as the stinkiest egg sandwich. I just about manage to get by and normally rely on frameworks such as Material Design Lite or my colleagues for advice. This is why I

20 September 2017

How much storage space is my Progressive Web App using?

If you had told me when I first start developing many years ago, that I’d be able to build websites that work on a mobile device and even respond when offline - I’d be blown away! One of my favourite features of Progressive Web Apps is the ability to

23 May 2017

I'll be speaking at Fluent Conf 2017

A preview of my Fluent Conference 2017 talk on building Settled's offline-first dashboard with Progressive Web Apps, HTTP/2 and service worker caching.

30 March 2017

Experimenting with the Server Timing API

Expose backend performance measurements through Server Timing response headers, so you can inspect routing and database timings alongside frontend load times.

22 February 2017

Getting started with the Web Share API

My early Web Share API example opens a device's native share dialog, checks browser support and falls back to ordinary sharing links.

24 January 2017

I'm writing a book - Progressive Web Apps

I am very proud to announce that I am writing a new book entitled Progressive Web Apps. I started working on it during late 2016 and the book is shaping up nicely! I will be the first to admit that I am a big fan of Progressive Web Apps, and

15 September 2016

Book Review: ReWork

My review of ReWork focuses on its short, unconventional business lessons, especially hiring, honest leadership and making working hours better, not longer.

6 September 2016

Image Beast - My 10 K Apart Entry

Meet Image Beast, my 2016 10 K Apart entry: a tiny service worker helper for serving alternative image formats, saving data and caching images.

2 August 2016

How I built a Progressive Beer app

I built Progressive Beer with an app shell, service worker caching, offline support and WebP images, using a beer catalogue to explore practical PWA techniques.

25 July 2016

Book Review: Business for Punks

My review of James Watt's Business for Punks explores BrewDog's unconventional marketing and the lessons on small-business finances and building teams.

28 June 2016

Book Review: Leading by Sir Alex Ferguson

My review of Sir Alex Ferguson's Leading looks at discipline, encouragement and preparation, and what business teams can take from his football experience.

19 May 2016

A basic guide to Firebase for the web

This early Firebase JavaScript tutorial shows how to store and display realtime data, associate it with a user and prototype without writing a backend.

2 March 2016

How I built buildingstartupteams.com

If you follow this blog, you may have noticed that I've been working on a side project for the past 8 months or so. I'm really passionate about building and growing teams and I'm lucky enough to get to do this in my day job. As a

16 February 2016

Whats your Favourite Algorithm?

Binary search doesn't need to be daunting. Walk through a sorted array, halve the search space and turn the idea into a recursive JavaScript function.

11 September 2015

I'll be speaking at OSCON 2015

A preview of our OSCON 2015 tutorial on automating web performance, from image compression and critical CSS to testing and continuous integration.

19 August 2015

A Basic Guide to the Fetch API

Compare XMLHttpRequest with the Fetch API and see how promises make asynchronous HTTP requests easier to read, chain and share across your JavaScript code.

3 August 2015

Push Notifications on the Web - Google Chrome

A while ago I built a fun side project on Github to keep a collection of typography links and tools that caught my eye. There are a number of people that follow the project on Github, but every time I make a change or add a new link, I normally

22 July 2015

Faster Mobile Websites - Slides

Watch my UpFront 2015 talk and browse the slides for mobile performance techniques, including critical rendering, responsive images and profiling tools.

1 June 2015

Improved Compression Ratios Using Zopfli

Compress static assets with Zopfli through a Grunt task. Get smaller Gzip files before deployment without paying the cost of slower encoding on each request.

13 May 2015

Chrome Internal URLs: The Door to Narnia

Explore Chrome's internal pages as they were in 2015 to see how URL predictions, prerendering, experimental flags and networking diagnostics worked.

30 April 2015

I'm a Google Developer Expert!

In 2015, I joined the Google Developer Experts programme for web performance. Here's what the role meant for speaking, code samples and mentoring developers.

22 April 2015

I'll be speaking at UpFront Conference

I’m proud to say that I will be speaking at UpFront Conference in Manchester, UK on the 19th of May. UpFront Conference is in it’s first year and is billed as “a front-end conference for anyone who makes for the web”. The speaker line-up is packed

10 April 2015

Animate Comment Nodes in the DOM

Add a small ASCII animation to your HTML comments with Dom Animator, creating a hidden message for visitors who inspect your page's DOM.

30 March 2015

A Basic Guide to Contributing on Github

Follow your first open-source contribution from fork to pull request in this beginner's walkthrough using the original GitHub for Windows desktop client.

19 March 2015

Web Typography using Web Fonts

Why I built a web typography resource site in 2015: a collection of articles and links to help developers and designers work with web fonts.

16 February 2015

Running Selenium Tests using Node.js

A 2015 walkthrough of Selenium and Webdriver.io in Node.js, with a JavaScript test that searches a page, checks its title and saves a screenshot.

7 January 2015

HTML5 Charts using Chart.js

See how Chart.js turned raw data into animated, responsive HTML5 canvas visualisations in this early introduction, with line and pie chart examples.

10 December 2014

Free Icon Packs for Developers - Part 2

A while ago I created a blog post with a list of free icon packs for developers that can be easily used on any website. The web is packed with loads of great icons, but they seem to be all over the place! I thought it would be handy to

5 November 2014

I'll be speaking at Apps World Europe

My Apps World Europe 2014 talk announcement, focused on the areas developers can tackle to improve mobile website performance and page speed.

23 October 2014

The ASP.NET MVC HTML5 Toolkit needs your help!

The ASP.NET MVC HTML5 Toolkit has been running as an open source project since August 2010. It contains a rich set of controls that you can use to build ASP.NET websites using HTML5. If you've never used it before, it can be a great way to take

21 October 2014

Getting started with the Picture element

Use the HTML picture element and srcset to serve images that suit the viewport, avoiding desktop-sized downloads on mobile and handling older browsers.

12 September 2014

HTTP vs HTTPS performance comparison

My 2014 comparison of HTTP and HTTPS page loads explores TLS handshake overhead and practical ways to measure and reduce the cost of encrypted connections.

26 August 2014

Convert JSON to a C# Class

As a web developer, I regularly write code to consume and create data in a JSON format. It's a simple and easy way to represent data as a string and if you work with JSON every day, you'll know how much easier it is to use than XML.

3 July 2014

Loading CSS Asynchronously

My experiment with Filament Group's loadCSS shows how asynchronous stylesheets avoid blocking rendering, along with the flash of unstyled content tradeoff.

24 February 2014

Remove unused CSS in your Web Application

A 2014 walkthrough of Chrome's CSS audit tool, showing how to spot unused framework styles and reduce the stylesheet weight your users download.

27 January 2014

Extending System.Web.Optimization

Extend classic ASP.NET bundling so you can add attributes such as async and media to script and style tags without losing built-in minification.

21 November 2013

Working with multiple Web.Config files

Set up separate Web.config transforms for staging and live environments in Visual Studio, using solution configurations or publish profiles.

20 November 2013

Velocity Conference Europe 2013 is a wrap!

Highlights from Velocity Europe 2013, including our image optimisation talk, Addy Osmani's unused CSS tools and Paul Lewis's rendering performance advice.

1 November 2013

I'll be speaking at Velocity Europe 2013

My announcement for Velocity Europe 2013, where Robin Osborne and I planned to share image optimisation techniques for smaller, faster-loading pages.

4 October 2013

A Simple HTML Minifier for ASP.NET

The original ASP.NET HTML Minifier walkthrough shows how to minify files during Visual Studio 2012 publishing, avoiding per-request processing overhead.

23 September 2013

Fast ASP.NET Websites Book Giveaway

This archived announcement explains my three-copy Fast ASP.NET Websites giveaway, which closed on 22 October 2013, and introduces the book's practical focus.

30 August 2013

Fast ASP.NET Websites has been released!

My original Fast ASP.NET Websites launch announcement introduces the book's hands-on performance guidance and code examples for ASP.NET MVC and Web Forms.

11 August 2013

ASP.NET Release Checklist

Check tests, performance, configuration, security and custom error pages before deploying a classic ASP.NET side project with this lightweight release checklist.

3 July 2013

The "ideal" sprint length

Choose a sprint length that gives your team room to plan, build and test. My Scrum experiences explain why a steady rhythm matters more than a universal rule.

20 March 2013

Free icon packs for developers

Browse five icon packs I gathered for web prototypes, including IconMonstr, IcoMoon and Typicons, with notes on the image and icon-font formats they offered.

12 March 2013

The Google PageSpeed API & MVC 4

A 2013 ASP.NET MVC 4 example uses the Google PageSpeed API to retrieve scores and suggestions, turning manual performance checks into a dashboard.

22 January 2013

Frontend Single Point of Failure

A single point of failure is a part of a system that, if it fails, will stop the entire system from working. Let's look at a tool called SPOF-o-matic.

2 January 2013

I'm writing a book! Fast ASP.NET Websites

My 2013 announcement of Fast ASP.NET Websites, a practical performance book with profiling advice and code examples for MVC and Web Forms developers.

29 November 2012

How to disable Flash in all browsers

See how I disabled Flash while testing an HTML5 replacement in older Chrome, Internet Explorer, Firefox, Safari and Opera versions in this historical guide.

26 November 2012

.NET Caching - File Dependencies

Add a file dependency to .NET's MemoryCache with HostFileChangeMonitor, so cached file contents are invalidated when the source changes, without a restart.

30 October 2012

The Five Whys

Use the Five Whys to look beyond a software failure's symptoms, uncover process problems and identify small changes that help prevent the same issue recurring.

20 August 2012

Visual Studio 2012 - A week in perspective

My first week with Visual Studio 2012: installation, compatibility with 2010 projects, asynchronous C# features and the changes that made development feel faster.

10 August 2012

Net Magazine Article

An announcement of my article in Net Magazine's September 2012 issue, explaining how content delivery networks can help improve page load times.

31 July 2012

Hidden Gems inside .Net Classes

Use .NET's CultureInfo, RegionInfo and TimeZoneInfo classes to retrieve country codes, currencies, localised day names and time zones without lookup tables.

11 July 2012

Lazy Loading Social Sharing Buttons

A 2012 Socialite.js and jQuery example defers social sharing widgets until they scroll into view, keeping third-party buttons out of the initial page load.

31 May 2012

HTML5 Asynchronous JavaScript

Compare async and defer script loading, see how execution order affects jQuery dependencies, and use browser waterfalls to inspect the performance difference.

18 May 2012

A Basic Guide to Building Chrome Extensions

Google Chrome has come a long way since it's early days. I am a big fan of the Chrome Developer tools and use it in my day to day development. There are also loads of great tools and extensions that are on offer at the Chrome store, and most

25 April 2012

Running multiple browsers in one test run with Selenium

The beauty of Selenium is that it allows you to test your UI against all of the common browsers out there at the moment. Writing the code to test for a test scenario is quick and easy and getting up and running with Selenium can be done in a matter

16 January 2012

MVC Asynchronous Controller : The Basics

Build a basic ASP.NET MVC AsyncController with the Task Parallel Library, following the Async/Completed naming pattern and tracking outstanding operations.

2 December 2011

MVC and HTML5 Web Workers

Web Workers allow you to run client side scripts without interrupting the page or any other scripts that are currently running.

26 September 2011

Memcached for C# - A Walkthrough

A C# Memcached walkthrough for sharing cached objects across applications and keeping them outside the IIS app pool, with setup and client examples.

14 September 2011

MVC Data URI HTML Helper

Build an ASP.NET MVC helper that embeds images as Base64 data URIs to avoid separate HTTP requests, with browser fallbacks and a look at the size tradeoff.

7 September 2011

Responsive Design and CSS3 Media Queries

How I redesigned this blog in 2011 with CSS3 media queries and Skeleton, letting one layout adapt to different screen sizes instead of separate mobile pages.

8 July 2011

MVC and the HTML5 Application Cache

A 2011 ASP.NET MVC experiment with HTML5 Application Cache, showing dynamic manifests, offline resources and the pitfalls of caching server-rendered pages.

24 June 2011

C# Parallel Invoke

Run independent C# methods concurrently with Parallel.Invoke, using lambda expressions and the Task Parallel Library instead of managing threads yourself.

15 April 2011

Microsoft Translator API

A 2011 C# example using Microsoft Translator's SOAP API to translate text and request spoken audio, with a service reference and a small wrapper class.

21 March 2011

Explicit Interface Usage in C#

Use explicit interface implementation in C# to make selected methods accessible through the interface, helping keep callers away from concrete class methods.

22 February 2011

Asp.net MVC HTML5 Toolkit - Latest Updates

An early MVC HTML5 Toolkit release added audio and video helpers, plus autofocus, readonly and disabled attributes to make richer MVC views easier to build.

9 February 2011

MVC 3 and Remote Validation

I must admit, I've been a bit of a slow starter when it comes to Asp.net MVC 3. I am an avid fan of MVC 2 and haven't really taken the time to look at MVC 3 until now. Wow - I am impressed though! There are a

24 January 2011

A Simple Guide to using OAuth with C#

Follow the original OAuth token exchange and signed API calls in this historical C# walkthrough, with a link to my newer OAuth 2.0 guide.

6 January 2011

Capturing Web Page Screenshots with Selenium 2

There have been many times when I have run a Unit Test that has failed and afterwards I wondered where it went wrong. The ability to see what occurred on the page or how it looked at the time would be a great benefit. I've been writing a few

9 December 2010

A Year of Blogging

I look back on my first year and 42 blog posts, from building a custom blog engine to finding things to write about and learning to be patient with traffic.

26 November 2010

Basic Introduction to writing unit tests with Moq - Part 3

This post is the third part of a series on Mocking with Moq. If you haven't already taken a look at the first two posts on the basics of Moq, please check it out. Mocking a method within the same class So, recently I came across a problem where

2 November 2010

Custom OData API using WCF Data Services

See how I exposed my blog database as an OData API with Entity Framework and WCF Data Services in 2010, including related comments and query examples.

1 November 2010

Proxy Authentication - Helper Class

Handle HTTP 407 proxy authentication errors in a .NET application with a helper that checks connectivity, tries credentials and prompts users when needed.

28 October 2010

HTTP HEAD Request - Benefits / Usages

Use an HTTP HEAD request in .NET to check a resource and inspect its size or last-modified headers without downloading the body, saving unnecessary bandwidth.

6 October 2010

Object Caching - .NET 4

Store and retrieve objects with .NET 4's MemoryCache, using a small reusable wrapper to avoid repeated database calls and handle cache misses.

1 October 2010

Web Analytics - Determining Bounce Rate

My 2010 comparison of Google Analytics and Clicky shows why a reader spending time on one article could still count as a bounce, and why measurement matters.

7 September 2010

A Simple Guide to SQL Compact 4

My early SQL Compact 4 walkthrough creates a file-based database and uses Entity Framework to add and retrieve records without a separate database server.

23 August 2010

MVC Experiment : An Alternative to Captcha

I'm sure most of you have at some point been exposed to a CAPTCHA control on the net. They come in loads of forms and are used to tell the difference between humans and computers (bots). If you have a website on the net, you are prone to lots

13 August 2010

ASP.NET MVC HTML5 Toolkit

My original ASP.NET MVC 2 HTML5 Toolkit added helpers for typed inputs, placeholders and validation, bringing HTML5 controls into familiar MVC view syntax.

6 August 2010

Test your MVC routes with Moq

Test ASP.NET MVC routes with Moq by faking HTTP requests and checking controller, action and parameter values, catching broken mappings before they ship.

14 July 2010

Professional Asp.net Mvc 2 Book Giveaway

If you haven't already read Professional Asp.net Mvc 2, you should really check it out. Luckily though, I also have a free copy of this freshly released book to give away. If you are new to Asp.net MVC, this book is a great way to get you

1 July 2010

HTML5 Input Types

My early exploration of HTML5 input types shows how native email validation, placeholders and form widgets can replace extra JavaScript and CSS.

22 June 2010

Compiling LINQ queries for improved performance

I've been using Linq to Sql for quite a while now, and here and there I have heard of compiling your Linq queries mentioned. Now I know that this feature has been around for a while in terms of .net, but I have never actually got round to using

8 June 2010

Basic introduction to writing unit tests with Moq - Part 2

This post is the second part of a series on Mocking with Moq. If you haven't already taken a look at the first post on the basics of Moq, please check it out. In this post, I hope to cover some other basic aspects of mocking such as Verifying,

1 June 2010

Lazy loading images with jQuery

A jQuery Lazy Loader example delays images on long pages until they're in view, using a placeholder so readers don't download everything upfront.

7 May 2010

MVC Google Maps HtmlHelper - Dynamic Maps

A 2010 ASP.NET MVC Google Maps helper combines controller JSON and JavaScript to draw interactive maps with markers, while keeping the view code reusable.

29 April 2010

Rich Snippets and Structured Data - RDFa

My 2010 experiment with RDFa structured data shows how to mark up a page for rich snippets and test whether search engines understand the HTML.

13 April 2010

Useful SQL Script to generate Countries & US States

I'm currently working on a project where I need to quickly insert a list of Countries and Us States into a database table. This is not the first time that I've needed to have a useful script handy for this sort of thing. I had a quick look

22 March 2010

Postmark - Email delivery for web apps

An early look at Postmark in 2010, exploring transactional email delivery, bounce tracking and .NET support without maintaining an email server yourself.

19 March 2010

Useful Lambda Expressions

Practical C# lambda examples for finding and filtering list items, declaring event handlers and selecting ranges, making everyday code shorter and clearer.

3 February 2010

Toastify - Hotkeys for Spotify

Toastify is a great little app that allows you to add hot-keys to Spotify. If you haven't already heard of Spotify, it is a streaming player that allows you to listen to music for free. I've been looking for a way to add hot-keys to Spotify

11 January 2010

MVC HtmlHelper for Google Charts

A 2010 ASP.NET MVC example wraps the Google Charts image API in an HTML helper, turning repeated chart markup into a reusable method for your views.

8 January 2010

Developing Applications for Windows 7

I've just got my hands on a shiny new computer, maxed out with new RAM and Windows 7. So far I am very impressed with Windows 7, although it looks pretty similar to Vista, its a lot slicker and I can't really seem to find any faults just

16 December 2009

Dot Less and Minifying CSS

Use dotless to add variables, nested rules and mixins to CSS in a .NET app, then automate stylesheet minification with a Visual Studio T4 template.

15 December 2009

Custom error pages in ASP.NET MVC

Configure custom error views in classic ASP.NET MVC with HandleErrorAttribute and web.config, with separate handling for missing pages and server errors.

14 December 2009

Bin deploying ASP.NET MVC

Welcome to my site! It has been developed using ASP.NET MVC 2 beta (Which I intend to update as soon as the full release comes out), Subsonic 3.0 and a SQL 2005 DB. Ive written everything from scratch and Ive still got a lot to learn about the