Projects
04 / 04

Deployed AI product · 2026

Professional interview assistant

A generative AI assistant designed as a public service rather than an isolated demo: controlled retrieval, NDJSON streaming, sessions, queueing, usage limits and privacy sanitisation in one conversational experience.

01 / Overview

What it is and the problem it solves

A static resume forces every interviewer into the same level of detail and does not demonstrate how I build a generative AI product.

Public product for exploring my professional profile. Sessions live in one instance’s memory; horizontal scaling would require shared storage.

02 / How it works

How the system works

  1. 01

    A structured catalogue and controlled Markdown documents; the model must select sources before drafting an answer.

  2. 02

    FastAPI maintains ephemeral server-side sessions, limits history and streams NDJSON events for status, text, metrics and errors.

  3. 03

    A FIFO queue with two concurrent generations, per-IP limits and a monthly budget to protect availability and cost.

  4. 04

    Incremental output sanitisation, HttpOnly cookies and aggregate analytics only after consent.

03 / My contribution

What I did

I designed and developed the backend, document retrieval, model tools, streaming, sessions, interface, security, tests and deployment.

Main decisions

  • Keep conversation history on the server and limit context sent to the model.
  • Require source selection before answering and sanitize streamed output.
  • Control concurrency, queueing and request rate to protect cost and availability.

04 / Validation and outcome

How I checked the result

The suite verifies chat contracts, document selection, sessions, reset, cancellation, continuation after incomplete responses, concurrency, queueing, rate limits, budget controls and personal-data sanitisation. It also tests the CMS adapter and its last-known-good copy.

Project outcome

  • Contextual conversations with three detail levels and cancellation.
  • Recoverable partial answers and error references without leaking internals.
  • Docker service deployed with optional consent-based analytics.

05 / Lessons learned

What I learned during development

Publishing a chatbot means designing the system around the model: what it may read, how much context it receives, how cost is controlled, what happens when it fails and what information must never appear in an answer.