
Go Hybrid: Find the Results LIKE Can't
Companion page for my PyOhio 2026 talk. Slides, code, and the dog-spa dataset for searching free text beyond LIKE with BM25, vectors, and hybrid.

Companion page for my PyOhio 2026 talk. Slides, code, and the dog-spa dataset for searching free text beyond LIKE with BM25, vectors, and hybrid.

Celebrate your new skills with take-home challenges and resources for continued learning. You think in sets now.

Quick tastes of CASE statements, JSON functions, date manipulation, set operations, and recursive CTEs. Enough to know what to learn next.

Gemini saw a wall of green checkmarks and declared 27 tools verified. The Makefile printed FAIL and exited 0. How we made it loud, annoying and honest.

Test queries like Python code using in-memory databases, fixtures, and pytest. Fresh data per test, no state leakage.

It's not either/or. Use ORMs for CRUD and migrations; use raw SQL for analytics and complex queries. A practical decision guide.

String formatting in SQL is dangerous. Learn parameterized queries to keep user input safe and prevent SQL injection attacks.

Build a complete pipeline - fetch from an API, load into DuckDB, transform with SQL, export results. A capstone putting it all together.

Read EXPLAIN output to understand why queries are slow. Learn when to add indexes and when to stop worrying about performance.

INSERT, UPDATE, and DELETE with guardrails. Always use WHERE, test with SELECT first, and use transactions to undo mistakes.