Files
kennethreitz.org/data/software/index.md
T
2026-03-22 04:24:50 -04:00

2.8 KiB

Software Projects

I build tools for humans. That phrase started as a tagline for Requests and became a design philosophy that runs through everything I make.

You can find more on my GitHub profile, where I've been shipping open source since 2008.

The Libraries

Requests — HTTP for Humans. The most downloaded Python package on Earth. Over 30 million installs a day.

SimpleMind — AI for Humans. One interface to every major AI provider.

Pipenv — Python Dev Workflow for Humans. Pip and virtualenv, unified.

Certifi — Python's trust store. Mozilla's CA bundle, packaged for Python.

Tablib — Tabular datasets for Humans. Format-agnostic data import and export.

Records — SQL for Humans. Raw SQL queries with Tablib-powered export.

Maya — Datetimes for Humans. Parse "tomorrow" and get a timezone-aware result.

Responder — A familiar HTTP service framework. Requests, but for the server side.

Legit — Git for Humans. Simple commands for common Git workflows.

Delegator — Subprocesses for Humans. Shell commands without subprocess pain.

dj-database-url — Database URLs for Django. One environment variable, one line of config.

Background — Simple background tasks. One decorator, no infrastructure.

PyTheory — Music Theory for Humans. Scales, chords, and temperaments as Python objects.

Philosophy

I keep coming back to the same principle: if the developer feels stupid, the API is wrong. Every library I've built starts from that conviction. Find the pain point, study how people actually think about the problem, then design an interface that matches their mental model.

The Zen of Python captures it well:

  • Beautiful is better than ugly.
  • Explicit is better than implicit.
  • Simple is better than complex.
  • Complex is better than complicated.

These aren't just code rules. They're design rules. They're life rules. The same thinking that produces a clean API produces a clear essay and a well-designed day.

The Future

AI changes our relationship with code. It trivializes implementation while making intention more important than ever. The question is no longer "can you write the code?" but "do you know what to build and why?" I think that's a good thing. The "for humans" philosophy matters more now than when I started, because the humans are the part that can't be automated.