feature image
Karl Matthias bio photo

Karl Matthias

Principal Systems Engineer at Nitro. Co-Author of "Docker: Up and Running" from O'Reilly Media. Dublin, Ireland.

Twitter

Google+

Github

View all articles

Latest Articles


Cgo: When and (Usually) When Not to Use it

Cgo is really good. If you’ve worked with C libraries in other languages, I expect you already know it’s not always much fun. But Cgo is pretty eas...

Elixir: Thoughts on the `with` Statement

Elixir has a some great syntactic sugar. A nice feature that was introduced back in Elixir 1.2 is the with statement which allows you to string t...

Sidecar: Service Discovery for all Docker Environments

Great, you have a Docker system up and running. Maybe you run stuff on your dev box in a standalone Docker instance. Maybe you are just deploying...

Building Tiny, Reliable Docker Container Images

Building good, clean Docker container images is a bit of an art, and there is a lot of conflicting advice out there about how to do them properly. ...

Continue statements with Labels in Go (golang)

Flow control of nested loops can be a pain. And because Go uses for loops in great abundance, you hit this problem more often than in some other la...

Writing Testable Code in Go (golang)

If you are coming from Ruby or another dynamic language you are used to mocking and stubbing extensively for testing. This works fabulously well in...

MessagePack vs JSON in Ruby

MessagePack (shorthand: msgpack) gives us a big performance boost when serializing data to our data store. JSON is the reigning champ for data seri...

Cassandra vs MongoDB For Time Series Data

This is how we got a big win by switching from MongoDB to Cassandra for managing our time series data. Background MyDrive has an AWS cloud-host...

A Pattern for Wrapping C Function Calls in Rust

In my recent project, I found an idiom that seems pretty useful for instantiating new objects that wrap the functionality of an external C function...

A Week with Mozilla's Rust

I want another systems language in my tool belt. I want a language where I can be much more productive than in C: one in which I do not fear the co...