-
posts
-
Python Servers in the Year of the Snake: 2025
This year is the year of the snake in the Chinese
Zodiac. Every 12th year is a
bit of a special year for the Python community in Asia. For example in 2013, in
the last year of the Snake, the theme for the PyCon JP conference was “The
Year of Pyt...
-
2025 New Year’s Resolutions
Berryman Political Cartoon Collection, Public Domain
Now that 2024 is over I’ve been thinking about what kind of year I would like
2025 to be. The last few years since the start of the COVID-19 pandemic have
been challenging in a lot of ways. I ...
-
Leaving Google
Today is my last day as a Google employee. After nearly 10 years working on the
Google Cloud Developer Relations team, I’ve decided to step away and pursue
other challenges.
Before Google
Joining Google in January 2015 seemed like a natural care...
-
Understanding GitHub Artifact Attestations
GitHub recently introduced Artifact
Attestations,
a beta feature that enhances the security of Open Source software supply
chains. By linking artifacts to their source code repositories and GitHub
Actions, it ensures that artifacts are not built w...
-
Code Signing is not Enough
Code signing is often used as a method for ensuring that software artifacts
like binaries, drivers, and software packages haven’t been modified by a third
party before they are used. Many folks may be familiar with packages that were
gpg signed an...
-
Four Tips for Writing Better Go APIs
Go is a really powerful programming language that allows you to write concurrent code that is still easy to understand. But designing APIs can be hard, even for seasoned Go programmers. When designing APIs for libraries and applications in Go it’s...
-
Container Runtimes Part 4: Kubernetes Container Runtimes & CRI
This is the fourth and last part in a four part series on container runtimes.
It’s been a while since
part 1,
but in that post I gave an overview of container runtimes and discussed the
differences between low-level and high-level runtimes. In
par...
-
Container Runtimes Part 3: High-Level Runtimes
This is the third part in a four-part series on container runtimes. It’s been a while since part 1, but in that post I gave an overview of container runtimes and discussed the differences between low-level and high-level runtimes. In part 2 I went...
-
Container Runtimes Part 2: Anatomy of a Low-Level Container Runtime
This is the second in a four-part series on container runtimes. In part 1, I gave an overview of container runtimes and discussed the differences between low-level and high-level runtimes. In this post I will go into detail on low-level container ...
-
Container Runtimes Part 1: An Introduction to Container Runtimes
One of the terms you hear a lot when dealing with containers is “container runtime”. “Container runtime” can have different meanings to different people so it’s no wonder that it’s such a confusing and vaguely understood term, even within the cont...