Michael Primeaux

Parallel and Distributed Systems


Optimizing Nano ID Generation in Go: Concurrency, Memory, and Precomputation Strategies

Generating unique identifiers efficiently is crucial for many applications, especially those operating under high concurrency. In this post, I’ll share my journey implementing Nano ID in Go, focusing on lessons learned around concurrency, memory optimization, and precomputing configurations. We’ll explore how leveraging sync.Pool, a custom pseudo-random number generator (PRNG) utilizing the ChaCha20 stream cipher, and precomputing various parameters can significantly enhance performance. By the end, an understanding of how to achieve optimal ns/op, allocs/op, and B/op regardless of the alphabet size or type (ASCII or Unicode). Let’s dive in!

Read more...

Fare Collection Revenue Stream

I recently spoke with Richard Tackett, Editor in Chief of American trade publication BUSRide, to discuss fare collection best practices with a focus on revenue.

Originally posted on BUSRide Magazine and subsequently referenced by Vix Technology, here are my responses featured alongside other industry commentators. It shouldn’t be a surprise to anyone that DevOps and software engineering displine are fundamental when designing and constructing parallel and distributed systems at a quality level commensurate with that of commercial software.

Read more...

Developer Testing

Why is it important to write automated tests? I’m asked this question far too often by software engineering teams. The usual response I receive after asking someone why they don’t write tests usually is because “I don’t have time”. Nothing could be further from the truth. In reality, valuable time is saved by writing tests first. Writing tests is an important and fundamental concept to our craft. So much so that I thought best to write about it.

Read more...

A Healthy Lifestyle: Part 2

A year ago today, I posted an article describing my decision to raise the priority of a healthy lifestyle.

Last year was very busy for me professionally. I decided very early that in order to become healthier, I needed to design my workout schedule and nutritional plan with efficiency in mind. The fundamental areas of physical health are nutrition and exercise. The purpose of this post is simply to share my thoughts on what I’ve learned over the past year with respect to nutrition.

Read more...

A Healthy Lifestyle: Part 1

I recently moved to Chicago and, as part of that overall effort, decided to raise the priority of a healthy lifestyle. As with most people who have a pulse, I am not getting any younger and so am very keen to avoid prescription medication. Fundamentally, understanding how the changes I decide to make toward this goal must start with the measurement of a set of baseline indicators and, more importantly, the method of inquiry to attain this baseline and the resulting influence of changes in my diet and lifestyle must be based on empirical and measurable evidence.

Read more...

Parallel and Distributed System Design, Part 2

The map is not the territory. – Alfred Korzybsky in Science and Sanity, 1933

This is the second post in a series where I’ll discuss various aspects of parallel and distributed system design. I’d like to provide a brief introduction to taxonomy (or classification of data) and eventual consistency as these building blocks are fundamental to parallel and distributed system design.

Read more...
1 of 3 Next Page