(content warning: blood; I have been advised to change the names of the manufacturers. If you contact me, I can provide the original names.)

The last time I went into the office was February 25th. The COVID-19 pandemic was just beginning to unfold in the United States. I had a business trip to King County, Washington (Seattle) that week. While we were in Seattle, the first cases of COVID-19 were being announced in the region. Sometime after returning home, on Saturday, we learned that the outbreak in Seattle had already claimed lives.

This whole experience worried me, and it didn’t…


On the Culture of Coffee as a Ritual

The South Bay

Two and a half years ago, I took a job in the South Bay. The South Bay has plenty of great coffee places — Cat and Cloud, Verve, and Barefoot, just to name a few. However, they’re not walking distance from where I work, nor do I have a car.

My office, like many others in Silicon Valley, has wonderful amenities. One of these amenities is a fully stocked espresso station. For nearly two and a half years, almost every day, I would proceed to make myself an Americano. 8–12 oz of…


Recently, there’s been a lot of turmoil in the systems language community. We have the Rust Evangelism Strikeforce nudging us towards rewriting everything in Rust. We have the C++17 folks who promise the safety and ease of use of modern programming languages with the performance and power of C. And then there’s a long tail of other “systems” programming languages, like Nim, Reason / OCaml, Crystal, Go, and Pony.

Personally, I’m super excited we’re seeing some interesting work in the programming language theory space. This got me excited to learn more about what’s out there. A lot of the problems…


Go has been gaining a ton of popularity as of late. I’ve been using Go for work, working on container management software. Before that, I was writing Erlang, as part of DC/OS. Golang is an incredibly useful, productive language and runtime. It’s almost entirely replaced my usage of Python, and Java. Its “systems-like” language quality makes solving a certain class of problems a breeze, where I’d normally have to resort to C++, a language which has found itself falling out of favour amongst certain circles due to its history, complexity, and lack of safety.

After writing Go in anger for…


Time is deceptively complex. Rarely do we think of it, apart from passing moments of existential crises that we encounter throughout our lives. To software developers, it is perhaps one of the most dangerous traps. In software, you have a half-dozen switches that you must flip to decide on the particular flavor of time you’d like. Depending on your decisions time may freely travel backwards, forwards, or not at all. There are entire articles on the fallacies that programmers believe about time. Even apart from a programmer’s decisions, the decisions an administrator may make influence how time works. …


In the past 20 years, Red Hat Enterprise Linux (RHEL) has become the de facto Linux distribution for servers in the enterprise, capturing more than 60% of the paid distribution market. Their position as the market leader makes them the trendsetter for how enterprise software is developed for Linux. Unfortunately, their position has hurt software developers pushing the edge with container and networking technology.

As RHEL is the market leader in the enterprise, and a multi-billion dollar institution with a growing product set, developers must treat RHEL as the lowest common denominator while building software. …


The Problem

A lot of times when a start-up starts to build out their company, they hire smart people to work on problems, and this typically works well — to a point. At some point, a group of successful entrepreneurs is going to have to hire someone outside of their field and scope of expertise.

This typically includes things like office managers, marketing, sales. In addition to this, there are other aspects, like hiring specialized engineers — like systems administrators, network engineers, and backend engineers. At some point, these scopes become specialized enough, and critical enough that, realistically, the contingent of interviewers…


Recently, an internet friend and I were talking about QUIC, Google’s new protocol to replace TCP as an underlying transport for the internet. QUIC itself runs over UDP/80. Given traditional experiences with protocols over UDP, Carrollr protested:

< carrollr> Sargun: How does QUIC avoid a) spoofing of source, b) overloading congested links on the path

It turns out, the latter is still in flux, but Google has taken interesting approach to the earlier problem, and there’s a lot we can learn from it.

On UDP

For a few years now, the number of UDP reflection attacks on the internet have been slowly…


With the advent of datacenter-level computation, networks have become key. In datacenter networks, the concerns of network engineers still primarily lie at layers 1–3. Occasionally, layer 4–6 will be inspected upon transforming packets, or making routing decisions. I’ll leave layer 1 out of this, as it’s well isolated, and well modeled at this point as asynchronous serial links. There seems to be a contention at layer 2 & layer 3 — where network builders are largely moving away from layer 3 on the fabric, as seen in draft-lapukhov-bgp-routing-large-dc. Yet, there is a massive contingent still looking to build layer 2…


So, I’ve been thinking a lot about databases, and time series stores recently. I’ve been a long-time user of systems like Ganglia and Collectd. These systems are all great, but unfortunately they all tend to use an RRD or Whisper under the hood. These systems are hard to shard, and distribute, which in turn makes them difficult to scale for speed, and reliability. These systems also sample, and are highly-inflexible, making production debugging difficult.

Long-term Design

At the moment, systems and application (business) metrics are handled by independent models. One thing I find interesting is that nearly every organization’s #bigdata system doesn’t…

Sargun Dhillon

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store