Engineering Management: Three Books and Three Videos

I declined a number of opportunities to lead a team because I knew the role demanded an enormous change from that of an engineer. I still wanted to be solving technical challenges, in a state of flow, for hours a day. Equally important, I wanted to build a team with…

Masking the Problem: Representing Complex State Without Strings

A number of factors have contributed to the widespread use of strings for representing complex information in computing. HTTP, a text-based protocol, and HTML, a text-based mark-up language, became the foundations of the Internet. JSON, which is essentially a formatted string of keys and values, became ubiquitous for HTTP APIs…

Version Too

A joke is not funny if you have to explain it, but this essay is my attempt to explain a joke: a joke that appeals to my sense of humour, but a joke that also serves an important lesson in evolving software platforms. Sounds Like Two For over a decade,…

Twitter: A Love-Hate Relationship

There is no question that modern life carries burdens incompatible with the brains we have evolved … “In a species that’s designed to live in groups of fifty to seventy, living in a group of several billion is just hard on everyone.” —Andrew Solomon quoting Randolph Nesse in “A Noonday…

The State of the Art for IoT

This article expands on my talk Reactive Systems: The State of the Art for IoT from Reactive Summit 2020. The term “Internet of Things” was coined by Kevin Ashton in 1999. After a lot of hype, we are finally seeing it come to fruition, in part due to advances in…

Kubernetes Startup Probes: Getting Your Feet Under You

Kubernetes liveness and readiness probes can be used to improve the reliability of a service. If they are not used with care, however, they can do the opposite, and degrade the reliability of a service through subtle, unintended consequences. I wrote a three-part series on how to avoid "shooting…

Love

Perhaps it has always been this way…

SARS-CoV-2 and the Future of Work

Since starting this blog over six years ago, my cadence has been to publish one article a month.[1] I enjoy long-form writing and it would be near impossible for me to publish essays more frequently. As I write this essay, the world is gripped by the SARS-CoV-2 pandemic. All…

Reflecting on Our Core Values

In an earlier article, I shared an exercise that I did with my team, an exercise to identify and share our core values. The exercise was inspired by Brené Brown's book Dare to Lead. The goal was to improve our self-awareness and, by sharing our core values with our colleagues,…

Understanding Our Core Values: An Exercise for Individuals and Teams

Last year, I read Brené Brown's book Dare to Lead. I am very fond of her book Daring Greatly. Dare to Lead covers much of the same subject matter—relationships, vulnerability, shame, being present—but I found the framing of these themes with a focus on leadership particularly valuable. The…

Shared-Nothing Architectures for Server Replication and Synchronization

I spent over a decade working on a software platform for time-series data and events that is widely used in industry. It supports a diverse set of applications—like supply-chain management, condition-based maintenance, regulatory compliance, and process monitoring, optimization, and control—in industries including manufacturing, power generation, utilities, oil and…