2025  3

July  1

TLM: It’s a Trap (And I’m Still in It)

July 7, 2025

June  1

The Path to Staff Engineer and Beyond: Staying on the IC Train

June 12, 2025

May  1

Zero Trust for Mac Admins at MacAD.UK

May 14, 2025

2024  1

May  1

Investigating unpatched CVEs with osquery and SOFA

May 3, 2024

2023  4

October  1

Zero Trust is not Zero Effort: Planning your Zero Trust strategy at MacSysAdmin 2023

October 6, 2023

June  1

The risks of relying on Generative AI when writing scripts

June 27, 2023

May  1

Gone Phishing: Airbnb’s Journey to phishing resistant MFA at MacAD.UK 2023

May 31, 2023

February  1

What’s nagging you? Getting to the bottom of Managed Login Items

February 8, 2023

2021  4

December  1

The Accomplishment Spreadsheet

December 7, 2021

October  1

A pragmatic approach to endpoint security at MacSysAdmin

October 11, 2021

September  1

Movember 2021

September 23, 2021

January  1

A pragmatic approach to endpoint security

January 14, 2021

2020  7

November  1

Installing Rosetta 2 on Apple Silicon Macs

November 13, 2020

September  1

Apple Silicon in Enterprise

September 21, 2020

August  1

Making friends with your security team

August 26, 2020

July  1

Managing macOS Profiles with Configuration Management in 2020

July 16, 2020

June  1

Go for endpoint management

June 1, 2020

May  1

My Perfect VS Code Setup

May 28, 2020

January  1

Restricting access to the Crypt GUI in AWS

January 13, 2020

2019  5

December  1

Introducing MDMDirector

December 19, 2019

November  1

Here’s the deal

November 27, 2019

September  1

Imaging is dead (RIP Imagr)

September 20, 2019

March  2

MacAD.UK 2019 Resources

March 27, 2019

MacAD.UK 2019

March 4, 2019

2018  6

November  1

Movember

November 1, 2018

October  1

Deploying a Munki repo in five minutes with Terraform

October 31, 2018

August  1

Optimizing Postgres for Sal

August 29, 2018

May  1

Conference Talks (Summer 2018 Edition)

May 7, 2018

March  1

Google Chrome update notifications with Yo

March 14, 2018

February  1

MacAD.UK 2018: Curing operating system blindness

February 21, 2018

2017  11

December  1

Custom DEP Packages

December 20, 2017

September  2

Enabling Kernel Extensions in High Sierra

September 11, 2017

Open sourcing Airbnb’s Puppet module for Munki

September 6, 2017

June  2

High Sierra and my open source tools

June 7, 2017

MacDevOps YVR

June 6, 2017

April  2

Using Python in Puppet Facts

April 21, 2017

Using Caddy to HTTPS all the things

April 4, 2017

March  1

Loading LaunchAgents as root

March 25, 2017

February  1

Something something commercial, something something opensource

February 8, 2017

January  2

Pocket Mac admin’s guide to London

January 19, 2017

Imagr with target disk mode

January 11, 2017

2016  19

December  3

Enable SIP with Munki

December 15, 2016

Sal: an overview

December 7, 2016

Sal 3.0

December 6, 2016

November  1

MacAD.UK 2017

November 4, 2016

October  1

0 to Imagr-ing in 45 minutes

October 6, 2016

September  1

Return of the Yo notifications

September 5, 2016

August  2

More notifications with Yo: The Yo Strikes Back

August 29, 2016

Nicer notifications with Yo

August 23, 2016

June  2

Hands on with Imagr at MacDevOps:YVR

June 21, 2016

Imagr 1.1.1

June 1, 2016

May  2

Conference Season 2016

May 11, 2016

Getting started as a Mac admin

May 5, 2016

March  1

Managing OS X Profiles with Puppet

March 30, 2016

February  1

MacAD.UK 2016: Puppet on OS X

February 10, 2016

January  5

Dynamic first boot scripts with Imagr and Flask: Part 4

January 20, 2016

Imagr 1.0.0 Released

January 14, 2016

Dynamic first boot scripts with Imagr and Flask: Part 3

January 13, 2016

Dynamic first boot scripts with Imagr and Flask: Part 2

January 7, 2016

Dynamic first boot scripts with Imagr and Flask

January 5, 2016

2015  24

December  4

Imagr 0.0.5

December 15, 2015

Automated timed releases with Munki

December 13, 2015

Crypt 2 Alpha Release

December 3, 2015

Redirecting Munki Downloads

December 1, 2015

November  2

Releasing Changes With Sharding

November 23, 2015

MacTech 2015: Hands on with Imagr

November 12, 2015

October  1

Detecting when a Munki client is on the corporate network

October 15, 2015

September  1

Upgrading OS X using a package

September 28, 2015

August  1

Using a proxy container with Docker for virtualhosts

August 26, 2015

July  4

Mac Admin & Developer Conference UK

July 21, 2015

Running Puppet Server in Docker Part 3: Hiera

July 18, 2015

Using the Sal API

July 10, 2015

Munki DND

July 7, 2015

June  4

The future of Sal

June 26, 2015

Running Puppet Server in Docker Part 2: r10k

June 24, 2015

Running Puppet Server in Docker

June 22, 2015

Using munki-trello with Git

June 16, 2015

May  1

Introducing Imagr

May 8, 2015

April  4

Testing BSDPy in Vagrant

April 28, 2015

Getting started with BSDPy on Docker

April 22, 2015

More fun with AutoNBI

April 13, 2015

Building custom NetInstalls with AutoNBI

April 12, 2015

February  1

Managing Munki catalogs with Trello

February 11, 2015

January  1

Migrating scriptRunner to Outset

January 4, 2015

2014  17

December  1

Creating Business Units and Groups in Sal using a CSV

December 8, 2014

November  1

Slides and notes from Twisting Munki

November 6, 2014

October  1

first-boot-pkg updated for Yosemite

October 21, 2014

August  1

London Apple Admins

August 24, 2014

July  4

Personal Automation: Munki (Part 2)

July 27, 2014

Personal Automation (Part 1)

July 26, 2014

Automate yourself out of a job

July 10, 2014

Multi tenanted Munki with Puppet and Sal

July 9, 2014

June  1

Making packages with AutoPkg

June 30, 2014

May  1

Deploying Sal on Heroku

May 19, 2014

April  3

first-boot-pkg

April 21, 2014

Updating Boxen

April 4, 2014

Binding to Active Directory with Munki

April 1, 2014

February  2

Writing Plugins for Sal: Part 3

February 17, 2014

Writing Plugins for Sal: Part 2

February 7, 2014

January  2

Writing plugins for Sal: Part 1

January 26, 2014

Sal: The Munki Puppet

January 17, 2014

2013  22

December  1

Managing the Authorization Database with Munki

December 22, 2013

November  2

Crypt 0.5 released

November 19, 2013

AFP548 Podcast Episode 4: Don’t Stab Yourself in the Leg, Then

November 13, 2013

October  2

Setting a desktop picture in Mavericks

October 28, 2013

ZNC: An IRC Bouncer

October 13, 2013

August  3

Creating an OS X base box for Vagrant with Packer

August 23, 2013

The Luggage: Further automation

August 19, 2013

The Luggage: An Introduction

August 9, 2013

July  1

Using crankd to react to network events

July 12, 2013

May  1

Managing Macs with Puppet at PSU 2013

May 24, 2013

April  2

One bootstrap package to rule them all

April 7, 2013

Facter 101

April 2, 2013

March  1

Getting Started With Puppet on OS X (Part 4)

March 5, 2013

February  2

Getting Started With Puppet on OS X (Part 3)

February 24, 2013

Building a test Puppet Master with Vagrant

February 13, 2013

January  7

Getting started with Puppet on OS X (part 2)

January 27, 2013

Getting started with Puppet on OS X (part 1)

January 25, 2013

Crypt: A FileVault 2 escrow solution

January 18, 2013

Casper Vs Munki

January 13, 2013

Updating InstaDMG based NetRestore images

January 7, 2013

InstaDMG Tips

January 5, 2013

MacScripts

January 1, 2013

2012  15

December  2

Casper versus DeployStudio

December 15, 2012

MacNamer

December 12, 2012

November  1

Meraki Systems Manager

November 12, 2012

September  1

Five reasons sysadmins should use Git

September 21, 2012

August  1

Location based printers with Puppet

August 18, 2012

July  2

Making a Mountain Lion Recovery HD

July 28, 2012

Google Directory?

July 1, 2012

May  1

Run munki at boot

May 7, 2012

April  3

Headless VirtualBox

April 21, 2012

Profile Manager Enrollment Package

April 6, 2012

Hello Octopress

April 3, 2012

March  1

The agony and ecstasy of 100meg broadband

March 24, 2012

February  2

Making a Lion Recovery HD revisited

February 23, 2012

Making a Lion Recovery HD

February 1, 2012

January  1

Web server on Linode part 1

January 1, 2012

2011  3

December  1

Thoughts on Profile Manager

December 10, 2011

November  2

Backing up Postres in Lion Server

November 29, 2011

Kerio Connect vs Web Services in Lion Server

November 22, 2011