# Databases

> Selected Engineer ApS work demonstrating Databases — the achievements that prove it.

- [Directed full‑stack GIS map development, overseeing PostgreSQL, Mapbox, ReactJS, and NodeJS to deliver an integrated solution.](https://advisory.engineer.company/portfolio/directed-full-stack-gis-map-development-overseeing-postgresql-25/)
- [Led the development, deployment, and support of over 30 GIS projects, demonstrating expertise in PostgreSQL, Bash, Python, JavaScript, GDAL, ArcGIS, PostGIS, and Mapbox technologies.](https://advisory.engineer.company/portfolio/led-the-development-deployment-and-support-of-over-35/)
- [Set the platform's founding decisions in the weeks after the repository opened in November 2025 — the layering, database‑first data access and the zero‑warnings bar — and they still hold nine months on.](https://advisory.engineer.company/portfolio/set-the-platform-s-founding-decisions-in-november-2025-80/)
- [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://advisory.engineer.company/portfolio/built-the-payments-and-entitlements-layer-96/)
- [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://advisory.engineer.company/portfolio/built-the-loyalty-and-reputation-system-105/)
- [Built the platform's social layer — posts, feed, groups, mentions, a follower graph and an occasions digest — on the same function‑first data layer as the rest of the product.](https://advisory.engineer.company/portfolio/built-the-platform-s-social-layer-106/)
- [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://advisory.engineer.company/portfolio/built-the-hiring-marketplace-and-career-workspace-107/)
- [Held the generator to 981 test cases at a 92% branch‑coverage floor with warnings treated as failures, and asserted idempotence by running the whole build pipeline twice from an empty file and requiring the second pass to change nothing.](https://advisory.engineer.company/portfolio/held-the-generator-to-964-tests-and-a-coverage-floor-145/)
- [Wrote tests for the checkers themselves after establishing that a checker fed only clean input will one day report clean because it read nothing — planting a misspelling to confirm the spell‑check finds it, and taking an id range from the database rather than from a number in the test.](https://advisory.engineer.company/portfolio/wrote-tests-for-the-checkers-themselves-149/)

<https://advisory.engineer.company/categories/databases/>
