DEV Community

Doogal Simpson profile picture

Doogal Simpson

I'm a Senior Staff Engineer and former start-up founder. I'm trying to help developers bridge the gap from technical competence to professional engineering.

Why Your Database Hates COUNT(DISTINCT) and Why HyperLogLog is the Cure

Why Your Database Hates COUNT(DISTINCT) and Why HyperLogLog is the Cure

2
Comments
3 min read

Want to connect with Doogal Simpson?

Create an account to connect with Doogal Simpson. You can also sign in below to proceed if you already have an account.

Already have an account? Sign in
Stop Joining Millions of Rows for Every Single Swipe

Stop Joining Millions of Rows for Every Single Swipe

2
Comments
4 min read
How Big Tech Scales View Counts: The Power of HyperLogLog and Harmonic Means

How Big Tech Scales View Counts: The Power of HyperLogLog and Harmonic Means

3
Comments
4 min read
How to build a profanity filter that actually works

How to build a profanity filter that actually works

1
Comments
4 min read
How Docker Actually Works: A Deep Dive into Namespaces and Cgroups

How Docker Actually Works: A Deep Dive into Namespaces and Cgroups

1
Comments 1
4 min read
Scaling Profanity Filters: Why I Use Tries for Real-Time Chat

Scaling Profanity Filters: Why I Use Tries for Real-Time Chat

2
Comments
4 min read
Why Your Linked List Wants to Be a Bloody Tree

Why Your Linked List Wants to Be a Bloody Tree

2
Comments
4 min read
32-Element Branching: How Scala Vectors Solve Immutable Memory Pressure

32-Element Branching: How Scala Vectors Solve Immutable Memory Pressure

4
Comments
4 min read
Why the Ring Buffer is the Foundation of High-Performance Systems

Why the Ring Buffer is the Foundation of High-Performance Systems

3
Comments
4 min read
Your Undo Button is Just a Stack of Pancakes

Your Undo Button is Just a Stack of Pancakes

1
Comments
4 min read
Why Your Distributed System is a Brawl (and How Queues Fix It)

Why Your Distributed System is a Brawl (and How Queues Fix It)

1
Comments
3 min read
Why Dynamic Arrays Aren't Actually Dynamic

Why Dynamic Arrays Aren't Actually Dynamic

3
Comments
3 min read
Why removing the Head of Linked List is O(1)

Why removing the Head of Linked List is O(1)

4
Comments
4 min read
The Pointer Arithmetic of Constant Time: Why Arrays Scale O(1)

The Pointer Arithmetic of Constant Time: Why Arrays Scale O(1)

1
Comments
4 min read
NASA’s $125M Unit Error: Why Your API Needs Explicit Naming

NASA’s $125M Unit Error: Why Your API Needs Explicit Naming

1
Comments
3 min read
Why Doing Nothing is Mathematically Your Fastest Debugging Tool

Why Doing Nothing is Mathematically Your Fastest Debugging Tool

3
Comments
4 min read
Why Your Backup Strategy Might Be a $100 Million Gamble

Why Your Backup Strategy Might Be a $100 Million Gamble

1
Comments
4 min read
Clear Tests SCREAM "AAA"! — Arrange, Act, Assert

Clear Tests SCREAM "AAA"! — Arrange, Act, Assert

Comments
3 min read
Your Comments Are Rotting, So I Hope Your Tests Have A Long Shelf Life

Your Comments Are Rotting, So I Hope Your Tests Have A Long Shelf Life

Comments
3 min read
Stop Letting Third-Party Libraries Hold Your Codebase Hostage

Stop Letting Third-Party Libraries Hold Your Codebase Hostage

Comments
3 min read
The Cognitive Budget: How I Write Code I Can Actually Maintain

The Cognitive Budget: How I Write Code I Can Actually Maintain

1
Comments
3 min read
Silent Failures: The Junior Trap You Need to Avoid

Silent Failures: The Junior Trap You Need to Avoid

Comments
4 min read
The Law of Loudness: Why Your Code Should Scream, Not Whisper

The Law of Loudness: Why Your Code Should Scream, Not Whisper

3
Comments 1
4 min read
The 3-Argument Rule: How to Stop "Argument Bankruptcy"

The 3-Argument Rule: How to Stop "Argument Bankruptcy"

Comments
3 min read
Don't Let the Domains Touch! The Professional Way to Avoid The Switch Smell

Don't Let the Domains Touch! The Professional Way to Avoid The Switch Smell

Comments
3 min read
The TL;DR Rule: How I Structure Files to Not Annoy My Team

The TL;DR Rule: How I Structure Files to Not Annoy My Team

Comments
3 min read
The "And" Test: How I Spot a Monster Function Before it Bites Me

The "And" Test: How I Spot a Monster Function Before it Bites Me

3
Comments 2
3 min read
Stop "Saving Keystrokes". I Spend 3 Seconds to Save 3 Hours

Stop "Saving Keystrokes". I Spend 3 Seconds to Save 3 Hours

Comments
3 min read
The Squint Test: How I fix Code that looks like a Grey Brick

The Squint Test: How I fix Code that looks like a Grey Brick

Comments
3 min read
Localhost is a Lie: The Happy Path Fallacy

Localhost is a Lie: The Happy Path Fallacy

Comments
3 min read
Stop Writing Comments: Why Senior Devs Hate "Stale Lies"

Stop Writing Comments: Why Senior Devs Hate "Stale Lies"

Comments
3 min read
Code is a User Interface (And Yours Might Be Terrible)

Code is a User Interface (And Yours Might Be Terrible)

Comments
3 min read
The Sleep-Deprived Senior Test: Why I Hate Your "Magic Numbers"

The Sleep-Deprived Senior Test: Why I Hate Your "Magic Numbers"

2
Comments
3 min read
loading...