Startups & founders
A production-ready backend for your MVP or your next stage, built to grow with the product instead of being rewritten when it takes off.
$ cat ~/services
For startups, established companies, agencies, and solo builders who need a backend that holds up in production. I build new backends, fix and extend existing ones, and keep them running.
A production-ready backend for your MVP or your next stage, built to grow with the product instead of being rewritten when it takes off.
Extra backend capacity without a full-time hire. I work in your repo, follow your conventions, go through your code review, and ship.
Backend work for your client projects: APIs, integrations, and deployments, delivered with docs your team can hand over.
Building with AI tools? Keep moving fast on the frontend and let a professional handle the part that holds your users' data.
Read this firstCustom REST APIs in Django, DRF, or FastAPI, designed around your data and your users. Multi-tenant setups where each organization only sees its own data, with roles and permissions to match.
Sign-up, login, Google sign-in, and sessions that stay secure. Tokens rotate on refresh, stolen ones get caught when reused, and every OAuth login is properly verified.
Stripe billing wired in properly. A webhook Stripe retries won't charge anyone twice, and balances stay correct even when requests land at the same moment.
Reports, file processing, emails, and third-party calls run as background jobs, so your app stays fast. Users see live progress instead of a spinner that might never finish.
A PostgreSQL schema designed for how your product actually reads and writes, with versioned migrations so every schema change is reviewed and reversible.
Auto-generated OpenAPI / Swagger docs that update with the code. Your frontend team, partners, or AI coding tools can integrate without guessing.
Automated tests, CI/CD with GitHub Actions, Docker, and separate staging and production environments. You get a running system, not a zip file.
Caching and rate limiting with Redis, so traffic spikes and abusive clients don't take the app down.
After launch
Most backends don't fail on launch day. They fail six months later, when nobody's watching. The ongoing plan covers continuous updates, bug fixes, and monitoring for a flat monthly fee, so you're never billed by the hour to keep your own product alive.
You don't need to start from scratch. Whether a person, an agency, or an AI wrote it, I can step into your codebase, get up to speed, and start fixing things. One-off fixes or ongoing work, both are fine.
AI tools are great for UIs and prototypes. The backend is different: it holds your users' data and your money, and its mistakes stay quiet. Everything works in the demo, until someone finds the hole.
API keys shipped in the frontend, endpoints that skip permission checks, logins with no rate limit. Bots scan the internet for these around the clock. You don't need to be famous to get hit by a script kiddie.
If your users' personal data leaks, privacy laws like GDPR and CCPA can mean breach notifications, fines, and lawsuits. "The AI wrote it" isn't a defense.
Webhooks that aren't verified, payments that get processed twice, upgrades anyone can unlock for free. These pass every demo, then show up on your Stripe dashboard.
When it breaks at 2am, the tool that generated it can't tell you why, and each new prompt risks breaking something else.
Keep building your frontend with whatever AI tools you like. I build the backend properly, and every endpoint ships with clear, detailed OpenAPI / Swagger docs: what it does, what it expects, every validation rule, what it returns, and every error it can throw.
FastAPI and DRF generate the docs page straight from the code, docstrings included, so it never drifts out of date. Copy the docs into your AI tool and it can connect your frontend to the backend without guessing. You move fast on the parts users see, and the parts they don't are done right.
Register a new user account.
Endpoint: POST api/auth/register/
Authentication: None required (AllowAny)
Throttle: 5 requests per minute per IP (ScopedRateThrottle, scope register)
| Field | Type | Required | Description |
|---|---|---|---|
| string | Yes | User's email address (case-insensitive, must be unique) | |
| first_name | string | Yes | User's first name |
| last_name | string | Yes | User's last name |
| password | string | Yes | Account password (write-only) |
| confirm_password | string | Yes | Must match password (write-only) |
Registration successful. User is created with is_verified=False. A 6-digit verification code is hashed and stored, and the raw code is sent to the user's email. The code expires in 15 minutes.
{
"email": "jane@example.com",
"first_name": "Jane",
"last_name": "Doe",
"is_verified": false
}One or more validation errors occurred.
Single field error:
{
"email": ["An account with this email already exists."]
}Password mismatch:
{
"confirm_password": ["Passwords do not match."]
}Multiple password errors:
{
"password": [
"Password must contain at least one uppercase letter.",
"Password must contain at least one digit."
]
}Throttle limit exceeded (5 per minute per IP). The Retry-After header gives the seconds until the next request is allowed.
{
"detail": "Request was throttled. Expected available in 42 seconds."
}is_verified=False.No parameters
Example Value | Schema
{
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"password": "string",
"confirm_password": "string"
}Created
Bad Request
Too Many Requests
A call about your product, your users, and what's already built. You get a written scope and timeline before any code is written.
Built in small, tested pieces on a staging environment you can try as it comes together. No disappearing for weeks.
Shipped to production through an automated pipeline, with monitoring in place and API docs ready for your team.
After launch, a flat monthly fee covers updates, bug fixes, and monitoring. The person who built it keeps it running.
The quickest route is a 30-minute call. We'll talk through what you need and whether I'm the right fit. Prefer writing? Send a message or email me directly.