Things I've worked on
I'm a big fan of Go. Do you remember the slightly awkward Go programming language promo from 2009?
one where Russ Cox compiles the Go source code and times it. It got me hooked. A few months later, I
used Go to demonstrate a concurrency concept in a college paper. Before this, I wrote C for toy
and school projects — and had picked up Python for work. Go was a fresh breath of air. It had the
abstractions, felt lightweight and easy.
An open-source database client for Redis
one of the first larger
projects I worked on in Go. Redis has this fun text-based protocol. You can send a command to a
and Redis will return the contents of some data or mutate its state. The project taught me how to
performance-conscious code and how to use Go's profiling analysis tools.
I've primarily written Go professionally since 2012. As part of a gaming startup, I
wrote our performance-critical and standalone services in Go. Together with Michael, Christian, and Jacob, we grew the business to
millions of users with peaks in weekends and holidays. This reinforced my belief in simple, solid,
performant solutions. The monetization model meant we had many users and low conversion rates. I
solutions to reduce operating costs — such as scaling on commoditized hardware and building our own
content delivery system.
With Oliver and Niels, I worked for a few years on GameClub. We
focused on homogeneous solutions and automation to scale with a small team. Eli
ensured we had a back catalog of over one hundred iOS and Android titles that we updated to run on
modern iPhone and Android devices. I built network servers in Go and tooling for automation to
developing and publishing such a breadth of mobile apps.
These days I am solving problems for a small logistics
company. We have an event-sourced microservice
architecture–with NATS as a key component. A setup similar to what
might find in Kafka Streams and stateful/stateless processors — but combined with a dependency
that internally allows you to write processors that have dependencies on other processors and so on.
architecture draws inspiration from Martin Kleppmann’s thoughts on “turning the database inside-out”
the commit log becomes a core primitive that you can use to build distributed applications.
Tinkering and projects
I love to explore technologies that challenge the expectation of how we build software today. My
focus is on databases, to become better at understanding possibilities with the tools that stand at
core of most businesses today.
Other projects I have worked on
- Color system: A web app to build color systems, inspired by Lyft’s
ColorBox.io project. Implemented in Vue.js. 2019
- Chat: A prototype chat system with support for member channels and
direct messages. Implemented with NATS.io
- Redis client
database client for Redis in Go. 2011
robot: A two-wheeled autonomous self-balancing robot. 2009
My roles have involved working directly with senior executives, across multiple sectors, on product
development, launch, and growing the business from a few hundred customers to millions.