Kubernetes as a Universal Infrastructure API

Recently the Kubernetes (k8s) Cluster Lifecycle Special Interest Group (SIG) release their first Alpha of their Cluster API. What does this thing do? It is kinda like a k8s operator (it’s a controller)Ā that has custom resource definitions for things to launch anotherĀ k8s cluster, with a bunch of cloudĀ providers. It is kinda like if Terraform was re-imagined as a k8s operator, but only for launching other k8s clusters, and not general purpose.


epaper-watch: Cleaning the Literary Quotes Database

paper-watch intro My epaper-watch is an attempt to build a watch with an epaper display. It tells time by displaying a quote from a book: (don’t mind the graphical glitches) The dataset with all the quotes needs some data cleaning love though. Cleaning The Dataset The CSV has over 1,400 quotes in it. For every minute, there may be multiple quotes (“Midnight” has 26 unique quotes). Some minutes of the day do not have any quotes.


Build Versus Buy: You Are Always Building, Always Buying

TL;DR: “Build-vs-Buy” is a false dichotomy, you are always building, always buying “This is not your ‘Core Competency’” is a faux trump-card, everything is a spectrum Past experience is overrated, what matters for hiring is your ability to learn Understanding The Trade-Off Fully understanding the build-versus-buy trade-off requires a bunch of different context to really get right. At first glance you might think that you only need to really understand:


Configuration as Code - Is It That Good of an Idea?

Kyle’s Conclusions: If possible, make your users not care about the intermediate form “Code as Configuration” is not worth it YAML isn’t so bad if you can be strict A Brief History of Configuration as Code Configuration as Code is not new. There are a few subtle distinctions that are worth pointing out: Thing Historic Example Modern Example Config as Config Apache2 (.



I recently gave a talk called “Layers” (~35min). Warning: The audio and video quality are horrendous:

Being a Great Engineering Mentor

Here are some thoughts how I think about being a great engineering mentor. To me the most important thing is remembering “who to be”, and not as much as “how to act”. You won’t remember how to act. You can look up all the listicles you want on tips on what to do as a mentor, but if you can just “be” the right person, the choices you make and the things you say might just come naturally.


Sutro Tower Vinyl Art

I recently finished a project to make a vinyl mural of Sutro tower: The “source code” of this project is on github and is in the public domain.

The Evolution of Distributed Systems Management

Let’s survey the past and present of how we manage distributed systems, and then maybe try to predict the future. For this survey I’ll look at a few open-source technologies to give concrete examples (in Kardashev style. Type 0: Manually Deployed and Configured Type 1: Host-Centric Configuration Management Type 2A: Infrastructure-scoped Orchestration Tooling Type 2B: Application-specific Orchestration Tooling Type 3: Compute-Platform-Native Application-Specific Frameworks Type 3A: Mesos Frameworks Type 3B: Kubernetes (k8s) Operators Type 4: Hybrid?


Adding Electric Motors to a Gemini 105m

I recently added a pair of electric motors to my Gemini 105m catamaran. Haul out Although I don’t have any photos of the actual installation, here is what they look like: motors wake These are a pair of Caroutte S400’s. In theory they have a thrust of 180lbs each and a peak power consumption of 2.7kw each. Although it cannot be directly compared, the onboard diesel is a 20kw (27 Horsepower) engine.