Writing a Kubernetes CRD Controller in Rust

August 7, 2019

In this post, we'll define a Kubernetes Custom Resource Definition (CRD) and then write a controller (or operator) to manage it -- all in 60 lines of Rust code.

Over the last several months, I have been writing more and more Kubernetes-specific code in Rust. Even though Kubernetes itself was written...

The TRUE hardest programming problem is tight vs. weak coupling

August 19, 2018

A few months ago, I claimed that naming is the hardest programming problem. I was wrong. The true hardest problem is one that impacts every developer at every skill level, across all programming languages, regardless of experience. It appears on multiple levels, from language details to large scale...

From Go To Rust - Advanced Testing

July 25, 2018

For the fifth installment of this series, we'll take a look at benchmarking, documentation testing, and integration testing. As usual, we'll start with an example in Go and see how it translates to Rust. Along the way, we'll be learning about the Rust language.

If you want to catch up on the series...

Using Azure Static Websites

July 21, 2018

Over the years I've chronicled the technical changes to this blog and its hosting provider. Years ago, I moved it from Drupal to Middleman to cut down on the maintenance. Later I containerized my Ruby environment to get rid of RVM madness

For a fun weekend project, I moved from S3 to the brand new...

From Go to Rust - Unit Testing

July 7, 2018

In this fourth installment of the series, we'll transform some Go tests into Rust tests.

In case you missed anything:

  • In the first part of this series, we looked at some fundamentals of Rust, and how they compare to Go.
  • In the second part we took a Go web server and reimplemented it in Rust.
  • The...

Be Nice And Write Stable Code

July 4, 2018

Stop rearchitecting your code! The professional developer values stability over "code purity." Instead of pursuing a Shangra-La vision of code perfection with each and every release, just be nice and write stable APIs. In this post, I talk about taking practical steps toward writing code that remains...

From Go to Rust - JSON and YAML

June 12, 2018

One of Go's big selling points for me was its novel approach to JSON encoding. Learning about Rust's encoding has made me even more excited. In this post, we'll start with Go's JSON encoder, and then see how Rust does encoding. And we'll even through in some YAML!

In the first in this series, we...

From Go to Rust with an HTTP Server

June 4, 2018

One of the staples of the system developer's toolbox is building web applications. These days, we might even say it's building HTTP-based API servers.

In The Go Developer's Quickstart Guide to Rust I showed how a Go developer can get a foothold in the Rust world. This time, I'll start with a Go HTTP...

The Go Developer's Quickstart Guide to Rust

May 27, 2018

You've been writing Go. But you're feeling an urge to test the waters with Rust. This is a guide to make this switch easy.

Most Loved Languages

As the co-author of Go in Practice, I have felt a certain obligation to Go. But I'm ready for a change. Rust topped the satisfaction survey in Stack Overflow's survey of languages...

Don't Kill the Competition

May 8, 2018

Or, why competition is good, and how to keep it from going bad

We rarely work in a vacuum. Whether building things or providing services, there's another team out there that's doing something similar. And this team threatens to capture some of our territory or prevent us from achieving a goal. Naturally...