Hi, I'm Andrew.

I'm an experienced Python developer and database nerd on a mission to help every developer build a meaningful career.

High Availability, Replication, and Failover Explained with Stuffed Animals

High Availability, Replication, and Failover Explained with Stuffed Animals

My 2-year-old daughter’s favorite stuffed animal, “Meow-Meow,” is a critical ...

What is Python's Default Hash Algorithm?

What is Python's Default Hash Algorithm?

A friend of mine wondered recently, What is Python’s default hash algorit...

Poetry Is My Favorite Python Dependency Manager

Poetry Is My Favorite Python Dependency Manager

A Story February 2021. Maintainers of the cryptography package release a new...

Rewriting an API to Use FastAPI: Benchmarks and Lessons Learned

Rewriting an API to Use FastAPI: Benchmarks and Lessons Learned

Last week at work, I rewrote an API to use FastAPI and as much async Python a...

Scaling Django with Postgres Read Replicas

Scaling Django with Postgres Read Replicas

Replication is a feature of PostgreSQL that you typically use to achieve high...

Building Implicit Interfaces in Python with Protocol Classes

Building Implicit Interfaces in Python with Protocol Classes

Python 3.8 shipped one of the coolest features I’ve seen in a recent Python v...

Why Does Python Have a len() Function?

Why Does Python Have a len() Function?

New Python users are often surprised to learn that you call a global function...

Recording Pro Audio and Video at Home with iPads and iPhones

Recording Pro Audio and Video at Home with iPads and iPhones

In January, I started a new job writing and producing technical education vid...

iPad Play Dates in the Time of Coronavirus

iPad Play Dates in the Time of Coronavirus

Oregon schools closed over two months ago to prevent the spread of COVID-19. ...