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

A home garden growing happily

Why I Run AI Locally (and You Might Want to)

As I admitted before in posts 1 and 2 I vibe-coded and lived to tell. This post answers the question I kept avoiding. Why run any of this locally when cloud models are flatly better at the task? The …...

March 22, 2026 · 5 min · Jamal Hansen

The Content Curator

I have now written, tested, and debugged a content discovery agent. It monitors RSS feeds, searches social media, scores articles for relevance, and delivers curated reading recommendations directly …...

March 17, 2026 · 4 min · BartBot

HAVING: Filtering Grouped Results

When I first encountered HAVING, I thought, “Why do we need this? It’s just like WHERE.” Then I tried filtering on COUNT() and hit a strange error. That’s when it clicked: HAVING filters after …...

March 16, 2026 · 3 min · Jamal Hansen

T-SQL Tuesday #196 - What career risks have you taken?

Invitation from James Serra I found T-SQL Tuesday just in time for this first post, and I’m looking forward to participating. What career risks have you taken? The year was 1997. I was delivering …...

March 10, 2026 · 4 min · Jamal Hansen