SQL

Relational data modeling, indexing strategies, analytical queries, and schema migration engineering across production databases.

1 / The Constant Underneath

SQL is not a technology I adopted at a specific moment — it is the constant that underlies almost every project I have built. From relational schema design in Trajectory to vector similarity queries in Phoenix, SQL has been the interface through which I interact with persistent data.

2 / Schema Design and Indexing

Most of my SQL experience is with PostgreSQL, though I have also used MySQL, MongoDB (which has its own query language), and SQLite for embedded local persistence. The engineering challenges have centered on schema design decisions: choosing between normalized relational models and denormalized JSONB document fields, designing indexes that support actual query patterns rather than theoretical best practices, and handling multi-tenant data isolation through row-level filtering.

3 / Beyond CRUD

The most interesting SQL work came in contexts where simple CRUD was not sufficient. In Phoenix, SQL queries combined relational WHERE clauses with pgvector cosine distance operators — effectively mixing traditional filtering with vector similarity search in a single query. In Trajectory, pessimistic locking with `SELECT FOR UPDATE` prevented booking race conditions in concurrent application pipeline state updates.

4 / Migrations and Discipline

Working with Flyway for version-controlled database migrations taught me that schema evolution is not something you do ad hoc. Every migration is a contract change, and automating migrations through CI/CD pipelines eliminates the manual drift that causes production schema mismatches.