Vit Busek

Co umím a čím to dokládám

U každé dovednosti níž stojí nasazené projekty, které ji dokládají. Štítek vede rovnou do běžící aplikace, a když není co otevřít, na stránku projektu.

Databáze a data

Postgres

schéma, indexy, migrace

Drizzle ORM

typované schéma, generované migrace

Fulltextové vyhledávání

trigramy pg_trgm a generované tsvector sloupce indexované dvakrát — simple na identifikátory, english na běžný text

Práce na pozadí

měsíční cron, fronty jištěné advisory lockem, backfill s retry a backoffem, rozdělaná práce přežije pád

AI a vyhledávání

Generování opřené o vyhledávání

tři větve — vektorová, identifikátorová a BM25 nad textem — spojené reciprocal rank fusion; když se nic nenajde, otázku odmítne, místo aby si odpověď domyslel

Vektorové vyhledávání

pgvector s HNSW indexem na kosinovou vzdálenost nad 384rozměrnými embeddingy počítanými v procesu, takže indexovaný text nikdy neopustí kontejner

Integrace LLM

čtyři poskytovatelé odpovědí za jedním rozhraním, se stropem útraty na uživatele i na celé nasazení kontrolovaným dřív, než hovor může něco stát

Obrana proti prompt injection

nalezený text cestuje uvnitř značek, které píše aplikace, cokoli tvaru značky se escapuje místo mazání a citace se ověří dřív, než odteče první slovo odpovědi

Anonymizace osobních údajů

jména, e-maily a telefonní čísla se změní v zástupné značky dřív, než cokoli překročí hranici sítě; mapa zpátky žije v požadavku a s ním i zaniká

Backend a integrace

FastAPI

typované routy, servisní vrstva

API třetích stran

Steam, TMDB, OpenRouter, s invalidací cache podle tagů a endpointem pro okamžité vyprázdnění

Auth

přihlášení přes OAuth a session, a OIDC proti Keycloak realmu s rolemi čtenými z tokenu

Frontend

React a Next.js

App Router, server komponenty jako výchozí

Streamované UI

server-sent events pro živé ceny, NDJSON pro odpovědi slovo po slovu

Přístupné ovládání

drag and drop ovladatelný klávesnicí, s ARIA rolemi, které ten vzor skutečně vyžaduje

Design systémy

Tailwind v4, sémantické tokeny, žádné dark: varianty

Dodávka

Testování

unit, integrační a end-to-end v Playwrightu — a 170 testů na samotném Node runneru, bez nainstalovaného testovacího frameworku

Docker

vícefázové buildy, jeden origin, žádná CORS vrstva; compose soubor, který zvedne aplikaci, její databázi a identity providera pohromadě

CI/CD

typecheck, lint a obě sady testů u každého pull requestu