urjit.io

10 Jan 2022

Thoughts about time - part one

Not all clocks are equal Talk about working with “time” with software engineers and you’re pretty much guaranteed someone is going to post a meme. I was recently talking with a co-worker about managing “simulated time” for a project and we ended up discussing why handling time is so complicated.
26 Jun 2021

HAProxy - a tale of two queues

A tale of two queues In 2020 many services saw a drastic spike in their traffic. We saw almost 5-8x sustained higher traffic than our previous max traffic peaks. This lead to our HAProxy instances struggling to keep up.
10 Aug 2020

Scaling RabbitMQ with shared exchanges

Sharded exchanges can be enabled by using the a plugin with rabbitmq. It is useful for distributing load across multiple queue for the same routing keys.

Using sharded exchanges, you can shard messages across the cluster so that a single node doesn’t become overwhelmed.

16 Jan 2018

Good old bash for startup dependency management

A simple and clean way to wait for dependencies to be available in Unix*y environments. I often use this script to orchestrate my docker containers.
10 Dec 2017

A fun integer overflow bug investigation

Sometimes we run into weird bugs or buggish situations that are frustrating but are actually fun to solve. I ran into a similar problem recently. A good old NumberFormatException in the open-source analytics dashboard service: Metabase.

We use Metabase to create product metric dashboards. Recently, they allowed caching long running queries and it allows you to set the max entry size as a MAX CACHE ENTRY SIZE setting in kilobytes. This is where the fun starts!