Andrew Harcourt
  • Have me speak
    • Governance
    • Ask for the unreasonable… and then get out of the way
    • 'Good enough' software
    • Agility in business: what we can learn from the software industry
    • How to engage with the software industry
    • People are a distributed system
    • Technical
    • Messaging patterns for scalable, distributed systems
    • Inversion of control from first principles
    • Your domain model is too big for RAM (and other fallacies)
    • Back to basics: simple, elegant, beautiful code
  • How may I help?
    • Let's talk strategy
    • Coffee with Andrew
    • Project rescue
  • Articles
  • On the web
    • uglybugger on GitHub
    • Andrew Harcourt on YouTube
    • uglybugger on Twitter
    • uglybugger on SlideShare
    • uglybugg3r on Instagram
    • Andrew Harcourt on LinkedIn
    • Ivory Digital

Articles

2020

If a process has a name, it’s an entity

On the granularity of events

2019

The cat sat on the mat.

Assert. Act. Announce.

The essence of agility

2017

Introducing Stack Mechanics

2016

Command-line Add-BindingRedirect

ConfigInjector 2.2 released

Introducing NotDeadYet

Sensitive setting support in ConfigInjector

Talk video: Back to basics: simple, elegant, beautiful code

2015

What’s new in ConfigInjector 2.0

Building Tweets from the Vault: Twitter OAuth

Building Tweets from the Vault: NancyFX tips and tricks

Building Tweets from the Vault: yet another Bootstrap site?

Building Tweets from the Vault: Azure, TeamCity and Octopus

Building Tweets from the Vault: Minimum Viable Product

Tweets from the Vault

2014

Am I interviewing you? Here’s what I’m going to ask.

Brisbane Azure User Group talk on Azure Service Bus Made Easy

Support for long-running handlers in Nimbus

The Readify Firehose: An aggregated feed of a bunch of random Readifarians

Your domain model is too big for RAM

Stopping a Visual Studio build on first error

ConfigInjector now supports static loading of settings

Request and response with Nimbus

Eventing with Nimbus

Command handling with Nimbus

Handler interface changes in Nimbus 1.1

Nimbus: What is it and why should I care?

RSS as a primary source of truth

2013

Introducing ConfigInjector

Happiness is a legitimate goal

Quick demonstration of continuous delivery

The story so far: a fairy tale…

Two-day workshop: Making Legacy Applications Awesome

We tried agile and it didn’t work

2012

Inversion of control from first principles: Top Gear style

Vote for my DDD Brisbane talk: Inversion of Control from First Principles: Top Gear Style

In software, the iron triangle is a lie

What risks are you taking with your business?

Introducing YACLP: Yet Another Command-Line Parser

On the Principle of Least Privilege

If your DBA makes your schema changes, you’re doing it wrong

Applications need to own their own data

2011

The Book of Process

Farewell, Steve

The Forgotten Convention-Based Test Harness

iPhone/MonoTouch unit testing with Team Foundation Server

An iPhone Eye for the C# Guy at DDD Brisbane

Cargo Cult Software

Why merely “very good” employees don’t get promoted

Fix what you know is broken

2010

If you’re so smart, why does all your code look simple?

Generic solution for testing flag enums in C#

2009

On corporate blogging: corporate culture and personal ethics

Worth Reading: Automate, else Enforce otherwise Path of Least Resistance

Automatically rejecting appointments in Microsoft Outlook 2007

Memory leak detector for Internet Explorer

console.log() equivalent for Internet Explorer

#if DEBUG Considered Harmful

Brisbane Alt.Net User Group Launched

2008

Braces in string.Format()

Code Snippet for .NET Provider

The Value of Check-In Policies

JavaScript Code Re-Use in Microsoft CRM

Writing Good Unit Tests

Code Snippet for WPF Routed Event

Windows Communication Foundation Introduction

Using DBML/LINQ to Generate WCF DataContracts

WPF Context Menu Doesn’t Display on First Load

Work

I'm at Octopus Deploy, helping to ship software that helps people ship software. Other interesting places I've been before Octopus include ThoughtWorks, Readify, Zap BI, Realex Payments and TRL.

I'm also a co-founder at Stack Mechanics, one of the organisers of the DDD Brisbane conference and, in my spare time (ha!), I also run my own photography business, Ivory Digital.

I'm a fan of high-quality code, domain-driven design, event-driven architecture, continuous delivery and, most importantly, shipping code that works and that solves people's problems.

I have a number of small open-source creations, including Nimbus, ConfigInjector and NotDeadYet, and am an occasional contributor to several more.

I'm a regular speaker and presenter at conferences and training events. My mother wrote COBOL on punch cards and I've been coding in one form or another since I was five years old.

Play

Cyclist. Photographer. Ballroom dancer. Motorcyclist. Occasional sailor. Lapsed fencer.

Subscribe

Twitter

Follow @uglybugger
Tweets by @uglybugger