← projects

2024·Mindenit
Schedule API
Co-developer
NestJS rewrite of a Fastify API. 17-table PostgreSQL schema in Drizzle, CTE pre-filter eliminating a Cartesian product, Redis-backed shareable links.
NestJSPostgreSQLDrizzleRedisTypeScriptDocker
The original Fastify service had grown organically and carried a Cartesian product in event lookups that made response times unpredictable under load.
Rewrote it in NestJS with one other developer and redesigned the data model: 17 tables in Postgres, managed through Drizzle. The Cartesian product went away via a CTE pre-filter that narrows the result set before joins — a targeted fix with a large impact on query plans.
Redis backs two features: shareable timetable links with configurable TTL, and per-user rate limiting on link generation. Runs in Docker, CI on GitHub Actions.