Latest Posts

Understanding and Measuring Performance in Complex Systems

When measuring system performance, understanding context makes the difference between drawing useful insights or chasing ghosts. Behavior under load can be counterintuitive, and metrics are often misinterpreted when analyzing performance. I’ll examine key metrics and measurement methodology considerations that apply across different architectures, from highly distributed systems to individual services that can become bottlenecks.

High-Precision Timing with TSC on x86 CPUs

I’ve recently worked on implementing high-precision timing measurements in the critical path on a few projects recently, where using the Time Stamp Counter (TSC) comes in handy. This post covers the implementation of a TSC-based clock and some considerations when using it.

Navigating the Software Engineer Interview

Conducting interviews recently for hiring for one of my teams has left me with some thoughts and tips for candidates navigating software engineering interviews.

Performance impact of C++ Memory Order vs x86 Strong Ordering

I try to answer the question: Given that x86 has strong ordering is there any point from a performance perspective to using anything other than the C++ sequentially consistent memory ordering?

Linux perf: a quick primer to application profiling

Recently, I was asked to give a demo to the team on how to use perf to profile applications. Here are the notes for that.

Aeron Latency at Lower Throughputs

A look at the significant influence that configuration has on Aeron’s performance depending on use-case, and the importance of not just relying on the default configuration.

Go vs C++ Atomics Performance

Here I use two of my implementations of lockfree SPSC (single producer single consumer) ringbuffers to compare atomics performance between Go and C++.

Useful Linux Commands for System Management

I often find myself using these commands to get detailed information about a system’s hardware or manage system’s resources. I will probably update this list as I think of more.