// selected work
Writing, talks & work projects
Posts, talks, and workshops from my time across Databricks, Neon, Clerk, and PlanetScale.
talk
Jun 2026 · Data + AI Summit
Predictable Migrations: Scaling Lakebase Adoption With Provider-Agnostic Readiness Tools
Session at Databricks Data + AI Summit 2026 with Fatine Boujnouni on tooling that makes Lakebase migrations predictable regardless of the source Postgres provider.
Databricks
Lakebase
Migrations
watch →
talk
Jun 2026 · Seattle Postgres
Change How You Vibecode with Postgres
Talk at the Seattle Postgres meetup on the
postgres-dba AI agent skill. Same prompts, dramatically better output: real indexing, window functions instead of app logic, safe migrations, and performance diagnostics.
Postgres
AI Agents
Skills
Meetup
event →
talk
2026 · DevConnect
DevConnect Databricks Meetup
Spoke at the DevConnect × Databricks community meetup on databases in the Databricks ecosystem.
Databricks
Meetup
DevConnect
recap →
writing
Jul 2026 · Neon
Lakebase Search: vector and BM25 on Neon
How Neon's storage-compute separation shapes two new Postgres extensions:
lakebase_vector (RaBitQ + IVF for billion-scale ANN) and lakebase_text (BM25 with top-K pushdown), for hybrid retrieval in one database.
Neon
Postgres
Vector Search
BM25
read →
talk
2026 · Seattle
Agentic AI Observability Meetup, Seattle
Spoke at the Agentic AI Observability meetup in Seattle on how the database layer shows up in agentic workflows and what to instrument for it.
Agentic AI
Observability
Meetup
recap →
writing
Dec 2025 · Neon
Practical Guide to Database Branching
Battle-tested Neon branching workflows for production, staging, per-developer dev, PR-based ephemeral branches, and point-in-time recovery, including how to handle PII with anonymized branches.
Neon
Postgres
Branching
DevEx
read →
writing
Nov 2025 · Neon
Promoting Postgres Changes Safely From Multiple Environments to Production
A snapshot-based promotion workflow for codegen platforms and any system that maintains many diverging Postgres environments: safe, versioned, and near-instant.
Neon
Snapshots
Workflows
read →
talk
2025 · Jamstack Conf
Jamstack Conf
Speaker at Jamstack Conf on Postgres for modern web architectures.
Jamstack
Postgres
Conference
speakers →
workshop
Jan 2025 · Neon
Neon + AWS RDS: an AWS-hosted workshop
Announcing an AWS-hosted workshop showing how to keep production on RDS while running dev and test on Neon: Neon Twin sync, per-PR branches, and automation via GitHub Actions.
Neon
AWS RDS
Workshop
CI/CD
read →
tutorial
2024 · Clerk
Securing Node.js Express APIs with Clerk and React
End-to-end walkthrough of Clerk's Express middleware (
ClerkExpressWithAuth and ClerkExpressRequireAuth) with a React client that forwards JWTs to protected API routes.
Clerk
Auth
Node.js
React
read →
writing
Jan 2024 · PlanetScale
Working with Geospatial Features in MySQL
A tour of MySQL's spatial data types, WKT/WKB formats, and spatial functions, with practical examples for distance, radius, and containment queries.
MySQL
Geospatial
PlanetScale
read →
writing
Dec 2023 · PlanetScale
What is HTAP?
OLTP, OLAP, and the hype around Hybrid Transactional/Analytical Processing: what the categories actually mean, the tradeoffs, and PlanetScale's take on staying focused on OLTP.
PlanetScale
OLTP
OLAP
Architecture
read →
writing
Mar 2023 · PlanetScale
How to Read MySQL EXPLAINs
Explaining
EXPLAIN and EXPLAIN ANALYZE: join types, the EXTRA column, and a hands-on multi-column index example that drops a query from 299k rows scanned down to 1.
MySQL
Performance
PlanetScale
read →
writing
Dec 2022 · PlanetScale
Temporal Workflows at Scale, Part 2: Sharding in Production
How PlanetScale customers shard Temporal databases in production with Vitess: vSchemas, MoveTables,
xxhash vindexes on shard_id/range_hash, plus real Black Friday QPS numbers.
PlanetScale
Temporal
Sharding
Vitess
read →
writing
Jul 2022 · PlanetScale
Temporal Workflows at Scale with PlanetScale, Part 1
Introducing Temporal (workflows, activities, durability) and why PlanetScale's horizontally-sharded MySQL is a fit as the persistence layer without the operational tradeoffs of Cassandra.
PlanetScale
Temporal
MySQL
read →