5 October, version 2 — Python Backend Engineer, regulated healthcare
Prep for the second tech check. The ad sets a 3+ year bar and is precise about
engineering practice — type hints, async patterns, project layout, API
evolution, contract tests, Git workflow — with a long preferred list that
reads like a healthcare or medical-device company. The raw ad is in
description.txt, which stays local.
It builds on version 1. The same resume went to both interviewers, so the self-intro changes only in emphasis, and every answer that applies unchanged is linked from version 1 rather than copied.
How this ad differs from version 1
| Version 1 | Version 2 | |
|---|---|---|
| Bar | 5+ years, senior | 3+ years |
| What it scores | architecture, scale, production ownership, mentoring | engineering practice — typing, async, layout, API evolution, contract tests, Git |
| Domain | healthcare, stated | implied by the preferred list — HIPAA, medical-device software, FHIR |
| Breadth | implied | named — Kafka, RabbitMQ, SQS, Pub/Sub, Kubernetes, Terraform, Pulumi, OpenTelemetry, Datadog |
You are over the bar, so the risk is not depth; it is sounding generic on the
practice questions this ad names precisely. “How do you use type hints?” wants
mypy in CI and a Protocol, not “for readability”.
The ad, decoded
| Ad line | What they will actually probe | Weight |
|---|---|---|
| modern type hints | Protocol vs ABC, generics, TypedDict vs Pydantic, mypy strict in CI | 🔴 |
| async patterns | TaskGroup vs gather, bounded concurrency, timeouts, cancellation, blocking the loop | 🔴 |
| idiomatic project layout | pyproject.toml, src layout, uv and a lockfile, Ruff, where tests live |
🔴 |
| FastAPI, Django or Flask in production | why one over the others; FastAPI DI and testing | 🔴 |
| designing and evolving REST APIs, OpenAPI | additive change, deprecation, versioning, pagination, error format, a spec diff in CI | 🔴 |
| PostgreSQL or MySQL, migrations, tuning | EXPLAIN, indexes, zero-downtime migrations, Postgres vs MySQL |
🔴 |
| pytest: unit, integration, contract | consumer-driven contracts vs schema checks, testcontainers, fixtures | 🔴 |
| Git, code review, trunk-based | short-lived branches, feature flags, branch protection, merge strategies | 🔴 |
| regulated environments | HIPAA and GDPR, ISO 27001 and SOC 2 evidence, medical-device software | 🟡 |
| Kafka, RabbitMQ, SQS, Pub/Sub | queue vs log, ordering, at-least-once, idempotent consumers, the outbox | 🟡 |
| Docker and Kubernetes | a good Python image, probes, requests and limits, graceful shutdown | 🟡 |
| OpenTelemetry, Datadog, Grafana, Sentry | instrumenting a service, correlation, sampling, cardinality | 🟡 |
| AI-assisted development | how you use it, where you don’t, how you review it — and no PHI in prompts | 🟡 |
| high throughput, low latency | measure first, the usual suspects, p99, load tests | 🟡 |
| deploying to a cloud through CI/CD | pipeline stages, deploy strategies, migrations in the deploy order | 🟡 |
| Terraform, Pulumi, CloudFormation | state, plan in CI, drift; Pulumi in a sentence | 🟢 |
| healthcare background, FHIR, HL7 | PHI handling; FHIR R4 basics, honestly framed | 🟢 |
Your evidence, and the honest gaps
The same two projects as version 1, read for this ad’s lines:
| Ad line | Automation Platform (Jan–Sep 2026) | Invest Planning Platform (Sep 2025 – Jan 2026) |
|---|---|---|
| framework, Python services | Flask; Python services on Lambda | FastAPI services |
| REST APIs | endpoints behind API Gateway | REST APIs and microservices |
| SQL and migrations | — (DynamoDB) | PostgreSQL and SQLAlchemy models |
| pytest | pytest | TDD — unit and integration |
| CI/CD to a cloud | GitHub Actions: SAM builds, images to ECR | Bitbucket CI/CD, Docker |
| infrastructure as code | AWS SAM — CloudFormation underneath | — |
| event-driven | Step Functions orchestration | SQS, SNS, Celery and Redis |
| observability | a real-time observability dashboard | Sentry |
| regulated, data-sensitive | Cognito SSO, Secrets Manager, cryptography |
regulated advice; audit and consent records |
Not on the resume: contract tests, Kubernetes, Kafka and RabbitMQ, Terraform and Pulumi, OpenTelemetry and Datadog, FHIR. Each answer in Answers, version 2 — say these out loud bridges from the nearest thing you did. Say “not in production” plainly, then show you know the mechanism — that is the answer a 3+ ad expects for its preferred list.
The files
| File | What it is | When |
|---|---|---|
| 5 October, version 2 — Python Backend Engineer — prep map | the checklist for this ad, linked to the notes, plus a walk-through to rehearse | the days before |
| Answers, version 2 — say these out loud | 16 new spoken answers, and links to the 19 that carry over from version 1 | the day before, aloud |
| The call, version 2 — what changes | the self-intro for this ad, the questions it adds, your questions | the day before, aloud |
| Last hour, version 2 — read this, then stop | one-liners and tables for this ad’s new ground | the hour before |
Refresh plan
If you already prepared version 1, this is the delta: the 16 new answers in Answers, version 2 — say these out loud, the self-intro in The call, version 2 — what changes, then Last hour, version 2 — read this, then stop.
A day or more. 5 October, version 2 — Python Backend Engineer — prep map, the 🔴 sections first,
then 02 and 03 aloud with every [bracket] filled in.
One hour. Last hour, version 2 — read this, then stop, then the self-intro twice, aloud. Nothing new.
The three things that decide it
- Be precise about practice. Name the tool, the setting and the reason:
strict mypy per package, squash merges,
--force-with-lease,asyncio.timeout(). Precision is what this ad is testing. - Bridge the gaps honestly. For anything on the preferred list you have not run in production, say so, explain the mechanism, and name the closest thing you did.
- Same discipline as version 1. 60 to 90 seconds, reasoned aloud, with a number in it where you have one.