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 QA Engineers Are Your Team's Invisible Safety Net

Why QA Engineers Are Your Team's Invisible Safety Net

Comments
4 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
Handling Partial Failures in Distributed Systems

Handling Partial Failures in Distributed Systems

Comments
3 min read
Stop Terminal Prompting: A Markdown-First AI Workflow

Stop Terminal Prompting: A Markdown-First AI Workflow

Comments
3 min read
How to Build a Scale-Proof Distributed Counter

How to Build a Scale-Proof Distributed Counter

Comments
4 min read
Why AI Coding Can't Speed Up B2B Sales Cycles

Why AI Coding Can't Speed Up B2B Sales Cycles

Comments
4 min read
Fix AI Agent Jargon with Simplified Technical English

Fix AI Agent Jargon with Simplified Technical English

1
Comments 1
3 min read
How YouTube Scales Watch History Using Bigtable

How YouTube Scales Watch History Using Bigtable

Comments
4 min read
Why You Should Wait 3 Months for Open-Source AI

Why You Should Wait 3 Months for Open-Source AI

Comments
3 min read
How AI Automates Fast Decisions in Software Engineering

How AI Automates Fast Decisions in Software Engineering

Comments
3 min read
Why Toxic Comments are a Systems Scaling Metric

Why Toxic Comments are a Systems Scaling Metric

Comments
3 min read
Why Scaling Software Is an Organizational Problem

Why Scaling Software Is an Organizational Problem

Comments
3 min read
How Adaptive Bitrate Streaming Works

How Adaptive Bitrate Streaming Works

Comments
4 min read
How HyperLogLog Counts Billions of Views with 12KB RAM

How HyperLogLog Counts Billions of Views with 12KB RAM

Comments
4 min read
TDD vs. Spike-Driven Development: When to Test First

TDD vs. Spike-Driven Development: When to Test First

Comments
3 min read
Managing AI Agents Like Junior Developers

Managing AI Agents Like Junior Developers

Comments
4 min read
Software Estimation: Why It Fails and How to Fix It

Software Estimation: Why It Fails and How to Fix It

Comments
4 min read
Graph Databases for Real-Time Fraud Detection

Graph Databases for Real-Time Fraud Detection

Comments
4 min read
How Defensive UI Design Prevents Production Outages

How Defensive UI Design Prevents Production Outages

Comments
4 min read
Why Exponential Math Breaks Software Scaling

Why Exponential Math Breaks Software Scaling

Comments
3 min read
AI Agent Architecture: Skills, Evals & Dark Factories

AI Agent Architecture: Skills, Evals & Dark Factories

Comments
4 min read
Premature Optimization: What Donald Knuth Actually Meant

Premature Optimization: What Donald Knuth Actually Meant

Comments
4 min read
Why Software Engineers Prefer YYYY-MM-DD (ISO 8601)

Why Software Engineers Prefer YYYY-MM-DD (ISO 8601)

Comments
4 min read
Is 100% Test Coverage Worth It? Realistic Testing Targets

Is 100% Test Coverage Worth It? Realistic Testing Targets

Comments
3 min read
Why JavaScript Has Quirks (And Why TC39 Can't Fix Them)

Why JavaScript Has Quirks (And Why TC39 Can't Fix Them)

1
Comments
4 min read
How to Prevent SQL Injection with Parameterized Queries

How to Prevent SQL Injection with Parameterized Queries

Comments
4 min read
How to Prompt LLMs for Clean Code Using Trigger Words

How to Prompt LLMs for Clean Code Using Trigger Words

Comments
3 min read
Why the Netflix Keeper Test Hurts Engineering Teams

Why the Netflix Keeper Test Hurts Engineering Teams

Comments
4 min read
Why AI Agents Won't Replace Software Engineers

Why AI Agents Won't Replace Software Engineers

Comments
4 min read
How the Luhn Algorithm Validates Credit Cards Instantly

How the Luhn Algorithm Validates Credit Cards Instantly

Comments
3 min read
How USB-C Power Negotiation Works: Inside the CC Pin

How USB-C Power Negotiation Works: Inside the CC Pin

Comments
4 min read
The To-Do Method: Control AI Coding Agents in Your IDE

The To-Do Method: Control AI Coding Agents in Your IDE

Comments
3 min read
Game Theory in Software Engineering: How Cooperation Wins

Game Theory in Software Engineering: How Cooperation Wins

Comments
4 min read
8 Levels of AI Autonomy in Software Engineering

8 Levels of AI Autonomy in Software Engineering

Comments
4 min read
ETL vs ELT: Why Cheap Cloud Storage Changed Everything

ETL vs ELT: Why Cheap Cloud Storage Changed Everything

Comments
4 min read
How to Fix the Thundering Herd (Cache Stampede) Problem

How to Fix the Thundering Herd (Cache Stampede) Problem

Comments
3 min read
Automate Video Editing with Whisper, LLMs, and FFmpeg

Automate Video Editing with Whisper, LLMs, and FFmpeg

Comments
3 min read
How Quorum Prevents Split-Brain in Distributed Systems

How Quorum Prevents Split-Brain in Distributed Systems

Comments
4 min read
Why You Should Never Use a Database as an API

Why You Should Never Use a Database as an API

Comments
4 min read
Should You Use Custom ID Types or Plain Strings?

Should You Use Custom ID Types or Plain Strings?

Comments
4 min read
When to Use an ORM vs SQL and Query Builders

When to Use an ORM vs SQL and Query Builders

Comments
3 min read
Solving the N+1 Query Problem in Databases and ORMs

Solving the N+1 Query Problem in Databases and ORMs

Comments
4 min read
How Collaborative Docs Work: An Introduction to CRDTs

How Collaborative Docs Work: An Introduction to CRDTs

Comments
3 min read
Boost LLM Accuracy with Self-Correcting Agent Loops

Boost LLM Accuracy with Self-Correcting Agent Loops

Comments
3 min read
LLM vs. AI Agent: Understanding the Difference

LLM vs. AI Agent: Understanding the Difference

Comments
4 min read
How TypeScript Makes Your JavaScript Run Faster

How TypeScript Makes Your JavaScript Run Faster

1
Comments
3 min read
How the V8 Engine Optimizes JavaScript at Runtime

How the V8 Engine Optimizes JavaScript at Runtime

Comments
4 min read
Conway's Law: How Team Structure Shapes Architecture

Conway's Law: How Team Structure Shapes Architecture

Comments
4 min read
How Conway's Law Shapes Your Software Architecture

How Conway's Law Shapes Your Software Architecture

Comments
4 min read
Designing Idempotent APIs and Resilient Pipelines

Designing Idempotent APIs and Resilient Pipelines

Comments
4 min read
Idempotency Explained: Handling Duplicate API Requests

Idempotency Explained: Handling Duplicate API Requests

Comments
4 min read
Why a Day Isn't 86,400 Seconds in Programming

Why a Day Isn't 86,400 Seconds in Programming

Comments
4 min read
A* Search Algorithm: Game Pathfinding Explained

A* Search Algorithm: Game Pathfinding Explained

Comments
4 min read
Handling ISO Currency Codes in Software

Handling ISO Currency Codes in Software

Comments
4 min read
How Git Uses Merkle Trees for Fast Verification

How Git Uses Merkle Trees for Fast Verification

Comments
4 min read
How Merkle Trees Verify Large Files

How Merkle Trees Verify Large Files

1
Comments
4 min read
Storing Exchange Rates for Multi-Currency Systems

Storing Exchange Rates for Multi-Currency Systems

1
Comments
3 min read
Merkle Trees Explained: How We Verify Large Files

Merkle Trees Explained: How We Verify Large Files

Comments
5 min read
Correct by Design vs Correct by Coincidence

Correct by Design vs Correct by Coincidence

Comments
3 min read
How to Represent Money in Software

How to Represent Money in Software

2
Comments
3 min read
How DRAM Works: The 64ms Memory Refresh Cycle

How DRAM Works: The 64ms Memory Refresh Cycle

Comments
4 min read
loading...