feature image
Karl Matthias bio photo

Karl Matthias

VP of Architecture at Community.com. Co-Author of "Docker: Up and Running" from O'Reilly Media. Dublin, Ireland.

Mastodon

Twitter

Github

View all articles

Latest Articles


Run Your Own Kubernetes Instance with Microk8s

This post covers how to get a personal Kubernetes (K8s) cluster running on an instance with a public IP address, with HTTPS support, on the chea...

Events, Event Sourcing, and the Path Forward

Distributed systems pose all kinds of challenges. And we’ve built them in the web age, when the tech of the wider Internet is what we use in micr...

Coordination-free Database Query Sharding with PostgreSQL

Follow other posts by At Community.com, we had a problem where a bunch of workers needed to pick up and process a large amount of data from the ...

Writing Apache Spark UDFs in Go

Follow other posts by Apache Spark is a perfect fit for processing large amounts of data. It’s not,  however, a perfect fit for our language sta...

Hello World on the W65C265 (65816) from macOS

I have been lucky enough to be healthy so far and have been using lockdown time to get back into electronics and microcontrollers, a hobby that i...

The Kernel Change That May Be Slowing Down Your App

A kernel “bug fix” that happened at the end of last year may be killing the performance of your Kubernetes- or Mesos-hosted applications. Here’s ho...

Dynamic Nginx Router... in Go!

We needed a specialized load balancer at Nitro. After some study, Mihai Todor and I built a solution that leverages Nginx, the Redis protocol, an...

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...