Image for post
Image for post
Photo by Benjamin Voros on Unsplash

I’ve been deep in the domain of observability over the past year. I thought I should take a step back and try to explain some concepts of a project I’ve been working on, OpenTelemetry.

Image for post
Image for post
This is what I feel I look like when explaining observability

Before learning about OpenTelemetry, it’s helpful to know what the term observability means.

Observability

Observability is a field of software engineering focused on combining different methods and tools to help humans answer questions they have about their services. It gives people building and managing complex software a better understanding of their systems and how they behave.

Technology has become central to many aspects of our lives. We stream movies, order food through apps and video conference with our doctors. We access information within milliseconds all thanks to countless systems working together, occasionally flawlessly. This is supported by millions of people who maintain increasingly complex systems built to fulfill this demand. …


Image for post
Image for post
Photo by Jeff James on Unsplash

I couldn’t find a good answer to this question and I looked for hours. Ultimately, I decided to document it here for the next time I need it and for anyone else out there who’s looking to disable go modules in in Visual Studio Code.

  1. Open up Settings (⌘,) and search for “go tools env vars”
Image for post
Image for post

2. Click “Edit in settings.json” and set GO111MODULE to off

Image for post
Image for post

I also disabled the go language server as it was burning a hole through my lap:

Image for post
Image for post

Well that’s all there was to it! I’m now able to use VSCode for all my editing needs.


Image for post
Image for post
Photo by Amy-Leigh Barnard on Unsplash

We’ve all been there. You want to get started with distributed tracing, but don’t have the time to revisit the codebase of dozens, if not hundreds of dozens of services in your system. Don’t worry, OpenTelemetry’s got you covered. Thanks to a great community effort from members of many organizations, the OpenTelemetry project has been able to quickly ramp up its ability to auto-instrument code in a variety of languages for many widely used third-party libraries.

Why auto-instrument?

For many organizations’ engineering teams, the biggest barrier to using distributed tracing, and therefore making the lives of operators 10,000 times better at least, is the time it takes to instrument a system. Auto-instrumentation helps alleviate this burden by hooking directly into existing code. …


Preface: This is not an article defining what the Berkeley Packet Filter(BPF) is. The internet is full of resources on the topic and I’m definitely not an expert on it. Check out this talk by Brendan Gregg if you’d like to know more.

One of the biggest pains in the butt to writing BPF code on MacOS is getting the right environment setup. I know, I know, use the cloud… Or get a Linux laptop. Yes, those two options would make things simpler, but I’m old-fashioned and like to run things locally, which means the cloud won’t work for my experiments. …


Image for post
Image for post

There’s a scene from the Simpson episode “Lisa the Simpson” where Lisa appears on a television broadcast to make an appeal to the audience. She urges citizens to use and treasure their brain, in fear that she was about to lose her own due to the “Simpson gene”. As I was leaving my previous employer, I had a similar fear that my brain would turn to mush. I’m writing this article in the event that my true destiny of turning into a couch potato becomes fulfilled and I no longer have full use of my brain. …


Image for post
Image for post

Here comes a rant. There’s a handful of words I hear people using repeatedly that make my skin crawl. Say for example I’m sitting in a meeting, coffeeshop, or at a conference. The speaker will say “check out this sexy code I just wrote” and immediately my train of thought is derailed. Instead of paying attention to the new library they built, I’m now wondering “Is the person actually sexually aroused here?” or “Did he really just say that?”

Depending on the situation, I usually either ask the person to clarify things on the spot or follow up with them shortly after the event. A talk from Mekka Okereke about building inclusive engineering teams reinforced my belief that not acting when an event occurs sets a bad example for others, so I try to bring it up when it happens, but it’s not always possible. …


Image for post
Image for post

Distributed applications come in all shapes and sizes. In many cases, an Application Programming Interface (API) talks to another one and distributed tracing through Hyper Text Transfer Protocol (HTTP) headers works just great. But what about other cases? Can distributed tracing work for event driven architecture? What if instead of a direct request, a message queue is used to trigger an action in another part of the system?

A little while ago I started working with Redis channels to pass information from one service to another. If you haven’t played with Redis Pub/Sub, it’s a pretty simple and convenient way to send notifications from a service to N subscribers through a channel. …


Image for post
Image for post

One of the challenges in software development is to remain focused on delivering value to users. Interruptions and outages cause a lot of noise and distract engineers from planned work. Sometimes a bug escapes into production. Others, systems are on fire because of unexpected surge in traffic (at the risk of dating myself, this used to be known as the slashdot effect). Responding to these events comes with a sense of urgency and tends to raise the stress level of any engineering team. In the chaos, there is usually a lot of information floating around, many theories and much speculation.

The problem

Some time last year, our platform was troubled by a recurring problem involving our database. …


I ran into an interesting networking problem last week while configuring a multi-host Vagrant environment. I couldn’t find a lot of information about it anywhere so I thought, why not share it? Maybe it will save time for the next poor soul who tries to get VirtualBox virtual machines talking over MacVTap interfaces. Mostly I’m just hoping that I’m not alone out there trying to make this work.

Image for post
Image for post
One of my all time favorites https://xkcd.com/979/

Getting started

First things first, let’s launch a couple of hosts. This is super easy to do using Vagrant. I created two VirtualBox instances using standard Ubuntu distributions via the following configuration. …


Image for post
Image for post

A few people have asked me about my recent job title change. After managing an infrastructure team for two years, I switched career tracks back to an individual contribute role. I wanted to share some thoughts about the transition in hope that it might help others in similar situations.

The journey

A few months ago, I was in one of those deep pits of self doubt. You know, the ones where you question everything you say and do. I was getting to the point where I was really starting to question whether or not I was still able to write code. In my first year as a manager, I was able to scrounge time outside of work to write code. …

About

Alex Boten

Passionate about the environment and making the world a better place

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