Welcome! I'm a software engineer and I like blogging about Python, databases, and programming in general. I'm the author of several open-source Python libraries including Peewee ORM, Huey task queue and lots more. Below you can find a list of my most recent blog posts.
If you don't know what your'e doing here, check out some of my popular posts.
Zero AI-generated content.
-
Tokens and Dreams
The one great principle of the English law is, to make business for itself.
At work we were talking about metrics. Well, they were talking about metrics, and then when they realized they had none, they asked me to generate some. I spent an hour or so putting together a script that pulled all the relevant historical data from our database, cleaned and normalized into a CSV. Then I fed the CSV into AI. With only a sentence or two of prompt, AI extrapolated meaningful signals, produced no less than 5 graphs, and correlated the data with external market signals which were not explicit in the data-set. It also built a polished interactive dashboard. A dashboard! A dashboard! I've said it in my head so many times I don't even know what it fucking means. Dash board. But I know this: Everyone wants dashboards. AI knows it, too.
-
Hall of Mirrors
Who is he that hideth counsel without knowledge? therefore have I uttered that I understood not; things too wonderful for me, which I knew not.
"Hold on a sec-". My new boss' now-familiar MacOS desktop appeared in the video call, browser with Claude open, dominating the screen. I watched as he copied the transcript of our call up to that point (he records transcripts of every call in order to feed the text into AI), and began a new chat with the prompt: "Say where Charlie's right, and where he's wrong. Say where I'm right and where I'm wrong." He pasted the transcript and hit enter. I consulted my avatar in the lower-right. We both waited in silence while Claude thought. We were 45 minutes into a call about product roadmap and a possible customer announcement before this interruption. Soon the cursor started skipping along as words began filling the screen. Then, we read aloud through the findings one-by-one. Claude had helpfully given us a bulleted list to work through, an even number of findings for each of us. I felt called-upon to gallantly agree with Claude's softly (oh-so-softly) couched criticisms of my viewpoint, while conceding everywhere Claude expressed subtle (oh-so-subtle) approval of my boss. The call ended shortly afterwards, somewhat awkwardly for both of us. I had just experienced the most baffling mixture of radical transparency and impossible opacity.
-
Children's Games
I try all things; I achieve what I can.
A year ago, as I was going through a mound of keepsakes my Mom transferred to my custody (I have reached that age, yes), I came across a little book I made in kindergarten describing my first bicycle crash, which I attributed to rolling over a pine-cone. I have very little recollection of the crash itself - I only recall sitting, high up on the passenger seat of the minivan, with a towel pressed to my forehead and anxiously asking, "B-but can you see any BRAINS?"
-
Redis and the Cost of Ambition
And they said, Go to, let us build us a city and a tower, whose top may reach unto heaven; and let us make us a name, lest we be scattered abroad upon the face of the whole earth.
What happened to dear old Redis, I wondered. And the more I thought about it, a satisfying explanation started to coalesce which explains all the above phenomena. To me, the picture that emerges is that of a solution that lost its identity through ambition.
-
cysqlite - a new sqlite driver
Back in the spring of 2019, I began working on cysqlite, a from-scratch DB-API compatible SQLite driver. I intended one day to use it as a replacement for pysqlite3. Seven years later, the project is ready. It provides an API and performance similar to the standard library
sqlite3module, with many additional features. View more posts





