Feb 13, 20227 Principles for Engineering Team SuccessHow can you influence successful software engineering teams to think, behave, and reason about decisions? One tool I like to use is developing a set of principles, which encourages autonomy among teams. Define:principle — noun · “a fundamental truth or proposition that serves as the foundation for a system of belief…Software Engineering4 min readSoftware Engineering4 min read
Feb 13, 2021How to test a system (in isolation) which needs to `git clone`Today I was trying to create a pipeline-as-code using Kotlin and TeamCity. I’m a huge fan of fast Feedback Loops, so my first thought was: how can I test these changes faster. And my second thought was: how can I eventually automate testing these changes. In particular, when experimenting with…Software Engineering3 min readSoftware Engineering3 min read
Feb 13, 2021Forget the 10x Developer, find people who optimise their Feedback LoopsIf you haven’t heard the hype, search “10x Developer” or “10x Engineer” and you’ll find something like: “an engineer who’s 10 times better at their job than their peers” You may also come across a 1968 paper, or a recent thread of tweets on the topic. This article isn’t going…Software Engineering3 min readSoftware Engineering3 min read
Published inHumans of Xero·Apr 16, 2020Member-onlyYou don’t need to stop shipping features to fix technical debt(This post is also published as presentation: video here / slides here) If you’ve ever worked at a high-growth software engineering company, you might have heard a conversation about technical debt that goes like this: Person A: “We could release so much faster if we just did X…” Person B: “That…Technical Debt12 min readTechnical Debt12 min read
May 28, 2018Resources for learning GoThere’s a lot of great content out there for learning Go — so much, in fact, that I often get asked for a list of resources people should look at. …Go3 min readGo3 min read
May 28, 2018Installing Go for first-time programmers on a MacIf you’re interested in learning the Go programming language, this guide will walk you through how to set up a brand new Mac step-by-step, with all the tools you’ll need to write and run Go programs. In this guide will cover how to: Download & Install Go; the programming language…Golang9 min readGolang9 min read
May 27, 2018Essential, production-ready Go packagesGo has an amazing standard library; building web servers and working with JSON doesn’t require any 3rd-party code — but for complex applications, you’ll find yourself exploring 3rd-party packages. …Golang3 min readGolang3 min read
Dec 13, 2017Let a Docker container spin & stop tooHave you ever wanted to keep a Docker container running after it finishes running a script? e.g. if your container exits once your script finishes it will result in rolling restarts (which probably sends you a bunch of alerts — yay!). Well, good person, I have some shell script magic…Docker3 min readDocker3 min read
Jun 25, 2017Linux & Salt on a ChromebookI’ve always wondered if I could turn a Chromebook into a full-time development machine, so I recently started tinkering with Crouton to get a Linux CLI running. Crouton creates a chroot environment and installs a distribution such as Debian or Ubuntu. It even let’s you run a full X server…Software Development4 min readSoftware Development4 min read
Apr 4, 2016Chrome OS, Google Cloud Print, Chrome Remote Desktop and a (headless) Mac MiniRecently I migrated a network of Mac Mini’s to Chrome OS, running on ASUS Chromebox Celeron 2955U’s (a Chromebox is the desktop version of the Chromebook). The setup works great since users rely on Google Apps/Drive and various SaaS products for operating their business. …Chrome OS4 min readChrome OS4 min read