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.

Software Estimation: Why It Fails and How to Fix It

Software Estimation: Why It Fails and How to Fix It

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
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
Engineering Intuition: Knowing When to Refactor

Engineering Intuition: Knowing When to Refactor

Comments
4 min read
Why Code Documentation Is a First-Class Citizen

Why Code Documentation Is a First-Class Citizen

Comments
4 min read
Agile is a Mindset, Not Endless Sprint Meetings

Agile is a Mindset, Not Endless Sprint Meetings

Comments
4 min read
Good Enough Software: Balancing Quality and Time to Market

Good Enough Software: Balancing Quality and Time to Market

Comments
3 min read
The Physics of Phone Cameras: Photons to Pixels

The Physics of Phone Cameras: Photons to Pixels

Comments
4 min read
Why OLED Screen Burn-In Looks Yellow

Why OLED Screen Burn-In Looks Yellow

Comments
4 min read
djb2 Hash Function: String to Integer Algorithm Explained

djb2 Hash Function: String to Integer Algorithm Explained

Comments
4 min read
Microsoft Project Silica: Storing Data in Glass

Microsoft Project Silica: Storing Data in Glass

Comments
4 min read
Microsoft Project Silica: Glass Storage Explained

Microsoft Project Silica: Glass Storage Explained

1
Comments
4 min read
Blue-Green Deployments: Instant Rollbacks & Zero Downtime

Blue-Green Deployments: Instant Rollbacks & Zero Downtime

Comments
4 min read
Debugging Microservices with Distributed Tracing

Debugging Microservices with Distributed Tracing

Comments 1
3 min read
Database Internals: How Data is Stored in Pages

Database Internals: How Data is Stored in Pages

Comments
4 min read
Single Responsibility Principle for AI Sub-Agents

Single Responsibility Principle for AI Sub-Agents

Comments 2
4 min read
How Database Reads Work: Pages, Buffer Pools, and Disk

How Database Reads Work: Pages, Buffer Pools, and Disk

Comments
4 min read
How Database Inserts Work: WAL and Buffer Pools

How Database Inserts Work: WAL and Buffer Pools

Comments
4 min read
loading...