Does Crossplane Replace Terraform? Part I: the Theory

What is Crossplane? If you don’t already know, Crossplane is billed as an: Open source, CNCF project built on the foundation of Kubernetes to orchestrate anything. Encapsulate policies, permissions, and other guardrails behind a custom API line to enable your customers to self-se … | Continue reading


@zwischenzugs.com | 8 months ago

In Praise of Low Tech DevEx

When I started my career as an engineer in the early noughties, I was very keen on developer experience (devex). So when I joined a company whose chosen language was TCL (no, really), I decided to ask the engineering mailing list what IDEs they used. Surely the senior engineers, … | Continue reading


@zwischenzugs.com | 8 months ago

At 50 Years Old, Is SQL Becoming a Niche Skill?

This post was originally triggered – and I choose that word carefully – by a recent experience on a cloud cost-optimisation project. These experiences prompted me to consider how things had changed since I started working in software. As part of the project that provoked me, I wa … | Continue reading


@zwischenzugs.com | 8 months ago

OK Cloud, On-Prem is Alright

As someone who has worked in software since 2001, and in the Cloud Native (containerisation and Kubernetes) space since 2013, I’m getting old enough to have seen trends come and go a few times. VMs came (and stayed), continuous integration went from a fad talked about by gurus to … | Continue reading


@zwischenzugs.com | 8 months ago

What I Learned Using Private LLMs to Write an Undergraduate History Essay

TL;DR I used private and public LLMs to answer an undergraduate essay question I spent a week working on nearly 30 years ago, in an effort to see how the experience would have changed in that time. There were two rules: The experience turned out to be radically different with AI … | Continue reading


@zwischenzugs.com | 1 year ago

Learn jq the Hard Way,Part IV: Pipes

Other Posts Pipes The pipe is the next-most used feature of jq after filters. If you are already familiar with pipes in the shell, it’s a very similar concept. How Important is this Post? Pipes are fundamental to using jq, so this section is essential to understand. We will cover … | Continue reading


@zwischenzugs.com | 1 year ago

Learn jq the Hard Way,Part III: Filters

Other Posts Other Posts Simple Filters In this section we introduce the most-frequently used feature of jq: the filter. Filters allow you to reduce a given stream of JSON to another smaller, more refined stream of JSON that you can then do more filtering or processing on on if yo … | Continue reading


@zwischenzugs.com | 1 year ago

Learn jq the Hard Way, Part II: The jq Command

Other Posts jq This section introduces you to the jq command, starting with the simplest possible commands as well as a brief look at the most commonly-used flags. What Is jq? jq is a program for parsing, querying, and manipulating JSON. More broadly, it’s a filter: it takes inpu … | Continue reading


@zwischenzugs.com | 1 year ago

Learn jq the Hard Way, Part I: JSON

Other Posts Introduction This jq series has been written to help users to get to a deeper understanding and proficiency in jq. It doesn’t aim to make you an expert immediately, but you will be more confident about using it and building your knowledge up from that secure base. You … | Continue reading


@zwischenzugs.com | 1 year ago

Monoliths, Microservervices and Mainframes – Reflections on Amazon Prime Video’s Monolith Move

Recently an Amazon Prime Video (APV) article about their move from serverless tools to ECS and EC2 did the rounds on all the tech socials. A lot of noise was made about it, initially because it was interpreted as a harbinger of the death of serverless technologies, followed by a … | Continue reading


@zwischenzugs.com | 1 year ago

Is it Imperative to be Declarative?

Recently, in Container Solutions’ engineering Slack channel, a heated argument ensued amongst our engineers after a Pulumi-related story was posted. I won’t recount the hundreds of posts in the thread, but the first response was “I still don’t know why we still use Terraform”, fo … | Continue reading


@zwischenzugs.com | 1 year ago

The Biggest Cloud Native Strategy Mistake

Business strategy is very easy to get wrong. You’re trying to make sure your resources and assets are efficiently deployed and focussed on your end goal, and that’s hard. There’s no magic bullet that can help you both get the right strategy defined, and then successfully deliver … | Continue reading


@zwischenzugs.com | 1 year ago

Practical Strategies for Implementing DevSecOps in Large Enterprises

This article was originally published on Container Solutions’ blog and is reproduced here by permission. At Container Solutions, we often work with large enterprises who are at various different stages of adopting cloud technologies. These companies are typically keen to adopt mo … | Continue reading


@zwischenzugs.com | 1 year ago

A Little Shell Rabbit Hole

Occasionally I run dumb stuff in the terminal. Sometimes something unexpected happens and it leads me to wonder ‘how the hell did that work?’ This article is about one of those times and how looking into something like that taught me a few new things about shells. After decades u … | Continue reading


@zwischenzugs.com | 2 years ago

“Who Should Write the Terraform?”

The Problem Working in Cloud Native consulting, I’m often asked about who should do various bits of ‘the platform work‘. I’m asked this in various forms, and at various levels, but the title’s question (‘Who should write the Terraform?) is a fairly typical one. Consultants are of … | Continue reading


@zwischenzugs.com | 2 years ago

Business Value, Soccer Canteens, Engineer Retention, and the Bricklayer Fallacy

Having the privilege of working in software in the 2020s, I hear variations on the following ideas expressed frequently: ‘There must be some direct relationship between your work and customer value!’ ‘The results of your actions must be measurable!’ These ideas manifest in statem … | Continue reading


@zwischenzugs.com | 2 years ago

Five Reasons To Master Git On The Command Line

If you spend most of your days in a browser watching pipelines and managing pull requests, you may wonder why anyone would prefer the command line to manage their Git workflow. I’m here to persuade you that using the command line is better for you. It’s not easier in every case y … | Continue reading


@zwischenzugs.com | 2 years ago

How 3D Printing Kindled A Love For Baroque Sculpture

I originally got a 3D printer in order to indulge a love of architecture. A year ago I wrote about my baby steps with my printer, and after that got busy printing off whatever buildings I could find. After a few underwhelming prints of whatever buildings I could find, I stumbled … | Continue reading


@zwischenzugs.com | 3 years ago

grep Flags – The Good Stuff

While writing a post on practical shell patterns I had a couple of patterns that used grep commands. I had to drop those patterns from the post, though, because as soon as I thought about them I go… | Continue reading


@zwischenzugs.com | 3 years ago

Why It’s Great To Be A Consultant

I spent 20 years slaving away at companies doing development, maintenance, troubleshooting, architecture, management, and whatever else needed doing. For all those years I was a permanent hire, wor… | Continue reading


@zwischenzugs.com | 3 years ago

Practical Shell Patterns I Actually Use

Over the decades I’ve been using the shell, there are thousands of reusable patterns I’ve picked up from looking over others’ shoulders and googling. Unfortunately, I’ve for… | Continue reading


@zwischenzugs.com | 3 years ago

Why I Keep Coming Back to Cynefin

Working as a consultant in helping clients to change the way they work, I often struggle to explain to them how the way they usually attack problems is not always appropriate to the situation they&… | Continue reading


@zwischenzugs.com | 3 years ago

Is Agility Related to Commitment? – Money Flows Part II

Previously, I wrote about how software companies cultural challenges can be traced back to how money flows through it, using the example of an ‘accidental product’ B2B type of business … | Continue reading


@zwischenzugs.com | 3 years ago

Five Ansible Techniques I Wish I’d Known Earlier

If you’ve ever spent ages waiting for an Ansible playbook to get through a bunch of tasks so yours can be tested, then this article is for you. Ansible can be pretty tedious to debug and obsc… | Continue reading


@zwischenzugs.com | 3 years ago

A ‘Hello World’ GitOps Example Walkthrough

Intro This post walks through a ‘hello world’ GitOps example I use to demonstrate key GitOps principles. If you’re not aware, GitOps is a term coined in 2017 to encapsulate certai… | Continue reading


@zwischenzugs.com | 3 years ago

(and Why) I Run My Own DNS Servers (2018)

Introduction Despite my woeful knowledge of networking, I run my own DNS servers on my own websites run from home. I achieved this through trial and error and now it requires almost zero maintenanc… | Continue reading


@zwischenzugs.com | 3 years ago

If You Want to Transform IT, Start with Finance

tl;dr – ‘Money Flows Rule Everything Around Me’ When talking about IT transformation, we often we often talk about ‘culture’ being the problem in making change, but wh… | Continue reading


@zwischenzugs.com | 3 years ago

How to Waste Hundreds of Millions on Your IT Transformation

You’re a few years into your tenure as CEO of a Vandelay Industries, a behemoth in the Transpondsting space that’s existed for many decades. The Real Strategy You could really use the s… | Continue reading


@zwischenzugs.com | 3 years ago

When Should I Interrupt Someone?

How many times have you sat there trying to work through a technical problem, and thought: Is it OK if I interrupt someone else to get them to help me?Pretty much every engineer ever Since I work w… | Continue reading


@zwischenzugs.com | 4 years ago

An Incompetent Newbie Takes Up 3D Printing

Like many self-confessed geeks, I’ve long been curious about 3d-printing. To me, it sounds like the romantic early days of home computing in the 70s, where expensive machines that easily brok… | Continue reading


@zwischenzugs.com | 4 years ago

GitOps Decisions

GitOps is the latest hotness in the software delivery space, following (and extending) on older trends such as DevOps, infrastructure as code, and CI/CD. So you’ve read up on GitOps, you̵… | Continue reading


@zwischenzugs.com | 4 years ago

Five Ways to Undo a Commit in Git

Recently, while showing someone at work a useful Git ‘trick’, I was asked “how many ways are there to undo a bad change in Git?”. This got me thinking, and I came up with a … | Continue reading


@zwischenzugs.com | 4 years ago

Create Your Own Git Diagrams – Zwischenzugs

  Ever wondered how to create your own git diagrams? You know, the ones that look like this? I’ve created a Docker image to allow you to easily create your own. $ docker pull imiell/gitd… | Continue reading


@zwischenzugs.com | 4 years ago

The Halving of the Centre: Covid and Its Effect on London Property

When I was growing up in an outer suburb of London in the 1980s, there was much talk of the decline of the city. In the future, we were told, we would all be working remotely via telescreens from o… | Continue reading


@zwischenzugs.com | 4 years ago

Why Do We Have DevRels Now?

Recently I read two books I’d recommend that got me thinking about how the IT industry has changed in the last 20 years. These books are Capitalismithout Capital. First I’ll briefly des… | Continue reading


@zwischenzugs.com | 4 years ago

The Runbooks Project

Previously, in 2017, I wrote about Things I Learned Managing Site Reliability for Some of the World’s Busiest Gambling Sites. A lot of it focussed on runbooks, or checklists, or whatever you w… | Continue reading


@zwischenzugs.com | 4 years ago

Riding the Tiger: Lessons Learned Implementing Istio

Recently I (along with a few others much smarter than me) had occasion to implement a ‘real’ production system with Istio, running on a managed cloud-provided Kubernetes service. Istio … | Continue reading


@zwischenzugs.com | 4 years ago

The Astonishing Prescience of Nam June Paik

I hadn’t heard of Nam June Paik until I went to his exhibition at Tate Modern a few weeks ago. I left feeling sheepish that I hadn’t heard of him before I went. I knew a bit about Warho… | Continue reading


@zwischenzugs.com | 5 years ago

A Non-Bullshit Book on Culture

I’ve always been frustrated that people often talk about culture without giving actionable or realistic advice, and was previously prompted by this tweet to write about what I did when put in… | Continue reading


@zwischenzugs.com | 5 years ago

Why Everyone Working in DevOps Should Read the Toyota Way

Ignore the Noise, Go to the Signal In a former life I was a history student. I wasn’t very good at it, and one of my weaknesses was an unwillingness to cut out the second-hand nonsense and re… | Continue reading


@zwischenzugs.com | 5 years ago

Surgically Busting the Docker Cache

What is ‘Busting the Cache’? If you’ve ever spent any time building Docker images, you will know that Docker caches layers as they are built, and as long as those lines don’… | Continue reading


@zwischenzugs.com | 5 years ago

Software Security Field Guide for the Bewildered

If you have worked your way in software for a number of years and you’re not a security specialist, you might be occasionally confronted by someone from ‘security’ who generally s… | Continue reading


@zwischenzugs.com | 5 years ago

The Lazy Person’s Guide to the Info Command

Most people who use Linux pretty quickly learn about man pages, and how to navigate them with their preferred pager (usually less these days). Less well known are the info pages. If you’ve ne… | Continue reading


@zwischenzugs.com | 5 years ago

A Hot Take on GitHub Actions

A couple of days ago I got access to GitHub Actions in Beta. I felt vaguely interested in it when I briefly read up on it, but now I’m like Holt geeking out on Moneyball: This is not a consid… | Continue reading


@zwischenzugs.com | 5 years ago

Bash History Shortcuts You Will Use

Intro Most guides to bash history shortcuts exhaustively list all of the shortcuts available to you. The problem I always had with that was that I would use them once, and then glaze over as I trie… | Continue reading


@zwischenzugs.com | 5 years ago

Goodbye Docker: Purging Is Such Sweet Sorrow

After 6 years, I removed Docker from all my home servers. apt purge -y docker-ce Why? This was triggered by a recurring incident I faced where the Docker daemon was using 100% CPU on multiple cores… | Continue reading


@zwischenzugs.com | 5 years ago

Seven Surprising Bash Variables

Continuing in the series of posts about lesser-known bash features, here I take you through seven variables that bash makes available that you may not have known about. 1) PROMPT_COMMAND You might … | Continue reading


@zwischenzugs.com | 5 years ago

The Missing Readline Primer

Readline is one of those technologies that is so commonly used many users don’t realise it’s there. I went looking for a good primer on it so I could understand it better, but failed to… | Continue reading


@zwischenzugs.com | 5 years ago