# Database Design & Modeling

> Selected work demonstrating this service.

- [Designed, implemented, and administered 6 ETL/ELT pipelines, utilizing Google BigQuery, MSSQL, PostgreSQL, Shell scripting, PL/pgSQL, and Transact‑SQL, integrating data for efficient Python API processing.](https://engineer.company/portfolio/designed-implemented-and-administered-6-etl-elt-pipelines-8/)
- [Architected, created, and managed 100 PostgreSQL, MS SQL, and Google BigQuery data warehouse databases with primarily GIS and time‑series data, optimizing performance and scalability.](https://engineer.company/portfolio/architected-created-and-managed-100-postgresql-ms-sql-12/)
- [Architected a layered maritime platform separating a Next.js PWA frontend, a Go (Huma/Fiber) API, and a PostgreSQL function layer, keeping all business logic in the database.](https://engineer.company/portfolio/architected-a-layered-maritime-platform-separating-a-next-57/)
- [Designed a JSON passthrough architecture where PostgreSQL functions return complete JSON forwarded verbatim by the Go API, eliminating intermediate unmarshalling and decoupling the frontend from schema changes.](https://engineer.company/portfolio/designed-a-json-passthrough-architecture-where-postgresql-functions-58/)
- [Designed a PostgreSQL function‑first data layer — 1,275 stored functions across 34 schemas — so every read and write goes through a function the database can grant, rather than through a table.](https://engineer.company/portfolio/designed-a-postgresql-function-first-data-layer-across-63/)
- [Adopted UUID v7 time‑ordered identifiers (PostgreSQL 18) as entity keys to reduce B‑tree index fragmentation and speed up queries.](https://engineer.company/portfolio/adopted-uuid-v7-time-ordered-identifiers-postgresql-18-64/)
- [Implemented a catalogue‑driven deep‑merge for stored JSON preferences, preventing missing‑key crashes as the schema evolves.](https://engineer.company/portfolio/implemented-a-catalogue-driven-deep-merge-for-stored-65/)
- [Modeled the maritime domain into 348 normalized tables across 34 PostgreSQL schemas — professionals, companies, ships, jobs, reviews and the rest — with SMALLINT lookups and UUID v7 keys.](https://engineer.company/portfolio/modeled-the-maritime-domain-professionals-companies-ships-jobs-67/)
- [Built the payments and entitlements layer — Stripe alongside Apple and Google in‑app purchase — gating the directory, search and export through an 11‑table access model checked on the server.](https://engineer.company/portfolio/built-the-payments-and-entitlements-layer-96/)
- [Moved slow work off the request path onto a River job queue — 15 worker modules, 8 scheduled tasks and 20 pg_cron jobs — so a request returns while the work behind it carries on.](https://engineer.company/portfolio/moved-slow-work-onto-a-river-job-queue-97/)
- [Built first‑party product analytics in PostgreSQL — 47 functions over partitioned event tables that prune themselves — pseudonymised behind a rotating salt and gated on the visitor's consent.](https://engineer.company/portfolio/built-first-party-product-analytics-in-postgresql-101/)
- [Built the loyalty and reputation system — 67 functions over a 31‑table ledger, with leagues, badges and a redemption shop — taking a row lock on the balance to close the double‑spend window.](https://engineer.company/portfolio/built-the-loyalty-and-reputation-system-105/)
- [Built the hiring marketplace and the seafarer career workspace — 151 stored functions across 48 tables — covering vacancies, applications, certificates, rank progression and verified sea time.](https://engineer.company/portfolio/built-the-hiring-marketplace-and-career-workspace-107/)
- [Built a database‑driven CV, references, portfolio and cover‑letter generator in Python — 41 modules, 10,580 lines — rendering six output formats from one 23‑table SQLite source assembled by a 19‑step idempotent pipeline.](https://engineer.company/portfolio/built-a-database-driven-cv-and-portfolio-generator-144/)

<https://engineer.company/services/database-design/>
