Cruising through complex data

This post is a showcase of data wrangling techniques in Python, using glom. If you haven't heard of glom, it's a data transformation library and CLI designed for...

Intentional Creation

Reliably tap into your creativity with the 4 Cs: Consume, critique, curate, create. This is one of my oldest ideas, finally published on the GitHub ReadME Project blog,...

Changing the Tires on a Moving Codebase

2020 was a year of reckonings. And for all that was beyond one’s control, as the year went on, I found myself pouring more and more into the...

Thanks, 201X!

Thought I'd take a Sunday afternoon to reflect on, oh I don't know, a decade. Been a long ten years, but it's flown past. This particular decade happens...

Awesome Python Applications

What we can learn from 180+ case studies on successfully shipping Python software. If you're reading this (or hearing this), you read and write code, probably Python. And...

Announcing glom: Restructured Data for Python

This post introduces glom, Python's missing operator for nested objects and data. If you're an easy sell, full API docs and tutorial are already available at glom.readthedocs.io. Harder...

Maintainerati 2017: GitHub Design

Last week I attended a Maintainerati event, an unconference/mini-summit for maintainers of popular software, run as a prelude to the GitHub Universe conference. After being brought up to...

Plugin Systems

"What are plugins?" and other proceedings of the inaugural PyCon Comparative Plugin Systems BoF. Update: This BoF and post inspired [a talk I gave at PyGotham 2017][pygotham2017]. Within...

The Many Layers of Packaging

The packaging gradient, and why PyPI isn't an app store. Update: I turned this post into a talk. The video from PyBay is here, the slides are available...

Developer variants

Software development takes all kinds. I'm not talking about appearances or job titles. I'm talking about motivations and fulfillment. In my years of writing code and leading projects,...

Announcing CalVer

It's about time. Technologists expect things to get better with time. Your current laptop has more RAM than the last, your current car is safer than its predecessor,...

Running from software

So while PyCon 2016 starts in less than 48 hours, some kind of anticipation compelled me to polish off the last of the talks from last year. For...

Managing Python Ecosystems

You know that old quote: The wider the net you cast, the wider the variety you catch. Was it a wise old fisherman? Or a dogged Python programmer?...

Enterprise Software with Python

When I first published 10 Myths of Enterprise Python on the PayPal Engineering blog, there were a lot of reactions. Some I expected: Surprise at Python in the...

Designing a version

In modern software development, a project isn't a project without a proper versioning scheme. Weak version management neglects clients like lack of source control neglects collaborators. Dependency management...

Getting a Python job

Every day, Python is the primary programming language for tens if not hundreds of thousands of professional engineers, analysts, and researchers, including yours truly. Given Python's "language of...

RWC 2016 Lightning Talk

Today I had the pleasure of talking on stage for ~2 minutes at the Real World Crypto 2016 conference in Stanford, CA. This is a pseudotranscript of that...

Enterprise Overhaul: Resolving DNS

Originally published on the PayPal Engineering blog. Republished here with minor modifications and updates. Everyone assumes all software engineers are great with numbers. If only they knew the...

Announcing the Hatnote Top 100

Originally published on the Hatnote blog. Moreso than any other major site, Wikipedia is centered around knowledge, always growing, and brimming with information. It's important to remember that...

Repeat the obvious

Bad things happen when we don't repeat the obvious. It's 9pm and I'm writing a post for the company engineering blog. Every sentence is a slog. Not because...

Remap: Nested Data Multitool for Python

This entry is the first in a series of "cookbooklets" showcasing more advanced Boltons. If all goes well, the next 5 minutes will literally save you 5 hours....

Python Community Intro

The PSF just created a new mailing list, "PSF-Community", then autosubscribed a bunch of people and solicited introductions. At first I was surprised, but I was quickly charmed...

10 Myths of Enterprise Python

(Originally posted on the PayPal Engineering blog, reproduced here with minor updates, link fixes, etc.) PayPal enjoys a remarkable amount of linguistic pluralism in its programming culture. In...

Designing a fast

I wake up with a jolt, spilling most of my breakfast cereal onto a thirsty couch. My eyes find the clock. Cleaning will have to wait. I'm downing...

Colophon

Most blogs, like this one, are reverse-chronological, causing the first post to appear last in the archive. This convention makes a colophon the King's Pawn Game of web...