CentOS 8 is dead: choosing a replacement Docker image

Creating a better flamegraph visualization

Why your multiprocessing Pool is stuck (it’s full of sharks!)

It’s time to stop using Python 3.6

Is it worth the money? When to buy products for your job

Speed up your Conda installs with Mamba

Cython, Rust, and more: choosing a language for Python extensions

Pip vs Conda: an in-depth comparison of Python’s two packaging systems

Wait for toolchain support for Python 3.10

Writing software that's reliable enough for production

Using Podman with BuildKit, the better Docker image builder

The Performance Overhead Of Python C Extensions

The best Docker base image for your Python application

NumPy views: saving memory, leaking memory, and subtle bugs

Saving memory with Pandas 1.3’s new string dtype

Measuring memory usage in Python: it’s tricky

Measuring the memory usage of a Pandas DataFrame

Docker can slow down your code and distort your benchmarks

How to (not) use Docker to share your password with hackers

Shrinking your Python application’s Docker image: an overview

Don’t leak your Docker image’s build secrets

Loading SQL data into Pandas without running out of memory

The hidden performance overhead of Python C extensions

Process large datasets without running out of memory

The security scanner that cried wolf

Speeding up Docker builds in CI with BuildKit

The worst so-called “best practice” for Docker

Transgressive Programming: the magic of breaking abstraction boundaries

All Pythons are slow, but some are faster than others

Why you really need to upgrade pip

More →