Python Engineering Articles


engineering

This page lists the very best Python engineering articles of the internet, hand-picked to give hours and hours of pure reading joy. It is especially designed for onboarding new members on your Python team. Great for skilling up. Though not necessarily read one after the other, the order is nevertheless not random. For example, knowledge of CPython internals specially bytecodes are necessary to make sense of B. Cannon’s unravelling series. The articles are focused on core Python and it’s as advanced as articles can get.

Encoding

To Read Author Notes
Unicode Book Victor Stinner Also discusses Python handling

Maths

To Read Author Notes
Math Symbols Explained With Python Amit Chaudhary
Foundations Of Applied Mathematics Profs And Students At Different Universities A series of four textbooks developed for Brigham Young University’s Applied and Computational Mathematics degree program for beginning graduate and advanced undergraduate students. Uses Python for concepts

Compiler Theory

To Read Author Notes
Building Finite State Machines With Python Coroutines Arpit Bhayani
Writing A Python To C Compiler In Python Phil Eaton
Writing A Jinja-Inspired Template Library In Python Phil Eaton
Writing A Simple Json Parser Phil Eaton

CPython Internals

To Read Author Notes
Your Guide To The Cpython Source Code Anthony Shaw
Internals Of Cpython 3.6 Prashanth Raghu
Advanced Internals Of Cpython 3.6 Prashanth Raghu
Python Development Documentation Victor Stinner
Lifecycle Of A Python Code - Cpython’S Execution Model Batuhan Osman Taşkaya
Notes About A Web Assembly Backend Brett Cannon
Summary Of Sam Gross’ Nogil Proposal Łukasz Langa
Python C Api: Add Functions To Access Pyobject Victor Stinner
C Api Changes Between Python 3.5 To 3.10 Victor Stinner
Creation Of The Pythoncapi_Compat Project Victor Stinner
Make Structures Opaque In The Python C Api Victor Stinner
Isolate Python Subinterpreters Victor Stinner
Hide Implementation Details From The Python C Api Victor Stinner
Leaks Discovered By Subinterpreters Victor Stinner
Gil Bugfixes For Daemon Threads In Python 3.9 Victor Stinner
Threading Shutdown Race Condition Victor Stinner
Threading Shutdown Race Condition Victor Stinner
Pass The Python Thread State Explicitly Victor Stinner
Asyncio Wsasend() Memory Leak Victor Stinner
Asyncio: Wsarecv() Cancellation Causing Data Loss Victor Stinner
Asyncio: Proactor Connectpipe() Race Condition Victor Stinner
Asyncio: Proactor Cancellation From Hell Victor Stinner
How I Fixed A Very Old Gil Race Condition In Python 3.7 Victor Stinner
History Of The Python Private C Api _Pytime Victor Stinner

Bytecode

To Read Author Notes
A Python Interpreter Written In Python Allison Kaptur Introduction to Python bytecode
An Introduction To Python Bytecode James Bennett
Disassembling Python Bytecode Peter Goldsborough
Fedora: Bytecode & Packaging

Insider Bits

To Read Author Notes
Constant Folding In Python Arpit Bhayani
Integer Caching In Python Arpit Bhayani
Super Long Integers In Python Arpit Bhayani
Unravelling Decorators Brett Cannon
Unravelling Data Structure Displays Brett Cannon
(Not) Unravelling Generator Expressions Brett Cannon
Unravelling The Async With Statement Brett Cannon
Unravelling Async For Loops Brett Cannon
Unravelling Async And Await Brett Cannon
Unravelling The With Statement Brett Cannon
Unravelling The Pass Statement Brett Cannon
Unravelling For Statements Brett Cannon
Unravelling Assertions Brett Cannon
Unravelling The Import Statement Brett Cannon
Unravelling Boolean Operations Brett Cannon
Unravelling Membership Testing Brett Cannon
Unravelling Not In Python Brett Cannon
Unravelling Is And Is Not Brett Cannon
Unravelling Rich Comparison Operators Brett Cannon
Unravelling Unary Arithmetic Operators Brett Cannon
Unravelling Augmented Arithmetic Assignment Brett Cannon
Unravelling Binary Arithmetic Operations In Python Brett Cannon
Unravelling Attribute Access In Python Brett Cannon
How The Heck Does Async/Await Work In Python 3.5? Brett Cannon

Sane Bits

To Read Author Notes
An Approach To Lazy Importing In Python 3.7 Brett Cannon
Customizing Class Creation In Python Brett Cannon
Why Pathlib.Path Doesn’T Inherit From Str In Python Brett Cannon
Why Python3? Brett Cannon
Why Print Became A Function In Python 3 Brett Cannon
If I Were Designing Python’S Import From Scratch Brett Cannon
Try To Not Use The Python C Api Directly Brett Cannon
Lambdas As A Solution For Puzzles
Python Generators In Depth Abdur-Rahmaan Janhangeer

Performance

To Read Author Notes
Python Performance: It’S Not Just The Interpreter Kevin Modzelewski Worked on the Pyston project
Accelerate Numpy Using Tensorflow Kevin Modzelewski
Clinging To Memory: How Python Function Calls Can Increase Memory Use Itamar Turner-Trauring
Where’S Your Bottleneck? Cpu Time Vs Wallclock Time Itamar Turner-Trauring
Beyond Cprofile: Choosing The Right Tool For Performance Optimization Itamar Turner-Trauring
Not Just Cpu: Writing Custom Profilers For Python Itamar Turner-Trauring
Ci For Performance: Reliable Benchmarking In Noisy Environments Itamar Turner-Trauring
Why Your Multiprocessing Pool Is Stuck (It’S Full Of Sharks!) Itamar Turner-Trauring
The Parallelism Blues: When Faster Code Is Slower Itamar Turner-Trauring
The Hidden Performance Overhead Of Python C Extensions Itamar Turner-Trauring
Analysis Of A Python Performance Issue Victor Stinner Using the CPython benchmark suite

Tests

To Read Author Notes
Fast Tests For Slow Services: Why You Should Use Verified Fakes Itamar Turner-Trauring
How To Use Your Project & Travis To Help Test Python Itself Brett Cannon Also how to test your project against future Python releases
Why You Should Document Your Tests Hynek Schlawack

Debugging

To Read Author Notes
When C Extensions Crash: Easier Debugging For Your Python Application Itamar Turner-Trauring

Zen of Python

To Read Author Notes
Zen Of Python, Again Łukasz Langa
The Zen Of Python Is A Joke And Here Is Why Abdur-Rahmaan Janhangeer
The Zen Of Python Is A Joke And Here Is Why Abdur-Rahmaan Janhangeer

Patterns

To Read Author Notes
Typeclasses In Python Nikita Sobolev
Typed Functional Dependency Injection In Python Nikita Sobolev
When Python Exceptions Are Considered As Anti-Pattern Nikita Sobolev
What’S A Pragmatic Approach To Subclassing In Python? Hynek Schlawack

Typing

To Read Author Notes
Simple Dependent Types In Python Nikita Sobolev

Packaging

To Read Author Notes
What The Heck Is Pyproject.Toml? Brett Cannon
Deconstructing Xkcd.Com/1987/ Brett Cannon
The Challenges In Designing A Library For Pep 425 (Aka Wheel Tags)/ Brett Cannon

Concurrency And Parallelism

To Read Author Notes
Ways Of Waiting In Asyncio Hynek Schlawack
Designing An Async Api, From Sans-I/O On Up Brett Cannon
The Returns Package For Async Nikita Sobolev
Dead Simple Connection Pooling With Twisted Hynek Schlawack

Task Queues

To Read Author Notes
Stepping Stone Article For Redis And Celery Lj Miranda

Supply Chain

To Read Author Notes
How Do You Verify That Pypi Can Be Trusted? Brett Cannon

DevOps

To Read Author Notes
The History Behind The Decision To Move Python To Github Brett Cannon
Python Deployment Anti-Patterns Hynek Schlawack

The Road To Being A Core Dev

To Read Author Notes
My Road To The Python Commit Bit Hynek Schlawack

How Mega Corps Use Python

To Read Author Notes
Python At Netflix Pythonistas At Netflix
Static Analysis At Scale: An Instagram Story Benjamin Woodruff

History And Decisions

To Read Author Notes
The Origins Of Pgen Guido Van Rossum
The History Of Bool, True And False Guido Van Rossum
Guido Van Rossum
The Story Of None, True And False (And An Explanation Of Literals, Keywords And Builtins Thrown In) Guido Van Rossum
Origin Of Metaclasses In Python Guido Van Rossum
Why Python Uses 0-Based Indexing Guido Van Rossum
Karin Dewar, Indentation And The Colon Guido Van Rossum
Why Python’S Integer Division Floors Guido Van Rossum
From List Comprehensions To Generator Expressions Guido Van Rossum
Method Resolution Order Guido Van Rossum
Import Antigravity Guido Van Rossum
The Inside Story On New-Style Classes Guido Van Rossum
New-Style Classes Guido Van Rossum
Metaclasses And Extension Classes (A.K.A. “The Killer Joke”) Guido Van Rossum
And The Snake Attacks Greg Erwin
Origins Of Python’S “Functional” Features Guido Van Rossum
The Great (Or Grand) Renaming Guido Van Rossum
Dynamically Loaded Modules Guido Van Rossum
The Problem With Integer Division Guido Van Rossum
How Exceptions Came To Be Classes Guido Van Rossum
How Everything Became An Executable Statement Guido Van Rossum
First-Class Everything Guido Van Rossum
Adding Support For User-Defined Classes Guido Van Rossum
Python’S Use Of Dynamic Typing Guido Van Rossum
Early Language Design And Development Guido Van Rossum
Microsoft Ships Python Code… In 1996 Greg Erwin
Personal History - Part 2, Cnri And Beyond Guido Van Rossum
Personal History - Part 1, Cwi Guido Van Rossum
A Brief Timeline Of Python Guido Van Rossum
Python’S Design Philosophy Guido Van Rossum

135 articles on page

Free Flask Course