Python is the language I’ve written second-most over my career, and the one I reach for on data-heavy and asynchronous back-end work. I’ve delivered Python systems on contract at seven companies, mostly on AWS and GCP.
How I work in Python
Modern Python is a different language from the one most codebases were started
in. I write it typed and checked, with async/await where concurrency is the
point rather than threads bolted on afterwards, and I treat mypy and ruff
findings as things to fix rather than warnings to scroll past.
For web work I default to FastAPI, which gets you typed request and response models and generated OpenAPI documentation without a separate schema to keep in sync. Where an existing project uses Django or Flask, I’ll work with what’s there rather than argue for a rewrite.
On Django specifically, I worked as a back-end Software Engineer at uMed building on Django and Django REST Framework, with Celery for background work and PostgreSQL behind it. That’s one substantial Django project rather than a career of them, and I’d rather say so than imply otherwise.
On testing, I use pytest and aim for tests that cover behaviour someone would recognise, rather than large numbers of tests welded to implementation details.
What that means for your project
Most of the Python work I’m brought in for is an existing codebase that has to keep running while it changes. I can pick that up without a long run-up, and I deliver the infrastructure and deployment around the code as well as the code itself, so there’s no second person to line up before anything reaches production.
Python work I’ve delivered
- Octopus Energy — asyncio services on AWS Lambda with DynamoDB, SNS and SQS.
- Omnipresent — asyncio and FastAPI on Lambda and ECS, with PostgreSQL.
- ElseWhen — Python on Google Cloud Run and Cloud Functions, working with LangChain, OpenAI and Gemini.
Hire a freelance Python developer
Contact me about your Python project — a new service, an API, work on an existing codebase, or a complete MVP.
