Python Developer Valentina Restrepo
Python Developer
[email protected] | (919) 555-1846 | Raleigh, United States
Profile
Python developer with eighteen months building internal tools for a clinical data services company, working in a Django codebase on CPython 3.11 behind an ingest queue that moves about 40,000 lab result records a day. Rewrote a nightly reconciliation job from a 900-line script into a tested module at 84 percent line coverage, cutting its runtime from 51 minutes to 9 and ending the weekly manual rerun. Work in pytest, type hints checked with mypy, and Git-based review.
Work Experience
08/2017 - Present, Python Developer, Longleaf Data Services, Durham, United States
- Work in a Django codebase on CPython 3.11 behind an ingest queue that moves about 40,000 laboratory result records a day for 6 client laboratories.
- Rewrote a nightly reconciliation job from a 900-line script into a tested module at 84 percent line coverage; runtime fell from 51 minutes to 9 and the weekly manual rerun stopped.
- Added 96 pytest cases and type hints checked with mypy to the manifest parser, which had no tests when I inherited it.
- Built a Celery task that retries failed vendor uploads with backoff, replacing a support ticket that was raised about 12 times a month.
06/2016 - 08/2016, Software Engineering Intern, Longleaf Data Services, Durham, United States
- Wrote a Python command line tool that validated incoming laboratory manifests against a published schema, later folded into the ingest service.
Education
08/2013 - 05/2017, Bachelor of Science, Computer Science, North Carolina State University, Raleigh, United States
Coursework in algorithms, operating systems, databases and statistics. Senior project was a Python pipeline that reconciled two laboratory record systems.
Skills
Python and CPython 3.11, 70
Django, 65
pytest and test fixtures, 70
Type hints and mypy, 60
Celery and Redis, 55
PostgreSQL and SQL, 65
Git and pull request review, 75
Docker basics, 55
Languages
English, native
Spanish, native
Portuguese, intermediate
Certificates
05/2018, AWS Certified Cloud Practitioner, Amazon Web Services, AWS-CCP-8814072
Foundational certification in AWS services, billing and shared responsibility.
Summary
A Python developer resume is a one to two page document naming the interpreter versions you shipped on, how your code reached production, and what you did about the service stuck on a runtime that had stopped receiving fixes. This guide gives you three adaptable versions, the runtime block almost no applicant writes, and current Bureau of Labor Statistics pay for the published occupation this work sits inside.
Python Developer resume examples by experience level
In short, a Python developer resume is a one to two page document naming the interpreter versions you shipped on, how your code reached production, and what you did about the one service that was stuck on a runtime nobody was patching any more.
However, almost every resume for this job says "Python 3" and stops there. That is not a version. It covers seven separately maintained minor releases, and the distance between a team on the current release and a team still on an interpreter that went out of support last year is most of what the job is actually like.
Resume guide for a Python developer resume
Specifically, this guide and the corresponding Python developer resume example will cover:
- First, how to write a Python developer resume, section by section
- Then why the interpreter version belongs on the page and "Python 3" does not
- Also, three adaptable summaries: first Python role, working developer and staff level
- Finally, what the release and support rules at python.org mean for how you date a line
- What the market looks like when the Handbook publishes no profile under your title
How to write a Python developer resume
To start, plan six sections: contact header with a title line, summary, a runtime and stack block, experience, skills, and education with certifications. Keep one page for your first four years, then two once you own services other teams call.
| Section | What it is answering | Where it goes |
|---|---|---|
| Title line | Scripts, services, or the platform underneath them? | Directly under your name |
| Summary | What did you build, on what interpreter, at what volume? | Three or four lines |
| Runtime and stack block | Do you know what your code actually runs on? | Its own block, above or beside skills |
| Experience | What did each service replace, and what changed? | Reverse chronological, with numbers |
| Skills | Which libraries did you operate, not just import? | Grouped, kept short |
| Education | Does the file clear a degree filter? | Last, with certifications |
Write down four numbers before you write a line of the resume
Open the repository you know best and find four things: the exact interpreter version in its Dockerfile or pyproject file, the records the service handles in a day, how long its test suite takes, and the oldest direct dependency pin and the reason for it.
Nobody produces those from memory, which is why they work. One applicant writes "developed Python applications". Another writes "a FastAPI service on CPython 3.12 handling 2.4 million records a night, 6 minute test suite, pinned to an older NumPy until the sequencing vendor shipped wheels", which nobody can say without having done the job.
Run the finished file through the ATS resume checker before you submit. Python postings draw very high application volume, and software parses them into a structured record before a person opens them.
Choosing the best resume format for a Python developer resume
Reverse chronological. In other words, one page for your first four years, two once you have owned a service through a runtime migration, led a team, or maintained a package other teams depend on.
By contrast, functional and skills-based formats fail badly here. A Python resume that leads with a keyword list and hides the timeline reads as someone who has used a language rather than shipped with it, and the interview will be built entirely on what you shipped and when.
Include your contact information
| ✅ Right | ❌ Wrong |
|---|---|
| Valentina Restrepo | Valentina Restrepo |
| Python Developer, backend services and data pipelines | Passionate Pythonista and code enthusiast |
| Ships on CPython 3.12 and 3.13, packaging with uv and Docker | Python 3, expert level |
| (919) 555-1846, [email protected], Raleigh, NC | (919) 555-1846, [email protected] |
Put a code link on the page if you have one worth reading, and say in one line which repositories are yours and what they do. Similarly, a bare profile link is worth very little.
Make use of a summary
Next, write four lines: what you build, the interpreter and deployment shape, the volume, and one outcome with a number attached.
Python developer with eighteen months building internal tools for a clinical data services company, working in a Django codebase on CPython 3.11 behind an ingest queue that moves about 40,000 lab result records a day. Rewrote a nightly reconciliation job from a 900-line script into a tested module at 84 percent line coverage, cutting its runtime from 51 minutes to 9 and ending the weekly manual rerun. Work in pytest, type hints checked with mypy, and Git-based review.
Backend Python developer with seven years on clinical and genomic data pipelines, currently on FastAPI and Celery services running on CPython 3.12 that process about 2.4 million sequencing records a night. Led the move of six services from 3.9 to 3.12 over eleven weeks, including the vendored driver that had pinned the oldest of them for two years. Write typed code checked in continuous integration and own the on-call rotation for the services I build.
Staff Python developer with nine years building and operating data services, responsible for the interpreter and dependency policy across 31 repositories at a genomics laboratory. Standardized the fleet on CPython 3.12 and then 3.13, retiring three unsupported runtimes, and replaced hand-maintained requirements files with locked builds that made a clean rebuild reproducible for the first time. Maintain two internal packages other teams import and mentor four developers.
Right vs wrong: the same Python developer summary, twice
| ✅ Right | ❌ Wrong |
|---|---|
| Backend Python developer with seven years on clinical and genomic data pipelines. | Passionate Python developer with a love of clean, elegant code. |
| FastAPI and Celery services on CPython 3.12 processing about 2.4 million records a night. | Experienced with a wide range of Python frameworks and libraries. |
| Led the move of six services from 3.9 to 3.12 over eleven weeks, including a vendored driver pinned for two years. | Strong problem-solving skills and a commitment to best practices. |
Outline your Python development experience
Employer, sector, dates, then one line describing the system before any bullet: what it does, what it runs on, how much it moves. Additionally, in experience, write three to five bullets each, every one naming a service, a library or a source system and carrying a number.
| Instead of | Use |
|---|---|
| Developed Python applications for the business | Own 4 FastAPI services on CPython 3.12 that ingest 2.4 million sequencing records a night for 14 laboratory sites |
| Improved application performance | Replaced a row-by-row pandas loop with a chunked vectorized pass; the nightly variant annotation job fell from 4 hours 10 minutes to 38 minutes |
| Wrote unit tests | Took the ingest package from 31 percent to 88 percent line coverage across 214 pytest cases |
| Upgraded Python | Moved 6 services from 3.9 to 3.12 in eleven weeks, unpinning 23 dependencies and replacing 2 abandoned ones |
Staff Python Developer, Carolina Sequence Labs, Raleigh, NC, August 2024 to Present
Own the Python platform for a clinical genomics laboratory: 31 repositories, 12 deployed services, a nightly pipeline annotating about 2.4 million sequencing records for 14 sites.
Standardized the fleet on CPython 3.12 and then 3.13, retiring three runtimes that had stopped receiving fixes. The longest holdout was a variant caller pinned to an old scientific stack; I isolated it behind a documented interface and ran it in its own container rather than blocking the other 30 repositories on it.
Replaced hand-edited requirements files with locked, hash-verified builds across all 31 repositories. A clean rebuild from an empty cache dropped from about 11 minutes to 3 and became reproducible.
Maintain two internal packages, a typed laboratory information system client and a manifest validator, imported by 19 of the 31 repositories. Mentor four developers and run the Python review rotation.
Which Python you shipped on, and what you did about the one you were stuck on
In practice, this is the section almost nobody writes, and it is the fastest way to separate a Python developer from someone who has finished a Python course.
Start with the rule that governs the whole language, because most applicants have never read it. For example, PEP 602, "Annual Release Cycle for Python", is an active process document and it says feature versions are released every twelve months, in October every year. Each release then gets twenty four months of bugfix updates followed by thirty six months of security-only updates, five years in total, a schedule that applies from Python 3.13 onward; Python 3.9 through 3.12 ran on the older calendar of eighteen months of full support followed by forty two months of security fixes (PEP 602, python.org).
Then the Python Developer's Guide at python.org publishes the result as a live table. As of 17 September 2026 it shows Python 3.14 and 3.13 in the bugfix phase, Python 3.12, 3.11 and 3.10 receiving security fixes only, Python 3.10 reaching end of life in October 2026, Python 3.9 already ended on 31 October 2025, and Python 3.15 scheduled for 1 October 2026 (Python Developer's Guide, python.org, retrieved 17 September 2026).
What the Python support calendar means for hiring
Read that as a hiring fact. Every year one interpreter version stops receiving fixes while a large number of production services are still on it, and somebody has to move them. As a result, the resume line that gets read twice is not "Python 3". Instead, it is the version you shipped on, and the story of the one you were stuck on.
Seven facts describe the runtime you actually worked in, and a reader can test every one of them.
| The fact | Why the reader wants it | Example |
|---|---|---|
| Interpreter and minor version | Separates a live codebase from a course project, and dates your experience honestly | CPython 3.12 in production, 3.13 in the newest two services |
| How dependencies are resolved and locked | Whether a clean rebuild is reproducible | uv with a committed lock file and hashes, previously pip-tools |
| The oldest pin and why it exists | You can read a constraint rather than complain about one | An old NumPy held by a sequencing vendor's compiled wheels |
| Packaging and deployment shape | A wheel, a container and a serverless runtime are different problems | Multi-stage Docker build on a slim base, 340 MB image |
| Typing and its enforcement | "Type hints" and "mypy failing the build" are not the same claim | Fully annotated, mypy strict on the ingest package |
| Concurrency model, where it matters | Where Python's real constraints live | Async I/O in FastAPI, Celery for the batch fan-out |
Writing up a Python runtime migration
Then write the migration in five sentences: what you moved from and to, how many services, how long it took, the dependency that was hardest and what you did about it, and what the move bought you. Both endings are usable. Getting off an unsupported runtime is a good story, and so is deciding you could not, isolating the service that was stuck and unblocking everything else.
Runtime: CPython 3.12 across 12 deployed services, 3.13 in the two newest. Retired 3.9 and 3.10 in 2025.
Migration: moved 6 services from CPython 3.9 to 3.12 over eleven weeks. Unpinned 23 dependencies, replaced 2 no longer maintained, and rewrote 41 test cases that relied on dictionary ordering rather than asserting it. The blocker was a vendor sequencing driver with compiled wheels built only for the older runtime; I isolated it behind a documented interface and ran it in its own container until the vendor shipped new wheels eight months later.
Packaging: uv with committed, hash-verified lock files across 31 repositories, migrated from hand-edited requirements files. Multi-stage Docker builds on a slim base, 340 MB images, down from 1.9 GB.
Typing and tests: fully annotated, mypy in strict mode failing the build on the ingest and manifest packages, 214 pytest cases at 88 percent line coverage, 6 minute suite. Concurrency: async I/O in FastAPI, Celery with Redis for the nightly fan-out across 14 laboratory sites.
If you inherited the stack, say inherited. Also, if the platform team ran the container build, write "published to" rather than "built". Everything in this block is checkable in ten minutes of a screen share, and that is why it carries weight.
Build a snapshot of your key Python developer skills
Later, in skills, list twelve to eighteen entries in four groups, the standard library and language group first. Then name libraries you have debugged in production, not ones whose documentation you have read.
Language and runtime: CPython 3.11 to 3.14, type hints and mypy, dataclasses, context managers, asyncio, generators and iterators, the profiling and tracing tools in the standard library
Frameworks and services: FastAPI, Django, Flask, Celery, SQLAlchemy, Pydantic, REST and OpenAPI contract design
Data and scientific stack: pandas, Polars, NumPy, PyArrow and Parquet, Great Expectations style validation, chunked processing of files too large for memory
Build, test and operations: pytest and fixtures, coverage measurement, uv and pip-tools, Docker multi-stage builds, GitHub Actions, structured logging and OpenTelemetry tracing, PostgreSQL and Redis
List your education and certifications
Degree first if you have one, then certifications with the issuing body and the date, then the code or packages anyone can read.
Meanwhile, a bachelor's degree is the typical entry-level education for software developers, quality assurance analysts and testers, and the Handbook lists no related work experience and no on-the-job training as typical for entry (BLS Occupational Outlook Handbook, retrieved 17 September 2026). Python itself has no license and the Python Software Foundation does not certify developers, so evidence fills that space: repositories, packages, contributions and the runtime block above.
Bachelor of Science, Computer Science, North Carolina State University, Raleigh, NC, 2019
Certifications: AWS Certified Developer Associate, Amazon Web Services, earned March 2023, renewed February 2026. Certified Kubernetes Application Developer, Cloud Native Computing Foundation, earned 2024.
Code: maintainer of two internal packages imported by 19 repositories. Contributor to an open source manifest validation library, 14 merged pull requests since 2023, including the fix for the timezone-naive parsing defect in release 2.4.
Choose the right layout and design
Finally, keep the format plain: single column, 11 point body type, plain headings, no photograph, no skill rating bars, no logo strip of technologies. Applicant systems parse the file into a structured record before a person opens it, and two columns and text boxes are where that breaks.
Name the interpreter and minor version you shipped on. Give the migration as a before, an after and a duration. Say which dependency pinned you and what you did about it. Name libraries rather than categories. Give one number per experience bullet. Say what each system replaced.
Do not write "Python 3" and expect it to mean something. Do not list every library you have imported once. Do not claim you built the deployment pipeline the platform team runs. Do not use skill percentage bars. Do not put a code block on the page. Do not describe an inherited codebase as one you designed.
Python developer job market and outlook
The Bureau of Labor Statistics publishes no Occupational Outlook Handbook profile under the title Python developer, and none under any programming language, so there is no employment count or ten-year projection carrying that name.
The Handbook classifies by the work rather than the tool, so this job sits inside one large published occupation: software developers, counted with quality assurance analysts and testers.
| Measure | Value |
|---|---|
| Software developers, QA analysts and testers, jobs 2025 | 1,905,400 |
| Projected change, 2025-35 | 10 percent, much faster than average, +185,400 |
| Projected annual openings | About 106,100 |
| Typical entry-level education | Bachelor's degree |
| Related work experience required | None |
| Median annual wage, software developers, May 2025 | $135,980 |
Source: U.S. Bureau of Labor Statistics, Occupational Outlook Handbook, May 2025 wage data and 2025 to 2035 projections, published 27 August 2026.
The occupation is growing, and the interpreter still turns over every October
Employment of software developers, quality assurance analysts and testers is projected to grow 10 percent between 2025 and 2035, much faster than average, adding 185,400 jobs and producing about 106,100 openings a year (BLS Occupational Outlook Handbook, 2025 to 2035 projections, published 27 August 2026). The wider computer and information technology group carried a median annual wage of $109,470 in May 2025.
Set that against the language's own schedule. PEP 602 puts a new Python feature release in October every year, each supported for five years in total (PEP 602, python.org), so one interpreter version leaves support every year on a published date, whether or not the services running on it have moved.
Those two facts together are the argument for the runtime block: in a growing occupation with high application volume, the migration paragraph is the part most applicants cannot write.
Where the jobs sit, for software developers:
| Industry | Share of employment | Median annual wage (May 2025) |
|---|---|---|
| Computer systems design and related services | 29% | $132,050 |
| Finance and insurance | 11% | $135,460 |
| Software publishers | 10% | $164,550 |
| Manufacturing | 8% | $136,330 |
| Management of companies and enterprises | 6% | $135,680 |
Source: U.S. Bureau of Labor Statistics, Occupational Outlook Handbook, May 2025.
What salary you can expect as a Python developer
No published median wage attaches to the title Python developer, because the Handbook has never defined an occupation by the language its holders write in, and a figure invented for a title BLS does not recognize is not one to take into a negotiation.
Negotiate against the published occupation instead. For reference, software developers earned a median of $135,980 in May 2025, with the lowest 10 percent under $82,460 and the highest 10 percent over $214,670. By comparison, software quality assurance analysts and testers, counted in the same Handbook profile, earned a median of $104,300 (BLS, May 2025).
However, the industry table above holds the largest single move. For instance, software publishers employed 10 percent of software developers at a median of $164,550, against $132,050 in computer systems design and related services, which employed 29 percent. That is a $32,500 difference at the median between the sector most developers work in and the one that pays most, decided by which job you apply for rather than by any negotiation.
Inside a band, three things move an offer: whether you operate what you build, whether you own an interpreter and dependency policy or follow one, and whether you have taken a service through a runtime migration end to end. Finally, the third is rarest, and it is what the block above exists to prove.
Key takeaways for a Python developer resume
- Above all, name the interpreter and minor version you shipped on; "Python 3" says nothing.
- Give the migration as a before, an after, a duration and the dependency that fought you.
- Say how you lock dependencies, because it tells a reader whether your builds are reproducible.
- Put a number in every experience bullet, tied to a service or a source system.
- Name libraries rather than categories, and only ones you would defend for ten minutes.
- Say what each system replaced, not only what you built.
- Keep it single column and parseable; software reads the file before a person sees it.
Build your Python developer resume in 15 minutes with our AI resume builder.
Related information technology resume examples
- Software developer resume
- Software engineer resume
- Full stack developer resume
- Java developer resume
- Programmer resume
- Data engineer resume
- Data scientist resume
- Machine learning engineer resume
- AI engineer resume
- DevOps engineer resume
- SQL developer resume
- Automation tester resume
Pair it with a matching Python developer cover letter.
Python developer resume questions, answered
How long should a Python developer resume be?
One page for your first four years. Two once you have owned services through a runtime migration, maintained a package other teams import, or led a team. Never three, and never a page of listed technologies.
Do I need to say which Python version I use?
Yes, and it is one of the highest-value lines on the page. Several minor versions are separately maintained at any time, each on a published five-year support schedule set by PEP 602 at python.org, so the version you shipped on tells a reader how recent your production experience is.
What if my team is stuck on an old Python version?
Write it, with the reason and what you did about it. A service pinned by a vendor's compiled wheels and isolated behind an interface so the rest of the estate could move is a stronger story than a fleet that happened to be new when you arrived. What reads badly is not naming the version at all.
Do I need a certification to get a Python developer job?
No. There is no license and no credential from the Python Software Foundation for developers, and the Handbook lists no related work experience and no on-the-job training as typical for entry into the occupation (BLS Occupational Outlook Handbook, retrieved 17 September 2026). Cloud and container certifications are worth listing with their dates; they are not what gets you hired.
How do I show Python experience without a professional job yet?
Pick one project and describe it the way this guide describes a service: what it does, what it runs on, how much data it handles, how it is tested, and what it replaced. One project at that depth outperforms six listed by name. A merged open source pull request with a number attached is checkable in seconds.