Search this site

Dean Hume

Articles written by Dean Hume.

3 September 2026

Why Short AI Coding Prompts Can Cost You More Time

Ever tried to save time by keeping a prompt short - only to spend the next ten minutes answering follow-up questions because the AI didn't have what it needed? Yeah, me too. I recently came across a really interesting post from the GitHub Copilot team about making AI coding

21 July 2026

A Maturity Matrix for Game Development

A few years ago, I wrote about using a Maturity Matrix to assess software engineering teams. The idea was simple - what does a great team look like, and how honestly can you measure yourself against that picture? Since then, I've moved into the gaming industry. Anyone who has taken

4 June 2026

Building a Custom MCP Server with Node.js

Ever wished your AI assistant actually knew your stuff? Your files, your schedule, or even a custom data source? That's exactly what the Model Context Protocol (MCP) makes possible. MCP is an open standard for connecting AI assistants like Claude to external data sources and tools. Think of it

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.

1 December 2025

Backup Buddy: A Simple Tool to Backup Your Website Content

Have you ever wanted to create a backup of your website or blog? Maybe you're migrating to a new platform, or perhaps you just want a portable archive of your content that you can read offline. I've previously experienced issues with this site going down and I wanted

24 November 2025

From Crash to Resolution: A Practical Guide for Xbox & Windows Developers

If you’ve ever had an app crash at the worst possible moment, you’ll know how frustrating it can be - both for developers and players. Recently, I wrote an article for the Microsoft Developer blog that dives deep into this exact challenge: how to diagnose and resolve crashes effectively

16 June 2025

Best Practices for Handheld Gaming Development

If you've ever played a game on a modern handheld device, you'll know how much fun it can be. I recently wrote an article on the Microsoft Game Dev Blog about some key recommendations to help you craft exceptional gaming experiences for handheld devices. Please head over to

15 February 2024

Getting started with Azure's Hybrid and Embedded Text-to-Speech

Over the past few months, I've been experimenting with Azure's Text-to-Speech service. It is a super powerful API that enables fluid, natural-sounding text to speech that matches the tone and emotion of human voices. Whether you are building an app or a game, Text-to-

4 October 2023

Azure Function Timer Trigger not firing - NCrontab

If you've recently ventured into the world of Azure Functions, you're likely familiar with the versatility they offer when it comes to scheduling tasks. In this guide, we'll delve into using Azure Functions' Time Trigger function with Node.js and Visual Studio Code, uncovering some important nuances

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

I am always looking for ways to build faster, slicker web pages. Where applicable, I’ll use great new browser features such as service workers, HTTP/2 and improved compression, just to name a few. But what if I told you there was a way to build even faster web

4 February 2019

Brewfather - Progressive App Review

In my spare time I enjoy a little bit of homebrewing. What first started out as an experiment with a beer kit, soon turned into a geeky fascination with the science behind brewing beer. I am one of those annoying people that sniffs the beer and comments on the aroma

8 November 2018

Determining Service Worker Support for your Site

Have you ever thought about building a Progressive Web App or even adding a service worker to your website? Perhaps you’ve considered it, but weren’t too sure about whether or not your users were on browsers that supported these features. Would they even benefit from their features? Speaking

26 October 2018

Tips for setting up a Ghost blog on Amazon AWS EC2

After a long overdue refresh, I have recently moved this blog to Ghost CMS. Overall, I have been very impressed. Ghost is easy to use as an editor, quick to make updates, and the Ghost team are constantly pushing out updates - which is great considering that it is completely open

10 October 2018

Software Team Maturity Matrix

Whether you lead a small team of developers, a tech startup or a huge department, it’s important that you constantly strive to improve the processes and tools that you use. If things are going really well, it’s easy to become confident in your abilities and overlook the need

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.

5 June 2018

Progressive Web Apps - Book Giveaway - Results

Firstly, I'd like to say a massive thank you to everyone who retweeted and liked the tweet for this giveaway. Unfortunately, there can only be a few winners for this giveaway. I can reveal that the following people were chosen at random using random.org to generate the results:

16 May 2018

How to display a "new version available" for a Progressive Web App

In this article, I will show you how to add a notification to your site and display it each time that there is a new version of the service worker available. You’ll also learn how to refresh the page, so that the user is up to date and has the latest version of any cached files.

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

In my experience, leaving an organisation is a big deal. Given the amount of time we spend at work, we ultimately end up spending more time with our colleagues than our loved ones! If you’ve been with an organisation for a while, you’ve probably worked hard to establish

14 December 2017

Progressive Web Apps - My new book is available!

I am super excited to announce that my latest book has been published and is available to purchase! A few years ago, I was sitting in a conference room listening to Google’s Alex Russell talk about Service Workers and how they were the next big thing that was going

5 December 2017

Guest Posts and Advent Calendars

This year, I’ve been lucky enough to write two articles for two great “advent calendar” style sites. I try to write for the Performance Calendar every year around this time and this year I’ve written about progressive image loading using Intersection Observer and SQIP. In this article, I

18 October 2017

Progressive Web Apps - Podcast

I was lucky enough to be interviewed recently by Matthew Groves on his podcast Cross Cutting Concerns where I talked about Progressive Web Apps. We discussed the basics of Progressive Web Apps and the different tools and techniques available to web developers. Matthew has had some pretty cool speakers on

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

8 August 2017

Lazy loading images using Intersection Observer

If you haven’t had the chance to watch it yet, Paul Lewis put together an awesome video series that demonstrates how to build a media player alongside some of the great features of Progressive Web Apps. There are a series of videos on YouTube that take place over a

26 June 2017

Persistent Storage API: Building for the offline web

One of my favourite features of service workers is that they give you the ability to build web apps that work completely offline. Using service workers, you can write code that will cache any resources that a user might require, so that they can be retrieved at a later stage,

5 June 2017

A BIG list of Progressive Web App tips & tricks

Lately I’ve been giving a lot of talks about Progressive Web Apps. Towards the end of the talks there is normally a Q & A section where the audience asks questions or proposes ideas. Often during these Q & A sessions, I get asked really useful questions that are worth sharing

23 May 2017

I'll be speaking at Fluent Conf 2017

I am very excited to announce that I'll be presenting at this year's Fluent Conference in San Jose. It is my first time at Fluent Conference, and I am very excited to be presenting. Fluent Conference 2017 will take place on the 19th - 22nd June, and I’ll

22 May 2017

Shape Detection API: Detecting barcodes, faces and text inside an image

Did you know that your device has the amazing ability to detect different shapes in images? Right now, whether you are on a mobile, tablet or desktop, it is capable of detecting faces, barcodes and even text in an image. Pretty amazing, huh?! According to the HTTP archive, images make

30 March 2017

Experimenting with the Server Timing API

You may be familiar with the saying “If you can’t measure it, you can’t improve it”. This saying couldn’t be more true when it comes to web performance. In our browsers today, we already have great APIs such as Navigation Timing and Resource Timing built-in, which

22 February 2017

Getting started with the Web Share API

If you’ve ever built a website and needed the ability to share to a social network, you’ll know that it’s not as easy as it first seems. In order to add basic share functionality, you often need to include a third party script and become familiar with

26 January 2017

Testing Service Workers locally with self signed certificates

Service workers are awesome. They provide us with powerful functionality to intercept and handle network requests, cache resources, send useful push notifications and so much more. Because service workers have this ability to intercept network requests, it’s essential that they run over HTTPS. In the wrong hands, a malicious

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

30 November 2016

5 awesome Progressive Web Apps worth exploring

Progressive Web Apps (PWA’s) are truly changing the way we use the web today. Push notifications, offline web pages, and super fast load times are just a few of the great features that developers are using to build Progressive Web Apps. Quite often I find myself visiting a website

24 October 2016

Getting Started with HTTP/2 and Server Push

HTTP/2 is awesome. When we enabled HTTP/2 on the settled.co.uk website, we noticed a 10% improvement in the page load times across the site. We didn’t change any code, or even make any web performance tweaks - we made the switch and noticed the results immediately.

21 September 2016

A simple, client-side approach to measuring Speed Index

When I first started learning about web page performance, I always use to focus solely on the time that it took a page to load. The excitement of seeing a web page load in an instant kept me coming back for more. Whilst web page load time is an important

15 September 2016

Book Review: ReWork

I'm currently reading a booked called ReWork, by the authors Jason Fried and David Hansson. They are two entrepreneurs that have created well known software products such as Basecamp, Highrise, Backpack and Campfire. If you've ever used these products before, you'll know how easy they are to

6 September 2016

Image Beast - My 10 K Apart Entry

This year, An Event Apart and Microsoft are teaming up to bring you 10 K Apart. It's a pretty cool competition with a challenge to build a compelling web experience that can be delivered in 10 KB and works without JavaScript. Believe me - it's not as easy as

2 August 2016

How I built a Progressive Beer app

I like beer. In fact, I like it so much that I decided to build a web app that showcases all the amazing different types that are out there! I've called it Progressive Beer. I've been experimenting a lot with Service Workers lately, and building a web application

25 July 2016

Book Review: Business for Punks

I recently found myself stuck in a train station waiting for the next train. With some time to kill, I wandered into one of the book stores near the platforms. As I was casually scanning the different books on the shelves, one book in particular jumped out at me - it

19 July 2016

A Basic Guide to Background Sync using Service Workers

It's been a while since I've guest written on another website. I normally find myself writing solely for this site, but I recently teamed up with Nicolás Bevacqua and his fun blog site Ponyfoo.com. If you've not heard of ponyfoo before, I thoroughly recommend checking it

5 July 2016

Ten Things you didn't know about WebPageTest.org

That's a pretty catchy title for an article, right?! Now that I've lured you onto this page, I am going to do my best to deliver the goods! Without a doubt, WebPageTest is one of my favourite web performance testing tools. It's completely free to use and

28 June 2016

CPU throttling using Chrome Developer Tools

I recently gave a tutorial at Velocity Conference in Santa Clara about some of the amazing features that lie within the browsers we use everyday. As web developers, we are pretty lucky to have such awesome developer tools at our disposal. After the tutorial was complete, a few people asked

28 June 2016

Book Review: Leading by Sir Alex Ferguson

I have always had a fascination with successful teams. Whether it's a business team, a military team or even a sports team, I find it intriguing to know what makes them tick. Regardless of what the team is involved in, finding the formula to their success is the secret

19 May 2016

A basic guide to Firebase for the web

I've recently been tinkering with Firebase, and I have to admit, I am really impressed. I was a bit sceptical at first, but when I starting experimenting with the code samples on the site I was blown away. If you haven't heard of Firebase before, it is a

11 April 2016

How to Identify Any Web Font Using Chrome DevTools

Have you ever visited a website and wondered what web font is being used? I often visit websites with great typography and end up digging through the CSS in my developer tools until I find what I am looking for. There are actually a few plugins and extensions that you

14 March 2016

I'll be speaking at Velocity Conference 2016

I am very excited to announce that I'll be presenting at this year's Velocity Conference in Santa Clara along with my partner in crime Robin Osborne. I've been lucky enough to present at Velocity Conference before, but this will be my first time at Santa Clara. Velocity

8 March 2016

Service Workers: Save your User's Data using the Save-Data Header

I was recently travelling abroad when I urgently needed to get some information from the website of my airline. I was on a sketchy 2G connection that took forever to load the page, and eventually I ended up giving up completely. I was also paying a fortune for this daily

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

22 February 2016

I'm Writing a Book - Building Great Startup Teams

I am very excited to announce that I am writing another book. I've been secretly working on this project for the past 8 months, and finally wanted to share it with you. If you are a regular reader of this blog, you will be familiar with most of my

16 February 2016

Whats your Favourite Algorithm?

Whether you've studied a computer science related subject or not, complex algorithms can seem quite daunting. You know, the ones you occasionally get asked and have to learn before going into an interview! It might feel like you only really learn these for an interview, but when you start

25 January 2016

Create a really, really simple offline page using Service Workers

Let's imagine for a second that you are on a train. The train is cruising through the countryside and you are reading an awesome article on the web using your mobile device. At the same moment that you click on a link to view more details, the train suddenly

17 December 2015

Getting started with the Service Worker Toolbox

I've been playing around with Service Workers a lot lately. I am super excited about the great features that they bring to the web. Offline pages, push notifications and flexible caching are just a few of the great features that they bring to the table. Using these built-in

10 November 2015

I'll be speaking at the Chrome Developer Summit 2015 Livestream

The Chrome Developer Summit is a fantastic event. If you are a web developer that is interested in discovering more about Google Chrome, it's a great chance to learn about the the newest and latest features for the upcoming year. The schedule is packed with great speakers and will

2 November 2015

Service Workers: Dynamic Responsive Images using WebP Images

Images play an important role on the web today. Imagine a world without images on our web pages! High quality images can really make a website stand out, but unfortunately they come with a price to pay. Due to their large file sizes, they are bulky to download and result

7 October 2015

How to customize your Search Profile in Google

If you've ever searched for an organisation or person using Google, you might have noticed that a few of the top results show up with extra information in the sidebar. This additional information often contains things such as logos, social profiles and even phone numbers. For example, let's

11 September 2015

I'll be speaking at OSCON 2015

I'm very happy to announce that I will be speaking at OSCON 2015 with my good friend Robin Osborne. We will be presenting a tutorial entitled "Automating web performance" which will run through a step-by-step guide to web performance and show you how to automate as much

19 August 2015

A Basic Guide to the Fetch API

As web developers, we often need the ability to retrieve data from the server in order to update our applications asynchronously. Traditionally this data is retrieved using JavaScript and the XMLHttpRequest object. A simple example of this might look something like the code below. In the code above, there are

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

Earlier this year I was lucky enough to get the chance to present at UpFront Conference in Manchester. This was the inaugural year for the conference, and it was great to be apart of this event. A few people have asked about the slide deck and wanted to know more.

6 July 2015

Responsibly harnessing the power of Prefetch using Google Analytics

If you browse the web today, there are many articles that explain what browser pre-loading is and how to use it, but very little explain how to actually use this feature in the real world. The ability to prefetch resources is powerful, but if used incorrectly it can turn

10 June 2015

Optimising Google Fonts for Fast Load Times

Using web fonts can be a great way to improve the look and feel of your website. I love tinkering with different font combinations on websites and seeing the changes they make. Unfortunately, adding web fonts to your site adds extra overhead to your site and can often slow your

1 June 2015

Improved Compression Ratios Using Zopfli

Compressing files can be a very effective way of reducing their size as they are transferred between the server and a user's browser. Most modern browsers work effectively with compressed files and use lossless compression formats such as Gzip, Deflate or Zlib. In order to compress a file, an

13 May 2015

Chrome Internal URLs: The Door to Narnia

Did you know that Chrome has a list of internal pages that allows you to see advanced flags and settings? There are some hidden gems inside the Google Chrome internal pages that give a useful insight into the hard work that the browser is doing behind the scenes. If you

7 May 2015

Good Engineering Manager / Bad Engineering Manager

During my daily commute into the office, I like to alternate between reading the newspaper and a good book. Lately I’ve been reading a book entitled “The Hard Thing about Hard Things” by Ben Horowitz. It’s a great insight into the trials and tribulations of running your own

30 April 2015

I'm a Google Developer Expert!

I am very proud to announce that as of today, I am a Google Developer Expert. If you haven't heard of Google Developer Experts before, they are a global network of experienced product strategists, designers, developers and marketing professionals that actively support developers and startups. While this doesn't

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

If you visit some of the most popular websites on the net today and view the source of their HTML, you might be surprised with what you find. There are often hidden gems and messages in the form of ASCII art embedded in their HTML comments. Troy Hunt recently wrote

7 April 2015

I'm Contributing to a Smashing Magazine Book - A Career On The Web

I am proud to say that I have been involved with and contributed to the latest Smashing Magazine book entitled A Career On The Web: On The Road To Success, this book provides a number of tips and best practices to guide you through the different stages of the job

30 March 2015

A Basic Guide to Contributing on Github

I have a few open source projects that I host using Github. People often have great suggestions to improve the project, and the issues they report constantly shape and help build a better project. Unfortunately there are people who are sometimes reluctant, or unaware of how easy it is to

19 March 2015

Web Typography using Web Fonts

I love web typography! Only a few years ago, the ability to add custom fonts to a website seemed impossible. Fortunately, due to modern browsers we are now able to create beautiful websites using web fonts. While I have to admit that I am no designer, and struggle with CSS

16 February 2015

Running Selenium Tests using Node.js

Browser automation is a great way to automate and test repeatable tasks in the browser. I've always been interested in browser automation and testing using tools such as Selenium. If you are looking for a way to ensure that your website runs as expected in many different browsers and

7 January 2015

HTML5 Charts using Chart.js

Let's face it - everyone loves a good pie chart! Using charts makes information much easier to visualize. It is easier to see a pattern in a chart, but much more difficult when looking at raw data. In fact, there are loads of different web based charting solutions available to

16 December 2014

Mozinar: 8 Simple Steps towards a Super Fast Website

Search Engine Optimization (SEO) plays a major part in the way we use the web today. SEO techniques can make your website easy for both users and search engine robots to understand. I've long been a fan of the Moz blog and their free SEO tools that can help

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

I've been fortunate enough to be asked to present at this year's Apps World Europe in the HTML5 and mobile web track. The title of the talk is called Making your site fast - overcoming the speed of the mobile web and is focussed around the web performance of

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

Responsive web design is awesome. It's changed the way we serve content to our users and has allowed us to offer a tailored experience to different screen sizes. It is really flexible and with a little bit of knowledge, anyone can get started. While this flexibility is great, it

22 September 2014

My Favourite Talks at Velocity Conference New York 2014

After a long flight and a little bit of jetlag, I've arrived back in London after visiting New York for Velocity Conference 2014. In typical Velocity fashion, the quality of the talks have been amazing and there have been a few highlights that are worth sharing. I thought it

12 September 2014

HTTP vs HTTPS performance comparison

Google recently announced that they will be starting to use HTTPS as a ranking signal in their search algorithms. This means that websites that serve traffic over HTTPS with secure, encrypted connections will be slightly favoured over those websites that don't. During Google I/O, there was a big

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.

26 August 2014

I'll be speaking at Velocity Conference New York 2014

Velocity Conference is without a doubt one of my favourite conferences of the year. It's the conference where different topics such as DevOps, web operations, web performance, and mobile explode into being. Packed with some of the best speakers in the industry; it's a great place to learn

27 July 2014

What is the difference between Build and Rebuild in Visual Studio?

If you are a developer that uses Visual Studio as your IDE, you will be familiar with the Build and Rebuild tasks. I regularly write code in Visual Studio and am used to hitting the Build command when I am developing, but have often wondered what is actually happening under

3 July 2014

Loading CSS Asynchronously

When it comes to web page performance, the size and weight of every resource on the page is important. Large JavaScript and CSS files can slow down your page load times and frustrate your users. There are a number of techniques for loading JavaScript asynchronously and many different techniques for

11 June 2014

Content Delivery Networks: Which one is right for you?

This article originally appeared in issue 232 of net magazine. It also appeared on their site, but as they moved domains and lost the content, I thought I'd post it on here. I hope you find this article useful! Imagine if I told you that you could drastically increase

30 May 2014

The Ultimate Image Optimization Cheat Sheet

Images play a massive role in modern web development today. They comprise of around 62% of the average page’s total payload, which is an astonishing amount! In terms of web page performance, images can be a huge performance roadblock, but they don't have to be. Simple image optimization

30 April 2014

Visual Studio - Why should I remove unused references?

When it comes to writing code, I like everything to be neat and follow a certain set of coding guidelines. I like to adhere to the principle that I always code as if the next person who ends up maintaining my code is a violent psychopath who knows where I

5 March 2014

Automatically removing unused CSS using Grunt

I have previously blogged about the importance of keeping your web pages lean and the impact that unused CSS can have on your page performance. Apart from causing cluttered files, unused CSS can can slow down page load times due to the unnecessary weight of the file. Google Chrome developer

26 February 2014

Validating email addresses in .NET - Handy Tip

If you've ever written any code that sends emails before, I'm pretty sure that you've had to validate the email addresses that are entered by users. Email address validation can be tricky at the best of times and with international domain names in email addresses, almost anything

24 February 2014

Remove unused CSS in your Web Application

I've previously blogged about my CSS skills and to be honest - they suck! I normally resort to using pre-rolled frameworks such as Twitter's Bootstrap, Foundation or TopCoat. These frameworks are really useful and their components help you get the basics of your UI up and running in

27 January 2014

Extending System.Web.Optimization

The ASP.NET framework is packed with loads of great features and with each release it seems to get better and better. One of my favourite features is the bundling and minification classes that optimize JavaScript and CSS files in a website to reduce file size and improve page performance.

21 November 2013

Working with multiple Web.Config files

When dealing with multiple development environments, it can often be quite tricky to keep track of the different environment specific settings that you may have in place. Fortunately, Visual Studio has a handy feature that allows you to have more than one Web.Config file for different environments. I have

20 November 2013

Velocity Conference Europe 2013 is a wrap!

Another year, another great conference. This year's Velocity Conference in Europe was packed with loads of great talks and tutorials. Velocity Conference is three great days of concentrated focus on the key aspects of web performance, operations, and mobile performance. If you are interested in web performance or developer

1 November 2013

I'll be speaking at Velocity Europe 2013

Velocity Conference is my favourite conference of the year. There is always a host of great speakers and it's packed with awesome web performance topics. If you aren't familiar with Velocity Conference, it is three great days of concentrated focus on the key aspects of web performance, operations,

28 October 2013

Improved tracking with the <a ping> attribute - HTML5

As I sit down at my desk each working morning, the first thing I do is fire up the ever faithful feedly and read through the days' tech news with a cup of coffee. During my usual morning reading, I came across this interesting update from Ilya Grigorik on Google+

24 October 2013

Fast ASP.NET Websites Competition - Results

The results are in! Thank you to all the people who entered the competition and tweeted about the book. The competition closed on the night of the 22th October 2013, and the number of entries was fantastic. I can reveal that the following people were chosen at random using random.

21 October 2013

Slides - Interviews: Stand out from the Crowd

I've spent a lot of time in interviews during my career as a software developer. Whether it involves being interviewed, or spending time interviewing new candidates, the career searching process has always interested me. I recently wrote an article for Smashing Magazine which talked about the different steps that

4 October 2013

A Simple HTML Minifier for ASP.NET

🚀🚀 Update: Read an updated article about this tool! Head over to the following link. 🚀🚀 I have previously blogged about the importance of serving your users web pages with speedy load times. Poor web performance equals lost revenue and customers. As you continue to build and improve on the web performance

23 September 2013

Fast ASP.NET Websites Book Giveaway

Fast ASP.NET Websites has just been released, and if you haven't already gotten your hands on a copy, I have 3 free copies to give away. Fast ASP.NET Websites is a practical, hands-on guide to create faster, more efficient ASP.NET sites and applications. This book

10 September 2013

Get the number of users that are online using SignalR

In a recent experiment, I was looking for a way to retrieve the number of online users in an ASP.NET application. There are a number of techniques that can be applied, such as incrementing based on ASP.NET session state, or using Google Analytics to keep track of active

30 August 2013

Fast ASP.NET Websites has been released!

A rather large and suspicious looking box arrived at my house yesterday. To my surprise, it was the first few copies of Fast ASP.NET websites. These have just rolled fresh off the press courtesy of Manning! If you aren't familiar with the contents of the book, it is

19 August 2013

ASP.NET MVC HTML5 Toolkit Update - August 2013

There have been a number of major updates released with the latest version of the MVC HTML5 Toolkit. You, the community have been great, and the majority of the patches and enhancements have been added via the Codeplex site. If you aren't familiar with the MVC HTML5 Toolkit, it

11 August 2013

ASP.NET Release Checklist

Whenever I work on side projects or make updates to this blog, I like to run a few simple checks to make sure that the site is ready before I release it. When working on side projects, you might not have the benefit of having someone else to help test,

24 July 2013

Guide to configuring custom domain names for a Windows Azure website

Creating a new website is easy and super-fast thanks to an intuitive UI on the Windows Azure portal. You can create a new website and be up and running in a matter of minutes. By default, your new site will normally have a host name that looks like yourdomain.

5 July 2013

Web Page Performance - Profiling paint times

I recently attended the Facebook Mobile Developers Conference in London. Throughout the day, there were a load of great talks, but the one that really stuck out for me was a performance talk entitled "Making m.facebook.com fast". It was all about how Facebook constantly strive to improve the

3 July 2013

The "ideal" sprint length

Many organisations today use Scrum as a framework for managing software projects and developing applications. As a certified ScrumMaster, I have been using Scrum for over five years and have seen it run in many different companies. When implemented correctly, I have seen that Scrum can be extremely successful. However,

3 April 2013

WebP - Advanced image optimization using ASP.NET MVC

Most modern web pages contain a lot of images. These images often make up the bulk of a web page request. According to the HTTPArchive, images make up over 50% of the average web page and if you are looking to optimize on the performance of your web page, the

26 March 2013

Twitter bootstrap typeahead and ASP.NET MVC - Key/Value pairs

I suck at creating CSS. As a backend developer, I've always managed to get by with my CSS skills, but I've always been jealous of my front end developer colleagues when it comes to their ability to create beautiful web pages. Fortunately, the guys at Twitter have developed

20 March 2013

Free icon packs for developers

Over the years, I have started to hoard a collection of links to various free icons that I find on the net. Often, I use these icons to spruce up simple prototypes or just make my web pages look livelier. Unfortunately, I've been collecting these links to icon packs

12 March 2013

The Google PageSpeed API & MVC 4

I often use tools such as Yahoo! YSlow and Google PageSpeed to profile the performance of my websites. These tools offer useful performance suggestions that will improve the speed and performance of my sites if implemented correctly. They both plug into the browser and can be run at the click

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

Ever since I first started writing code, I've always been interested in the performance of websites and making them faster. It's amazing how a slow website can be brought to life with a few simple tweaks to your website setup. There is nothing more satisfying than seeing someone

29 November 2012

How to disable Flash in all browsers

I am currently working in a team where we are replacing an older Flash implementation of a product with a shiny new HTML5 version. Quite often we find ourselves needing to disable Flash in many different browsers as we run through the testing process with the new product. I often

26 November 2012

.NET Caching - File Dependencies

In a previous blog post, I wrote about the built in support that .NET has for in-memory caching. It sits under the System.Runtime.Caching namespace and can be easily added to any application to give you a great improvement in performance. You can store any type of object

30 October 2012

The Five Whys

I've been reading a book called the Lean Startup recently. It is filled with great advice and the Lean Startup is basically a business approach that aims to change the way that companies build and launch new products. Whilst reading the book I came across a chapter that dealt

17 October 2012

Improve Page Load Times With DNS Prefetching

I'm often looking for ways to improve the performance of my websites and provide a better experience for users. Quite often you may find that your site is running efficiently and performing well. You may also have run your application through Google PageSpeed or Yahoo! YSlow and come out

7 October 2012

Velocity Conference Europe 2012 - Roundup

This week saw the return of Velocity Conference Europe to our shores. With a great line up of speakers, this conference is a gathering of hundreds of web ops and performance professionals that get together to share their ideas and expertise. Without a doubt, this is one of my favourite

20 August 2012

Visual Studio 2012 - A week in perspective

I am one of the lucky ones. Fortunately my company gives us a MSDN subscription and this goes a long way toward keeping up with the latest Microsoft Software. I have been eagerly awaiting the release of Microsoft Visual Studio 2012 which came out last week. I was a little

10 August 2012

Net Magazine Article

An article that I recently wrote for Net Magazine is coming out in the September 2012 issue. The article talks about Content Delivery Networks and the benefits that using one can bring to the speed of your page load times. I am a big fan of the magazine, and it'

31 July 2012

Hidden Gems inside .Net Classes

Surprisingly, there are loads of great data snippets hidden inside .Net classes. If you've ever found yourself adding localization to your website, you may have come across the CultureInfo Class in .Net. I know that sometimes I have needed to get a list of country ISO codes and have

11 July 2012

Lazy Loading Social Sharing Buttons

Social sharing buttons play a big part on the web today. They are used to drive traffic to the site, and if done correctly can be very successful. Unfortunately, the loading of these buttons has its downsides on performance. Having many social sharing buttons on your site can slow it

31 May 2012

HTML5 Asynchronous JavaScript

HTML5 has a handy little attribute called 'async'. This attribute can be used together with Script tags to asynchronously load JavaScript. No more fancy code to get your JavaScript to run asynchronously - you just need to add this to a script tag and it just works. đź’ˇ<script async src=""><script> In order to improve</script></script>

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 March 2012

Selenium WebDriver - Using a Headless Browser in .Net

If you have ever run a large suite of automated tests using Selenium WebDriver, you will know that sometimes it can take ages to complete. This coupled with different versions of browsers can be a bit of a pain. This is where Headless Browsers come in. In the simplest of

9 February 2012

Dynamic Favicons using HTML5 Local Storage and TinyCon

I was perusing Github the other day and I came across this awesome little JavaScript library. It's called TinyCon and it's a small library for manipulating the favicon in your browser. It adds alert bubbles and changing images pretty similar to the way Gmail does. It's basically

16 January 2012

MVC Asynchronous Controller : The Basics

When I first saw the Asynchronous Controllers introduced in MVC 2, I couldn't wait to start playing around. I thought that it would be a really easy to get up and running with a simple example, but after searching online for a few working examples - pretty much all of

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.

7 November 2011

Web.config Transformation Features in Visual Studio 2010

When developing applications in Visual Studio, I normally pay a lot of attention to my Solution Explorer. However, I recently spotted something that I didn't notice before. Well, at least something that I haven't paid attention to! In Visual Studio 2010, if you click on the Web.config

27 October 2011

Selenium Webdriver - Wait for an element to load

I am currently working on a project that uses a lot of AJAX and delayed loading of HTML elements. This means that when a page loads, the object that I am looking for might not necessarily have appeared yet. In many instances the element may only be added to the

11 October 2011

Rendering PDFs with pdf.js using HTML5 and JavaScript

The web is full of PDFs floating around out there. How many times have you tried to open a PDF file on a machine and not had the correct software installed? It can be very frustrating. For most users out there they already have the correct software installed to view

26 September 2011

Memcached for C# - A Walkthrough

A while ago I wrote about Object caching in .NET 4. I think that the Object Caching in .NET 4 is a great tool to use for caching and literally takes minutes to get up and running. However, one of the downsides of using the System.Runtime.Caching in .NET

14 September 2011

MVC Data URI HTML Helper

I have recently been looking into web page performance and one of the things I came across is the Data URI scheme. When you reference an image in your HTML, the client needs to go and retrieve the image. This creates an HTTP request and adds to the time it

7 September 2011

Responsive Design and CSS3 Media Queries

Regular readers on this site will notice that there has been a major change on the site lately. The design of the site has changed as well as the layout. I have been playing around with the idea of Responsive design and also updating the look and feel of this

8 July 2011

MVC and the HTML5 Application Cache

HTML5 has loads of awesome features and recently I have been playing around with a feature called the Application Cache. The Application Cache is designed to allow you to run your web application offline - that is, without a network connection. A web browser that implements HTML5 offline applications will read

24 June 2011

C# Parallel Invoke

While working through some code, I noticed a method that I have never seen before. I knew that the .Net 4 Framework had introduced a Parallel Class that helped make parallel ForEach Loops easier, but after some searching I came across the ParallelInvoke() method. So, I jumped on the MSDN

5 June 2011

Automatic Resource File Translation with the Microsoft Translator Service

On a recent project that I have been working on, we needed the application to be multi-lingual and localized for different countries. The best option for us on this project was to use resource files (.resx) and let .Net handle the rest for us. Now creating these resource files

12 May 2011

Measuring Web Page Performance with Selenium 2 and the Web Timings API

I have always been interested in measuring web performance, and especially in measuring the improvements in performance. A while ago I attended a Selenium Meetup in London and heard an interesting presentation by one of the QA guys working at Mozilla. He talked about measuring the performance of a web

15 April 2011

Microsoft Translator API

As the web grows, more and more international businesses are turning to the web. The demand for a multi-lingual website has never been so great. There are currently a few pay services out there that offer a translation API and also a few free ones (Google and Microsoft). One

21 March 2011

Explicit Interface Usage in C#

Where possible, I try and program against interfaces as much as possible. I do this because I like Interface-based programming and because I like the characteristics that it brings to the table: reusability, maintainability, and extensibility. It also allows you to effectively test your code using Mocks. Whether or

22 February 2011

Asp.net MVC HTML5 Toolkit - Latest Updates

HTML5 has some fantastic features available to us, and I've tried to add as many of those features as I can to this toolkit. For more information on some of the features available to HTML5 form fields, please take a look at this article. I've added quite a

17 February 2011

Selenium 2 - Get Number of Rows in a Table

I was recently browsing through some of the questions on StackOverflow and came across this question. The question was around how you would count the number of rows in a table using Selenium 2 and Python. If you need a bit of a background to Selenium 2, I have written

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

1 February 2011

ASP.NET MVC HTML5 Toolkit is now available as a Nuget Package

Great news for those of you out there that use the MVC HTML5 Toolkit - it is now available to download as a Nuget package. If you haven't already had a look at the MVC HTML5 Toolkit, please read this article for more info or visit the Codeplex site. For

24 January 2011

A Simple Guide to using OAuth with C#

🚀 Update: See a modern version of this article using OAuth 2 here! 🚀 If you are a newbie to OAuth you might understand how confusing it can be at first! I started off looking at building a small application that consumed an OAuth service as a side project. I just dived

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

13 December 2010

Automated Testing with Selenium WebDriver and NUnit

I have recently been looking into an awesome tool called Selenium. What is Selenium? Well, it's a suite of tools that you can use to automate web application testing across many platforms. I recently attended a Selenium Users Group at the Google London Head Offices where they discussed the

9 December 2010

A Year of Blogging

This has been my first year of blogging! Whew! 1 year and 42 articles later - I never thought I'd be writing this. I had always thought about starting my own blog to write some technical articles, but I just never made the time and always had an excuse not

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

I have recently been glued to my screen watching some of the awesome presentations that were shown at the recent PDC 2010. There were some really amazing presentations and one of them really caught my eye. It was a talk about the power of ODATA and the support that Microsoft

1 November 2010

Proxy Authentication - Helper Class

If you have ever created an application that requires you to access the internet or call a 3rd party service over the web, you may have come across the issue of the user being behind a proxy server and having to authenticate. The common issue that I have come across

28 October 2010

HTTP HEAD Request - Benefits / Usages

Until recently, I had heard of the HTTP HEAD method but never actually used it, or quite understood it's usages. I'm sure most of us have used some of the common HTTP Verbs before such as GET or POST. Let me explain a little bit about the HTTP

25 October 2010

jQuery Mobile - Optimizing your Website for Smartphone's and Tablets

As developers today, our websites are constantly being accessed from different forms of devices - PC's, Mac's, iPhones, Blackberry's, iPads - and the list goes on! Developing websites and content that conforms to all these standards can be a nightmare. Luckily, jQuery has just released a version of their

20 October 2010

SmushMySite - Image Optimization Tool Update

The SmushMySite tool has just been updated with a load of new enhancements. For those of you that aren't familiar with the SmushMySite tool, it is a free image optimization tool that takes advantage of the Yahoo Smush.it™ service. It is a quick and easy way to optimize

15 October 2010

SmushMySite Image Optimization Tool - Smush.it™

When I am developing a web site, I am always looking for ways to improve the speed and page load times. I have used a few tools such as Yahoo's YSlow and Google's Page Speed Analyzer. If you have played around extensively with YSlow you may have noticed

6 October 2010

Object Caching - .NET 4

As a developer, we need to use all the tools at our disposal to develop faster and more robust applications. One of the ways we can achieve this is by using caching. Caching is the process of storing frequently used data on the server to fulfil subsequent requests. Now there

1 October 2010

Web Analytics - Determining Bounce Rate

If you are a fellow blogger or Webmaster then read on, because this might interest you somewhat. When I first started out blogging, I added Google Analytics to my site to track visitors and stats. It's a great free tool and generally a really accurate service, and I'm

24 September 2010

MVC and the Google Visualization API (DataTable)

Google have created an awesome visualization API. It enables you to add live charts, graphs and tables to your web pages. It is quite flexible and has some great features that are quite easy to use once you get started. I started playing around with this API and decided to

7 September 2010

A Simple Guide to SQL Compact 4

There has been quite a lot of interest building up recently around SQL Compact 4. Now, if you are not familiar with SQL compact, it's basically a database engine that is free and totally embedded. You don't need to install a database anywhere on your server. Not only

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

If you haven't started playing around with HTML5 yet, you should definitely check it out. I've blogged about some of the features of HTML5 before, so if you take a look at this post, it should give you a fairly idea of what HTML5 is about. I try

6 August 2010

Test your MVC routes with Moq

Routing is a great feature that ships with MVC. The ASP.NET Routing module is responsible for mapping incoming browser requests to particular MVC controller actions. One of the great things about routing in MVC is the ability to rewrite a URL and make it a lot more readable. This

2 August 2010

Professional Asp.net Mvc 2 Book Giveaway - Result

Firstly, I would like to thank everyone that entered the competition and also everyone that contributed by leaving a comment on the blog. There have been a load of great ideas and I will definitely be implementing them on the site. Hopefully you will see these changes over the next

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

If you've been browsing around the web lately, you may have noticed that there has been a lot of hype and attention slowly building around Html5. Now, I didn't really understand it all until I started to take a look at some of the awesome new features that

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

Set up IIS 7 to run a secure site locally - HTTPS

I've recently been working on a project where I needed to get a development site running using SSL on IIS 7. If its the first time you've done this it can be a little tricky, but IIS 7 has made it super easy to create self signed certificates.

1 June 2010

Lazy loading images with jQuery

Some of the articles written on this site are pretty image intensive and take up a lot of resources when loading up. An awesome way to improve page load times as well as providing a better user experience is to use lazy loading for your site. There is a excellent

7 May 2010

MVC Google Maps HtmlHelper - Dynamic Maps

I've recently been looking for a MVC helper class for Google maps. I came across this well written MVC HtmlHelper for static Google maps. Unfortunately I was looking for a helper that was for the dynamic version of Google charts. I needed to be able to add markers on

29 April 2010

Rich Snippets and Structured Data - RDFa

I've always been interested in optimizing this site for search engines and trying my best to make this site as efficient as possible. I recently stumbled across a blog post by the Google webmaster team that explained a little about rich snippets and how search results are returned when

20 April 2010

Measuring the Performance of Built-in .Net Classes

I've always wondered which built-in .Net classes are faster compared to others. There is a lot of conventional wisdom surrounding certain code classes in .Net and which ones are better to use than others. One thing that I always try and keep in mind when writing code is

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

9 April 2010

Basic Introduction To Writing Unit Tests With MOQ

What is mocking? Well....according to Wikipedia it is: "In object-oriented programming, mock objects are simulated objects that mimic the behavior of real objects in controlled ways. A computer programmer typically creates a mock object to test the behavior of some other object" In short, Mock objects are a

22 March 2010

Postmark - Email delivery for web apps

I recently stumbled across the following site and looked at some of their applications that they have on offer. One of the great tools that they offer is a tool called Postmark. Postmark helps deliver and track transactional emails. The service basically replaces using SMTP, and allows you to send

19 March 2010

Useful Lambda Expressions

A really useful built in feature of .Net is the Lambda expression. I've been using these for a while, but until I started looking into it, I never realized how useful these can actually be. There are loads of quick, nifty ways to get things done that might take

22 February 2010

Improving the performance of your MVC application

In the constant quest to deliver faster, slicker websites it is important to try and improve the users experience. This could include improving the page load speed, smooth navigation or page accessibility. While working on this site, I have tried to improve page loading speeds as much as possible. There

9 February 2010

Rendering a Usercontrol as a String for Webservices

I am currently working a project at work that requires us to use progressive enhancement so that our site is accessible to all users regardless of whether they have javascript enabled. One of the issues that we came across was keeping only one version of the html that we needed

3 February 2010

Vote for your favourite .NET DI (IoC) Framework

I've started to take a look at Dependency Injection Containers (IoC), mostly because we have started using them where I work and also just out of general interest and trying to get my mind around how they work. From Wikipedia: Inversion of control, or IoC, is an abstract principle

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

Asp.net Mvc has an awesome little class called the HtmlHelper class. I have only recently started to get into creating custom HtmlHelpers, and I thought that creating a small Google charting helper would be a good place to start. From the Microsoft MSDN site: The HtmlHelper class provides a

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

5 January 2010

Create Barcodes and Pdf's in C# with iTextSharp

An easy way to create PDF files is to use iTextSharp. It is an opensource PDF library that allows to you generate PDF files on the fly. It's great if you need to dynamically create a PDF using dynamic data. Also, I found that this is a great tool

17 December 2009

Minify JavaScript files automatically with a T4 template

After my last post, I decided to dive a little more into T4 templates and learn more about them. After some goofing around, I decided to write a template that would minify js files automatically using the Yahoo YUI compressor for .net - http://www.codeplex.com/YUICompressor. T4 is a

16 December 2009

Dot Less and Minifying CSS

A colleague introduced me to this wicked library for css files. If you are lazy like me, this tool is a great way to use variables in your css code so that you dont end up repeating yourself. Taken directly from the site: http://www.dotlesscss.org/ "Write regular CSS

15 December 2009

Custom error pages in ASP.NET MVC

I was recently looking for an efficient method of redirecting users to an error page when an exception is thrown in an MVC application. A useful way of doing this is with the HandleErrorAttribute. In order to handle exceptions thrown by your action methods, you need to mark your method

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