Hi, I'm Jamal Hansen

Technical deep dives into SQL, Python, and AI development. I document what I learn building with data and language models.

Join Python developers learning SQL — new tutorial every Monday

Latest Articles

CTEs: Making Your SQL Readable

We learned last week about subqueries, which are like helper functions for your SQL code. They can bring back temporary values used in larger calculations or find additional data points from an id. …...

April 6, 2026 · 5 min · Jamal Hansen

The Road to Agentic Notes

Karpathy published his LLM-powered personal knowledge system. The post went viral, and for good reason. LLM Knowledge Bases Something I'm finding very useful recently: using LLMs to build personal …...

April 5, 2026 · 6 min · Jamal Hansen

Subqueries: When SQL Needs Helper Functions

Last week, we talked about the superpower of relational databases, the ability to join tables to make data storage more efficient. In fact, we have covered much of the syntax that you would use on a …...

March 30, 2026 · 6 min · Jamal Hansen
A geometric black and white pattern

Copy and Paste Long Enough and the Architecture Appears

Ever find yourself writing the same code in a different repo? I have. What did you do about it? Maybe your first reaction is to reach for an existing library to do the work for you? Or perhaps you …...

March 27, 2026 · 6 min · Jamal Hansen

JOINs Explained for Python Developers

So far in this series we have covered all the core SQL clauses: SELECT, FROM, WHERE, GROUP BY, HAVING, and ORDER BY. We can do quite a bit with those tools, but we have been working with a single …...

March 23, 2026 · 9 min · Jamal Hansen