yokla
Technical Interview Simulation PlatformA technical interview simulation you enter by picking seniority × field × specialization — then get scored and benchmarked.
Pick seniority × field × specialization, take a scored MCQ interview, and see where you land against everyone else — with progress tracking, practice mode and an optional AI coaching report. 25,000+ questions were AI-generated and put through a multi-layered, independent verification pipeline; the product itself has no runtime LLM dependency (MCQ + deterministic scoring, $0 runtime cost). I designed and built it end to end: architecture, backend, frontend, data model and deployment.
- Go 1.25 / Echo v5
- raw pgx (no ORM)
- PostgreSQL 18
- Nuxt 4 SSR / Vue 3
- Pinia
- Tailwind v4
- Voyage AI embeddings
- Gemini Flash-Lite
- Claude Haiku
- Docker Swarm
- GitHub Actions CI
- nginx + Cloudflare
- Prometheus + Grafana
- AI content generation plus independent verification: parallel generation forks → programmatic scans (language, "longest option" tell, topic alignment) → independent auditor + adjudication. Generation/verification on a cheap model, only adjudication on a strong one → ~4-5× cost cut.
- "Postgres-first, measure before adding": pgvector and Redis were rejected after measurement (cosine scan runs in seconds in Go, latency is RTT-bound). No needless production risk taken.
- One dataset, three uses: embeddings built with Voyage AI → dedup + in-interview diversity guard (1.7% unfiltered → 0/300 filtered) + topic auditing.
- JD → interview: embedding collapsed on job-post matching (.NET → devops); a provider-agnostic design let one adapter swap move it to a Gemini Flash-Lite classifier (~$0.00024/post); taxonomy is read from the DB → a new field means zero code.
- Optional AI coaching report (Claude Haiku): cached per (user, locale), every real call logs tokens + cost → ~$0.002/report; the feature turns off silently when no key is set.
- In progress: a verifiable yokla score — a shareable, independently checkable result credential.