TL;DR: Running Datadog (
dd-agent
) during local development can help confirm metrics and traces are sent as expected and can help debug when things go wrong. To rundd-agent
locally just clone the dhermes/local-dd-agent1 repository andmake run
.Being able to quickly iterate with a local
dd-agent
helped …
Reading Istio Secrets
Adopting a service mesh like Istio is a huge undertaking. (Let's set aside for this discussion whether it's a good idea to undertake.) A fairly common issue when getting a mesh up and running is misconfiguration. When trying to debug and determine where and how things are misconfigured, the network …
Preventing PostgreSQL Deadlocks in Go
I've been writing a library for running PostgreSQL migrations in Go. One of the primary pieces of advice I keep coming across is
Beware of lock queues, use lock timeouts
In other words, each migration stage should happen instantaneously (or almost instantaneously). For real-time applications, if a migration runs "for …
How Do Slices Gain Capacity in Go?
Looking Inside a Slice
The first thing to realize is that a slice
in Go is really just a struct
that wraps "header" information about (1) a pointer to the "real" underlying
data, (2) the length and (3) the capacity without directly exposing those
fields. We can use a struct …
A Day in the Life of a (Secure) Request
I recently1 had the privilege of co-authoring a blog post on the Blend engineering blog with my esteemed colleague Austin Poore. Our engineering organization is growing like crazy right now and it's a lot of fun so if any of this post is interesting to you, check out our …