Interview questions

Python developer screening questions: Python 3 versions, Django and FastAPI, packaging, async and tests

On this page
  1. Which Python developer job is it?
  2. Which versions and certifications should you check?
  3. Knockout questions
  4. Python depth questions
  5. Testing, deployment and code quality questions
  6. How does Python experience get overstated?
  7. A 15-minute phone-screen flow
  8. Scoring
  9. What to put in the submittal
  10. Lawful phrasing
  11. Questions people ask

Python developer screening questions should find out what kind of Python the candidate writes (web back ends in Django, FastAPI or Flask; automation and internal tools; data pipelines; or machine learning), which Python 3 version and libraries they ran in production, and whether they own the things that keep Python code reliable: dependencies and packaging, type checking, tests and async code. As of November 2026, Python 3.14 and 3.15 receive bug fixes, 3.11 to 3.13 receive security fixes only, and 3.10 reached end of life in October 2026, so "which version did your last project run, and how did you upgrade it?" is a quick test of real ownership. No license applies, and the Python Institute's exams show study rather than production work.

The general engineering screen is in software engineer phone screen questions. If the role is mostly pipelines and SQL, use the data engineer phone screen questions; if it is models in production, use the machine learning engineer screening questions. This page is for developers who write and ship Python applications, services and tools; to source them, see the Boolean search strings for Python developers.

Which Python developer job is it?

SeatWhat the work usually isAsk the candidate
Web back endAPIs and web apps in Django, FastAPI or Flask, with a database, background jobs and an ASGI or WSGI server"Which framework and version, and which endpoints or models did you design?"
Automation and internal toolsCommand-line tools, integrations between systems, infrastructure and test automation"Who used your tool, and how was it installed and updated for them?"
Data pipelinesExtract and load jobs, orchestration, SQL, data quality checks"Did your code run on a schedule in production, and who was paged when it failed?"
Machine learningTraining and serving models, feature code, evaluation"Did a model you worked on serve real traffic?"
Scientific or quantitativeNumPy, pandas and research code, often in notebooks"Did this code run in production, or in notebooks for analysis?"
Test automationpytest frameworks, browser and API testsAdd the QA engineer phone screen questions.

Ask the hiring manager for the Python version, the framework and its version, how code is packaged and deployed, whether the codebase is type-checked, and whether the role carries on-call. "Python developer" ads often list a web framework, a data stack and a cloud at once; find out which one the first six months actually need.

Which versions and certifications should you check?

As of November 2026. We checked these on python.org, the Django project's site and the Python Institute's own pages. Release dates and support windows move; check again before you put a version in a job ad.

  • Python versions. The Python developer guide shows 3.14 (first released October 2025) and 3.15 (October 2026) in bugfix status, 3.11, 3.12 and 3.13 in security status, and 3.10 at end of life since October 2026, with 3.9 having ended in October 2025. Python.org says Python 2 was sunset on January 1, 2020.
  • Removed modules. PEP 632 says code that imports distutils no longer works from Python 3.12, and the What's New in Python 3.13 page lists 19 legacy standard library modules removed in 3.13, including cgi, crypt and telnetlib. These are the kinds of breakage a developer who really upgraded will mention.
  • Django. The Django project's download page shows 4.2 LTS out of support since April 7, 2026, 5.2 LTS supported until April 2028, 6.0 and 6.1 as current feature releases, and 6.2 LTS planned for April 2027.
  • Free-threaded Python. PEP 779 set the criteria under which the free-threaded build, without the global interpreter lock, became officially supported but still optional in Python 3.14. The standard build still has the GIL, so a candidate who says they "removed the GIL" in production should be able to say which build they ran and which libraries supported it.
  • Python Institute exams. The Python Institute's certification roadmap lists PCEP (Certified Entry-Level Python Programmer), PCAP (Certified Associate Python Programmer) and PCPP1 (Certified Professional Python Programmer 1) as active, plus entry-level tracks for data analysis, testing and security. They are optional; if a client asks for one, ask the candidate for the credential record and check the name and date.

Knockout questions

QuestionStrong answerRed flag
1. The team runs Python [version] with [framework and version]. Which Python 3 versions and frameworks have you shipped to production?Versions tied to products: "FastAPI on 3.12 for our pricing service; Django 5.2 for the admin app."Only notebooks or coursework, for a production service role.
2. Over the last two years, what kind of Python made up most of your work: web, automation, data or machine learning?A clear split with an example of each.A long list of libraries with no main area.
3. The role is [remote, hybrid or on site], with [overlap hours] and [on-call pattern]. Does that work?A clear yes, or a specific limit said now.Expects no production support for a service the team runs.
4. Are you legally authorized to work in the US, and will you now or in the future need visa sponsorship?A direct answer to both, asked of every candidate the same way.None from the answer itself. See work authorization questions in interviews.

Python depth questions

  1. "Tell me about the last Python or framework upgrade you did. What broke?"
    • Strong answer: a from-and-to version and a specific problem: a removed module, a dependency without a wheel for the new version, a Django deprecation, a test that started failing, and how they rolled it out.
    • Red flags: still on an end-of-life version with no plan, or "we just changed the version number."
  2. "How were dependencies managed and installed on your last project?"
    • Strong answer: a pyproject.toml, a lock file or pinned requirements (pip-tools, Poetry or uv), isolated environments, a container build, and a story about a library release that broke something.
    • Red flags: installs whatever is latest on the server, or has never seen a lock file.
  3. "Where did you use async code, and what went wrong?"
    • Strong answer: asyncio or FastAPI for I/O-bound work, a blocking call that froze the event loop, and when they chose threads, processes or a task queue instead.
    • Red flags: "async makes everything faster."
  4. "Do you use type hints, and how are they checked?"
    • Strong answer: a type checker such as mypy or pyright running in CI, typed models with Pydantic or dataclasses, and a bug the checker caught.
    • Red flags: hints in some files that nothing ever checks.
  5. "Tell me about slow Python code you made faster."
    • Strong answer: profiled first (cProfile, py-spy or a tracing tool), found the cause (a loop over rows that should have been one query, repeated work that could be cached, CPU-bound work in threads), and gives a before and after.
    • Red flags: "Python is just slow," with no measurement.
  6. "How did you keep the code and its dependencies secure?"
    • Strong answer: dependency scanning (pip-audit or the platform's own), parameterized queries or the ORM instead of string-built SQL, secrets outside the repository, and care with package names copied from the web.
    • Red flags: credentials committed to the repository, described without concern.

Testing, deployment and code quality questions

QuestionStrong answerRed flag
What did you test, with what, and what did you leave untested?pytest with fixtures and factories, tests against a real database for queries, mocks only at the edges, and a reason for the balance."I test it by running it."
How were formatting and linting enforced?A formatter and linter (for example Black or Ruff) in pre-commit hooks or CI, so reviews discuss logic.No shared standard on a team codebase.
How did your Python service run in production?A container, an application server such as Gunicorn or Uvicorn, a deploy pipeline and a rollback they have used.Logs into the server and pulls the latest code by hand.
How did background jobs work, and what happened when one failed?A task queue (Celery, RQ or a cloud service), retries, idempotent tasks, and an alert on failures.Jobs fail silently and someone notices days later.
Tell me about a pull request that was sent back to you.What the reviewer found, what they changed, and what they do differently now.Never had one sent back, or takes review as criticism.

If the next stage is a coding exercise, keep it short, relevant and scored the same way for every candidate; see how to evaluate a take-home assignment.

How does Python experience get overstated?

  • Notebooks as production. Analysis in notebooks described as building applications. Ask where the code ran and who used it.
  • Scripts as systems. A few automation scripts listed as "built a Python platform." Ask how it was installed, tested and supported.
  • Framework by tutorial. Django or FastAPI from a course project. Ask about a migration, an authentication bug or a slow query in their own app.
  • The data science list. pandas, NumPy and scikit-learn on a resume for a web role. Ask which the last job used every week.
  • Python 2 maintenance as current work. Ask what was migrated and when.
  • "Built an AI app." Often a script that calls a model provider's API. Ask what they built around the call: data, evaluation, error handling, cost limits.
  • Team results as personal. Ask for the baseline, the change and who else worked on it.

A 15-minute phone-screen flow

  1. Minutes 0 to 2: the product, the Python and framework versions, how it is deployed, the working pattern.
  2. Minutes 2 to 5: knockouts 1 to 4.
  3. Minutes 5 to 10: the upgrade question, then dependencies or async depending on the role. Write down versions and tools in their words.
  4. Minutes 10 to 13: one testing question and one deployment question.
  5. Minutes 13 to 15: pay expectations (see salary expectation questions), notice period and next steps.

Scoring

Pass or fail

  • Has shipped Python 3 code of the role's kind (web, tools, data or ML) to real users.
  • Has used the team's framework, or the client accepts ramp-up.
  • Accepts the working pattern and any on-call.
  • Answers the work authorization questions in a way that fits the role.

Scored 0 to 2 each (10 possible)

  • Versions and upgrades: knows what they ran and has upgraded something real.
  • Dependencies and packaging: pinned, reproducible installs.
  • Code quality: type checking, linting and review.
  • Testing and deployment: tests at more than one level, a pipeline and a rollback.
  • Ownership: specific stories with numbers, not "we" throughout.

What to put in the submittal

Python developer: [name]
Kind of Python: [web / tools and automation / data / ML], main area last 2 years
Versions in production: [e.g. 3.11 to 3.13], framework [Django 5.2 / FastAPI / Flask]
Upgrade story: [from-to, what broke, how tested]
Dependencies: [pyproject and lock file / pinned requirements / other]
Typing and quality: [type checker in CI yes or no], [formatter and linter]
Testing: [pytest, what was covered]
Deployment: [container, server, pipeline, rollback]
Performance story: [problem, tool, cause, before and after]
Candidate's own gap: [e.g. "no async in production; Django only, not FastAPI"]

Lawful phrasing

Keep the questions on the work: versions, systems, results and how recent they are. Do not ask for graduation years or describe the team as "young"; the age discrimination guide explains why those comments cause trouble. Ask the sponsorship question the same way of every candidate and never ask about citizenship or national origin. If the role is fully remote and the client verifies identity (the FBI's January 2025 public service announcement on North Korean IT workers recommends it during interviewing and onboarding), use the same steps for everyone, as in how to verify candidate identity on a phone screen. Offer accommodations for any coding exercise on request, and see illegal interview questions for the full list to avoid. This page is not legal advice.

Questions people ask

Does a Python developer need a certification?

No. There is no license for Python development and most employers do not require a certification. As of November 2026, the Python Institute's roadmap lists PCEP (Certified Entry-Level Python Programmer), PCAP (Certified Associate Python Programmer) and PCPP1 (Certified Professional Python Programmer 1) as active exams. They are useful signals for career changers, but production code, upgrades and tests matter more.

Which Python version should a Python developer be using in 2026?

A supported Python 3 release. As of November 2026, the Python developer guide shows 3.14 and 3.15 receiving bug fixes, 3.11 to 3.13 receiving security fixes only, and 3.10 at end of life since October 2026. Python 2 was sunset on January 1, 2020. A candidate should know which version their last project ran and how it was upgraded.

What is the difference between a Python developer and a data engineer?

A Python developer usually builds applications, APIs, tools or automation in Python, while a data engineer builds and runs data pipelines, often with Python plus SQL, an orchestrator and a warehouse. Many people do some of both, so ask what their code produced: a running service, a tool other people used, or tables other teams queried.

How can a non-technical recruiter screen a Python developer?

Ask for stories you can check for specifics rather than definitions: the last version or framework upgrade and what broke, how dependencies were pinned and installed, a performance problem they measured and fixed, and what their tests covered. Developers with real ownership name versions, tools, numbers and mistakes without being prompted.