All Posts
  -  Context Transference (Friday 30 May 2025) 
 -  7 AI Predictions (AI, We Really Need To Talk: Part 2) (Thursday 29 May 2025) 
 -  Notes on the Synthesis of Form (Monday 6 January 2025) 
 -  Coverage is not correctness - but it helps! (Tuesday 12 November 2024) 
 -  Lo-Fi Service Discovery in .NET8 (Tuesday 21 November 2023) 
 -  The Surface Area of Software (Sunday 4 December 2022) 
 -  Notes on the Monorepo Pattern (Sunday 4 December 2022) 
 -  Open-Source Software, Licensing and Enterprise Procurement (Friday 24 June 2022) 
 -  Storing growing files using Azure Blob Storage and Append Blobs (Saturday 16 April 2022) 
 -  Writing User Stories (Monday 10 January 2022) 
 -  Open-Source Exploitation (Monday 13 December 2021) 
 -  A Love Letter to Software (Friday 3 December 2021) 
 -  Hiring is broken! Let's fix it with empathy. (Thursday 30 September 2021) 
 -  How to write a tech talk that doesn’t suck. (Sunday 20 June 2021) 
 -  Agile software estimation for everyone. (Wednesday 10 February 2021) 
 -  Writing good code by understanding cognitive load (Tuesday 2 February 2021) 
 -  9 time-management tips for developers (Monday 16 November 2020) 
 -  Does Functional Programming Make Your Code Hard To Read? (Wednesday 14 October 2020) 
 -  An introduction to TypeScript and ES Modules (Thursday 17 September 2020) 
 -  The happy path – using Azure Static Web Apps and Snowpack for TypeScript in your front end (Tuesday 1 September 2020) 
 -  Does remote work make software and teamwork better? (Monday 10 August 2020) 
 -  Azure Static Web Apps Are Awesome! (Wednesday 29 July 2020) 
 -  .NET Templates for C# Libraries, GitHub Actions and NuGet Publishing (Monday 4 May 2020) 
 -  Deploying Azure WebApps in 2020 with GitHub Actions (Sunday 3 May 2020) 
 -  The Quarantine Project (Sunday 3 May 2020) 
 -  Running .NET Core apps on Glitch! (Thursday 26 March 2020) 
 -  Small thoughts on literate programming (Friday 28 February 2020) 
 -  Hardware Hacking with C# and JavaScript (Wednesday 29 January 2020) 
 -  Music Streaming and the Disappearing Records (Sunday 15 December 2019) 
 -  Architecture for Everyone (Thursday 12 December 2019) 
 -  Creating Spark Dataframes without a SparkSession for tests (Tuesday 26 March 2019) 
 -  Building .NET Apps in VSCode (Not .NetCore) (Thursday 17 November 2016) 
 -  Get Coding! - I wrote a book. (Tuesday 28 June 2016) 
 -  Why code reviews are important (Thursday 7 April 2016) 
 -  Projections in Agile Software Development (Saturday 28 November 2015) 
 -  Using C# 6 Language Features In Your Software Tomorrow (Monday 20 July 2015) 
 -  Passenger - A C# Selenium Page Object Library (Video) (Monday 27 April 2015) 
 -  Page objects for browser automation - 101 (Wednesday 1 April 2015) 
 -  We need to talk about configuration. (Thursday 5 March 2015) 
 -  Cutting CODE!-A livestream show for programmers (Sunday 1 February 2015) 
 -  Deployments in .NET 2014/2015 Report (Friday 16 January 2015) 
 -  Testing an ASP.NET WebAPI app in memory (Wednesday 7 January 2015) 
 -  Thoughts about delivering platforms from Nick Dentons leaked memo (Thursday 11 December 2014) 
 -  NuGet 101 - A Bootcamp (Tuesday 9 December 2014) 
 -  Deployments on Windows / .NET in 2014 (Thursday 13 November 2014) 
 -  Garbage Collection in .NET - Workstation vs. Server GC. (Thursday 6 November 2014) 
 -  Code dojos as a learning tool (Wednesday 5 November 2014) 
 -  Performance Tuning and the Importance of Metrics (Sunday 26 October 2014) 
 -  Lessons learnt running a public API from #dddnorth (Sunday 19 October 2014) 
 -  Deferred execution in C# - fun with Funcs (Thursday 16 October 2014) 
 -  How to make it harder for people to steal your users accounts (and data!) (Wednesday 3 September 2014) 
 -  Inverting the FN keys on a Microsoft Wedge Keyboard (Monday 11 August 2014) 
 -  A summer in the wilderness; on not working; volunteering; taking clients (Wednesday 6 August 2014) 
 -  Continuously deploying Azure services using AppVeyor and GitHub (Tuesday 13 May 2014) 
 -  Exploring QueueBackgroundWorkItem in ASP.NET and Framework 4.5.2 (Friday 9 May 2014) 
 -  Slidedeck + Video - Profiling applications with dotTrace (Friday 2 May 2014) 
 -  Writing technical stuff that people want to read (Wednesday 23 April 2014) 
 -  Doing Open Source Right (Monday 31 March 2014) 
 -  ASP.NET MVC 101 - Extensibility Points (Thursday 20 March 2014) 
 -  HTML Image tags and onerror javascript handlers (Wednesday 5 March 2014) 
 -  Introducing:ReallySimpleFeatureToggle (Monday 3 March 2014) 
 -  SSL Termination and ASP.NET (Wednesday 12 February 2014) 
 -  The Assassination of OR/Ms …by that coward, relational storage (Tuesday 11 February 2014) 
 -  Azure WebJobs and continuous delivery (Thursday 23 January 2014) 
 -  Definition of 'refucktoring' in English (Saturday 4 January 2014) 
 -  Lessons Learnt Authoring Software Libraries (Tuesday 3 December 2013) 
 -  Instant Nancy Web Development - A book review (Wednesday 27 November 2013) 
 -  Using build failure conditions in TeamCity to ensure "improving" test coverage in .NET apps (Monday 18 November 2013) 
 -  Announcing:System.Configuration.Abstractions (Wednesday 6 November 2013) 
 -  Writing great user stories (Wednesday 6 November 2013) 
 -  Lessons learnt scaling a big mainstream RESTful API (Sunday 27 October 2013) 
 -  JustGiving's love affair with Nancy - A case study (Monday 7 October 2013) 
 -  Using SimpleServices to build a runnable and installable windows service (Friday 27 September 2013) 
 -  Using #NancyFx to make "invisible" applications visible (Wednesday 25 September 2013) 
 -  Building software that’s easy to monitor and administer (Monday 23 September 2013) 
 -  A source control strategy for Git that “just works” (Wednesday 11 September 2013) 
 -  How did [some bug] pass QA? (Friday 2 August 2013) 
 -  The Pragmatic Polyglot (Monday 24 June 2013) 
 -  Think people aren’t communicating? Remember you have the privilege of looking at the code (Tuesday 18 June 2013) 
 -  Composition over inheritance at a macro level - composing applications from packages (Thursday 28 March 2013) 
 -  A quick ASP.NET MVC Extension to support CDNs (Wednesday 20 March 2013) 
 -  ...from the trenches - 01 - Profiling a C# web app with dotTrace (Sunday 24 February 2013) 
 -  The Anatomy of a Continuous Deployment System (Wednesday 13 February 2013) 
 -  A prettier way to parse strings in C# (Friday 11 January 2013) 
 -  Should I train as a programmer or learn how to code? (Friday 7 December 2012) 
 -  Easy Google Analytics Event Tracking-Do it by convention! (Wednesday 5 December 2012) 
 -  Can I delete *.regtrans-ms files from c:\windows\system32\config (Friday 26 October 2012) 
 -  Effective software delivery–Tips for keeping your releases predictable (Sunday 29 January 2012) 
 -  Effective software delivery–Short, consistent release cycles (Sunday 29 January 2012) 
 -  iTunes Persistent Id Cloner - Sync one iPhone / iPod with many computers (Wednesday 25 January 2012) 
 -  JustGiving Direct Debit SDI–Y U NO WORK?! (Sunday 11 December 2011) 
 -  Configuring Windows Server 2008 R2 as a non-domain file server (Monday 28 November 2011) 
 -  CouchDb using C# in 15 minutes (Monday 14 March 2011) 
 -  The perils of outsourcing software development (Monday 29 November 2010) 
 -  Pluralization (Pluralisation!) in C# (Monday 15 November 2010) 
 -  JustGiving <3 CharityHack 2010 (Thursday 9 September 2010) 
 -  Serving different views for mobile devices in ASP.NET MVC (Monday 3 May 2010) 
 -  Automatic Html Encoding in ASP.NET 4.0 (Tuesday 13 April 2010) 
 -  What Are APIs Anyway? (Friday 19 February 2010) 
 -  C# Access Modifiers Are Type Specific, NOT Instance Specific (Wednesday 17 February 2010) 
 -  ASP.NET MVC View Engine That Supports View Path Inheritance (Tuesday 19 January 2010) 
 -  I don’t understand Bayonetta (Sunday 10 January 2010) 
 -  Albums of the year… 2009… (Tuesday 15 December 2009) 
 -  Writing Presentable Code Pt.1 – Properties and Variables (Wednesday 4 November 2009) 
 -  Reusable Editable Fields for ASP.net MVC Using jQuery (Thursday 8 October 2009) 
 -  Creating a WCF Proxy to talk to Magento (Monday 5 October 2009) 
 -  Designing Client Facing APIs – Best Practices (Wednesday 30 September 2009) 
 -  In defence of current-gen game design (Saturday 5 September 2009) 
 -  Localizing ASP.Net MVC Pages without the need to RunAt=”server” (Thursday 20 August 2009) 
 -  MobileTFL 1.0.0.9 (Sunday 9 August 2009) 
 -  MobileTFL 1.0.0.8 (Friday 31 July 2009) 
 -  After some radio silence – videogames! (Monday 6 July 2009) 
 -  Xml Comment Hell – A Software anti-pattern (Monday 6 July 2009) 
 -  How far has A.I. in games really come? (Monday 1 June 2009) 
 -  C# Extension Methods To Get Enum DescriptionAttributes And Other Custom Attributes (Thursday 23 April 2009) 
 -  Installing certificates using WiX / Voltive (A Code Sample) (Wednesday 22 April 2009) 
 -  Using A Wiki To Replace Requirements And Produce Documentation For Your Agile Projects (Tuesday 7 April 2009) 
 -  Controlling Your Software Development Environment And Release Cycle In An Agile Way (Sunday 22 March 2009) 
 -  Custom HTC Diamond ROMs Not Waking Up To Email Alerts (Friday 20 March 2009) 
 -  XNA Game Development:Coding For Multiplatform Multiplayer (Thursday 12 March 2009) 
 -  XNA Game Development:Coding For Multiplatform Multiplayer 2 (Thursday 12 March 2009) 
 -  Game Development (Tuesday 10 March 2009) 
 -  Why I Love Stand Up Meetings And How To Make Them Work For You (Friday 27 February 2009) 
 -  Simple C# HTTP Server for Windows Mobile (Tuesday 17 February 2009) 
 -  Bargain Bin Games:“Stranglehold” and “Kane and Lynch” (Wednesday 11 February 2009) 
 -  Installing Certificates using Wix (Windows Installer Xml / Voltive) (Wednesday 11 February 2009) 
 -  So I finished Fallout 3 finally... (Tuesday 3 February 2009) 
 -  C# Subversion ChangeLog Generator (Monday 19 January 2009) 
 -  SEO Lies & Real Solutions (Or Why SEO Experts Are All Hacks) -  A Case Study (Thursday 15 January 2009) 
 -  Late Night Therapy (Tuesday 13 January 2009) 
 -  Microsoft, thankfully, standing firm on BluRay and the 360 (Friday 9 January 2009) 
 -  A Few Of My Favourite Things (Of 2008) (Wednesday 7 January 2009) 
 -  The Death of Middle Tier Games Studios (Thursday 18 December 2008) 
 -  On How I Learnt More About Business And People From World of Warcraft Than From "Corporate Life" (Monday 1 December 2008) 
 -  XBox Live Connection Bug - Live won't automatically connect until you perform a network test (Wednesday 19 November 2008) 
 -  Peer to peer networking using Windows Communication Foundation (WCF) Peer Channels and the Peer Mesh (C# .Net) (Monday 17 November 2008) 
 -  Do Good Things (Fable II) (Thursday 30 October 2008) 
 -  Protecting Your Software - Authorisation and You (Tuesday 30 September 2008) 
 -  StackOverflow, Bloodstock and The Clone Wars (Catching Up) (Monday 18 August 2008) 
 -  Vintage Game Club:Grim Fandango (Monday 14 July 2008) 
 -  Embrace, Extend, Extinguish:Integration with Uncooperative Systems (Saturday 12 July 2008) 
 -  The Vote Of No Confidence In The Entity Framework (Wednesday 25 June 2008) 
 -  The Dangers Of Pushing The "Cloud" To Market (Saturday 21 June 2008) 
 -  C# Developers Toolbelt (Sunday 8 June 2008) 
 -  Selecting a mostly portable notebook (Thursday 5 June 2008) 
 -  Beyond Good and Evil 2 (Wednesday 28 May 2008) 
 -  Web 3.0 Data Silos and Identity Portals - Overthrowing social networks (Tuesday 20 May 2008) 
 -  Stop Holding My Data Hostage - Data Ownership and Web 3.0 (Tuesday 6 May 2008) 
 -  Nine Inch Nails - The Slip (Tuesday 6 May 2008) 
 -  The Church of VB.Net (Monday 28 April 2008) 
 -  Discipline (Tuesday 22 April 2008) 
 -  Sharepoint (Tuesday 22 April 2008) 
 -  Ashes Divide samples appear online (Wednesday 2 April 2008) 
 -  RunAsRadio - Scott Kveton Shares His OpenID! (Friday 28 March 2008) 
 -  Fractured Online Identities (Wednesday 26 March 2008) 
 -  Singularity (Wednesday 5 March 2008) 
 -  Self Hosted WCF Services Revisited (Wednesday 5 March 2008) 
 -  LucasArts adventures reincarnated (Saturday 1 March 2008) 
 -  Development Tricks:Debug View (Friday 22 February 2008) 
 -  Using C#, Inversion of Control and WCF to produce a generic host for use in distributed systems. (Thursday 21 February 2008) 
 -  Pigs are flying and Microsoft are opening APIs (Thursday 21 February 2008) 
 -  Mass Effect (Sunday 3 February 2008) 
 -  Game Development in C# (XNA Woes) (Monday 28 January 2008) 
 -  2008 (Sunday 6 January 2008) 
 -  Duke Nukem Forever Trailer (Wednesday 19 December 2007) 
 -  After such radio silence... (Sunday 29 July 2007) 
 -  Moving Forwards (Friday 4 May 2007)