Debugging a Slow DynamoDB Query

Recently I was talking to a friend about a website that he’s building. Without going into too much detail, his site consists of a Blazor frontend, an ASP.NET Core backend API, and AWS DynamoDB as the persistence layer. He mentioned to me that upon startup, the first few calls to one of his API endpoints ran unexpectedly slowly, which piqued my curiosity. We ended up going down the profiling rabbit hole and eventually figured it out....

November 12, 2021 · 6 min · Pierce Bartine

Debugging AirPods on Linux

Documenting the process I used to get Bluetooth audio working on my Linux laptop. You’re welcome, future me. Background Let’s be honest - neither Bluetooth nor audio has ever been easy on Linux, at least in comparison to macOS or Windows. Most distros I’ve tried in the past have had pretty suspect support out of the box, which is why I was pleased when my new EndeavourOS install came up with audio working well....

June 27, 2021 · 5 min · Pierce Bartine

Docker Privileged Mode Semantics

TL;DR Grants the container the full set of possible Linux capabilities Mounts all host devices to the container Runs the container with unconfined AppArmor, seccomp, and SELinux profiles Does not set process owner to root Background This is post is essentially a note to self and colleagues on the semantics of Docker’s privileged mode option. Knowing clearly what this option implies is important when faced with an audit, as many software audits are designed to automatically red-flag containers that are run with this option....

July 20, 2020 · 5 min · Pierce Bartine

Security Groups in Terraform

Terraform is a great tool by Hashicorp that allows teams to keep track of their infrastructure’s state and manage it declaratively in code. One of its biggest use cases is in managing the ever-increasing amount of AWS resources, one of which is the bread and butter of cloud networking: the security group. Security groups in AWS are simply lists of rules (topping out at 50 rules per group) that can whitelist traffic according to port, CIDR block, and most interestingly other security groups' IDs....

January 18, 2019 · 3 min · Pierce Bartine

Analyzing a Codebase

Originally posted for Clear Measure Here at Clear Measure we are all about taking old software and making it new again. In doing that, we perform a lot of code refactoring - restructuring old code without breaking its functionality. This could, in some cases, call for some large rewrites of legacy components that still have to play nice with the rest of the system. But before diving into a project, it would be nice to have a plan of attack, wouldn’t it?...

October 31, 2017 · 4 min · Pierce Bartine