Backend & API systems
The services your product runs on — designed, built, tested and documented. Sync or async, REST or event-driven, chosen for the load you actually have rather than the load you might.
- Django
- FastAPI
- Flask
- Sanic
- Tornado
- Celery
Bahman Shadmehr Full-stack developer Python · Go · Kubernetes Remote, UTC+3
Eight years of production backends: energy and equities trading pipelines, a national payment gateway, Kubernetes clusters that stayed up through it. I take a system from architecture to the deploy pipeline to the dashboard you check on Monday morning. Open to contract work and full-time roles.
Four kinds of work I'm hired for, and what each one usually looks like in practice.
The services your product runs on — designed, built, tested and documented. Sync or async, REST or event-driven, chosen for the load you actually have rather than the load you might.
Get off manual deploys. Containerise the app, write the Kubernetes manifests, wire the pipeline, and add the monitoring that tells you when a release went wrong before a customer does.
Scheduled jobs that collect data, evaluate it and act on it without a human watching — plus the alerting that catches a bad run. Built for energy and equities markets on both AWS and GCP.
For a system that has outgrown itself. I find the real seams, split along them in stages, and keep the thing serving traffic the whole way — the same job I led on a live payment gateway.
Four projects that show the range: money moving, markets trading, traffic scaling. Some clients are under NDA and named by sector.
Wholesale electricity market · Texas
A platform that places and manages orders on the ERCOT wholesale power market with no one at the keyboard — which means every failure has to announce itself.
Stock market execution platform
An automated trading platform for US stock markets, where a missed job is a missed market window.
Dropshipping & e-commerce
A scalable retail platform that pulls Shopify and Instagram into one shopping experience for sellers and suppliers.
Payments infrastructure
A critical payment gateway that needed to scale, without a maintenance window anyone would accept.
Side systems, mostly built to learn a hard part properly: sandboxing, leader election, metaprogramming.
A coding practice platform in the spirit of LeetCode. Submissions run inside a Docker-based sandbox, queued through RabbitMQ so untrusted code never touches the app.
Django · RabbitMQ · Docker sandbox · Next.js · Asyncio · S3A chat system built to scale horizontally: etcd handles leader election and real-time message routing between nodes. An excuse to implement consensus rather than read about it.
Go · etcd · WebSockets · Leader electionA Forex trading pipeline on AWS, split into four stages — signal generation, evaluation, simulation, execution — so a strategy can be tested before it ever spends money.
Python · AWS · S3 · Athena · Step FunctionsA microservices-based learning platform with chat, online exams and calendar management. I also teach Python, Go and JavaScript on it.
Microservices · Python · S3 · Real-time chatAn ORM whose backing store is the filesystem, written to explore how far Python metaprogramming can be pushed before it stops being readable.
Python · Metaprogramming · Descriptors · MetaclassesWorking notes on relational database design, SQL, Python and the financial concepts behind the trading work — published as I learn them.
dev.to/bshadmehr · databases · sql · python · goDepth on the left of each list, working familiarity on the right. I pick the tool the project needs, not the one I used last.
Seventy-six posts on DEV, mostly on database design, SQL and the finance behind the trading systems.
I started with Python and JavaScript, drifted into Go and infrastructure, and ended up spending most of my career on the unglamorous half of software: the part that has to still be running tomorrow.
That shapes how I build. I want to know the failure modes before the feature list. I containerise early so environments stop being a source of surprise. I put metrics in from the start, because a system you can't observe is a system you're guessing about. And I write the tests for the paths that would cost money if they broke.
I've worked as the sole backend engineer on NDA trading systems and as part of cross-functional teams at product companies, so I'm comfortable either owning a domain end to end or slotting into an existing codebase and its conventions. I've also taught Python, Go and JavaScript to beginners for a few years — which is the fastest way I know to find out whether you actually understand something.
Right now I'm taking on new projects and open to full-time roles, remote, working comfortably across European and US-morning hours.
I read every message and reply within a day, including to say no if I'm not the right fit for it.