Company A — Junior Strong / Middle Python Developer — prep map

Updated 10 min read source
On this page12
  1. The ad, decoded
  2. 🔴 Python fundamentals
  3. 🔴 WebSockets and real-time communication
  4. 🔴 Audio processing and streaming
  5. 🔴 Claude API — prompt design, structured outputs, tool calling
  6. 🔴 Web frameworks — FastAPI first
  7. 🔴 Relational databases, SQLAlchemy, SQL, data modeling
  8. 🟡 Code quality, documentation, data profiling
  9. 🟡 Data processing pipelines
  10. 🟡 Docker
  11. The design question to rehearse
  12. Behavioural — the Company A values as stories

Company A — Junior Strong / Middle Python Developer — prep map

Checklist format: tick what you can explain and defend under questioning, not what you have used. Bold is the primary note; the rest add depth.

Priority: 🔴 core (in the ad, will be probed) · 🟡 important (in the ad, lighter) · 🟢 breadth (implied)


The ad, decoded

Requirement What they will actually probe Weight
Python fundamentals, typing, async/await data model questions, a typed function, an event-loop mistake 🔴
WebSockets and real-time (streaming data or audio) design a persistent-connection service; backpressure; reconnection 🔴
FastAPI / Flask / Django FastAPI in depth: DI, async, WebSocket endpoint, testing 🔴
Audio processing and streaming (capture, convert, transmit; transcription) sample rates, PCM bytes, chunking, ffmpeg, an STT pipeline 🔴
LLM APIs, in particular Claude (prompt design, structured outputs, tool calling) the Messages API shape, the tool loop, JSON that validates 🔴
PostgreSQL / MySQL, SQLAlchemy, efficient SQL, data modeling N+1, indexes, EXPLAIN, session lifecycle, normalisation 🔴
Code quality, Google-style docstrings, data profiling linters/formatters, what a docstring must say, profiling a new dataset 🟡
Data processing pipelines (plus) pandas, idempotent steps, a queue 🟡
Docker basics image vs container, layers, compose, multi-stage 🟡
Quick learner, adaptable; English behavioural stories; the whole call is in English 🟡

The product this ad describes: a real-time voice/transcription service — audio in over a WebSocket, a speech pipeline, Claude in the middle, results back over the same connection, everything stored in Postgres. Prepare the whole system end to end (section “The design question”, below), not just the parts.


🔴 Python fundamentals

🔴 typing

🔴 async / await


🔴 WebSockets and real-time communication


🔴 Audio processing and streaming

Have the numbers ready: 16 kHz mono int16 = 32 KB/s; a 20 ms frame is 320 samples / 640 bytes; telephony is 8 kHz μ-law at 8 KB/s; base64 adds a third. Say them without looking and the “audio experience” line is covered.


🔴 Claude API — prompt design, structured outputs, tool calling


🔴 Web frameworks — FastAPI first


🔴 Relational databases, SQLAlchemy, SQL, data modeling


🟡 Code quality, documentation, data profiling


🟡 Data processing pipelines


🟡 Docker


The design question to rehearse

“Design a service that transcribes a live call and answers questions about it.” Walk it in this order, and link each step to a note you have read:

  1. Client captures audio → binary frames over a WebSocket with a start message declaring rate and encoding — Streaming audio over WebSockets.
  2. Server: reader task → bounded asyncio.Queue → STT stream task; partial/final transcripts back as JSON — asyncio.Queue, Connection management.
  3. Audio hygiene: 16 kHz mono int16, remainder buffer, VAD gating — Audio fundamentals.
  4. Finals go to Claude with a stable system prompt, structured output for the answer, tool calls for lookups — Claude Messages API.
  5. Persist transcripts and answers in Postgres via SQLAlchemy async sessions; index by call and time — Async SQLAlchemy, Indexes.
  6. Ship it: Docker image, one process per connection, sticky sessions, metrics — Scaling, Deployment.

Then name the failure modes unprompted: slow work in the reader, unbounded buffers, interim transcripts stored as final, a date in the system prompt killing the cache, N+1 when listing calls.


Behavioural — the Company A values as stories

Value Story to have ready Notes
Growth how you learned a new stack fast and what you did on day one Approaching new technologies · How do you work with AI
Teamwork a disagreement resolved with data, a review that improved the code Disagreement with the team · Mentoring and feedback
Ownership a mistake you owned, and the process change after it A failed project or mistake · Handling not knowing
Openness ambiguous requirements you clarified before building Ambiguity and unclear requirements · Working with clients
Results a result with a number in it Strongest project · Most challenging part

English: the whole call is in English. Rehearse the design walk-through above aloud, in English, twice — the ad’s English-level line is scored on exactly that.