Skip to main content
itcrib — cover

Featured work

itcrib itcrib.com

IT interview-prep & e-learning platform — spaced repetition, gamification, RAG-grounded answers and an isolated code sandbox.

  • PHP 8.2 / Symfony 7.4
  • Nuxt 3
  • PostgreSQL 17 / pgBouncer
  • Meilisearch
  • RabbitMQ
  • Redis
  • Docker

The problem

Interview prep is a mess of scattered PDFs, stale blog posts and quiz apps that forget you the moment you close the tab. I wanted one place that teaches Go, PHP, Symfony, algorithms, system design and cloud — and actually remembers what I struggle with and brings it back at the right time.

Architecture

A decoupled monorepo: Symfony 7.4 / PHP 8.2 REST API (Controller/Api/V1) plus an EasyAdmin back-office, and a Nuxt 3 / Vue 3 SSR frontend. Data sits in PostgreSQL 17 behind pgBouncer, with Meilisearch for full-text search, RabbitMQ for async work, and Redis for caching.

The interesting parts:

  • Spaced-repetition engine (FSRS)ReviewLog, TopicMastery, UserStreak drive a personalised review schedule instead of dumb flashcards.
  • RAG-grounded content — a ContentEmbedding layer plus an AI mock-interviewer (“AI recruiter”).
  • Isolated coderunner — a dedicated sandbox service executes user code submissions, off by default and resource-capped.
  • A content pipeline compiles the same markdown corpus into printable interview handbooks via Python tooling.

Highlights

  • 50 Doctrine entities, ~35 services, 37 migrations, 34 API controllers — a broad, production-grade surface.
  • Security-hardened: JWT + refresh tokens, token encryption, OAuth state validation, cookie-consent modelling.
  • A 13-service Docker stack (php, coderunner, nginx, nuxt, postgres, pgbouncer, redis, meilisearch, rabbitmq, worker, backup…), health-checked; PHPStan clean, PHPUnit green.

Results

800+ markdown topics across 15 content domains, compiled both into the live platform and into a senior-interview handbook — the product and my own prep material are the same corpus.

Lessons

  • FSRS turns “I studied everything once” into “I remember the hard things”. Scheduling is the feature.
  • A code sandbox is 10% execution and 90% making sure it can’t touch anything it shouldn’t.