The problem: teams want simple automation inside their own product, such as when a task is overdue, notify the owner, or when a deal closes, call our billing system. Building that safely means background workers, permissions, an audit trail and webhooks that the receiver can trust.
What I built: a workflow-automation backend in Python. It has organizations, projects and tasks, plus when X happens, do Y workflows that run in a background worker. Outgoing webhooks are signed, access is role-based, every change is written to an audit log, and the API supports API keys and rate limiting.
A measured example of the kind of detail I care about: listing tasks on a table of 100,000 rows took about 27 ms at p50. With the right composite index it takes about 1.8 ms. That is in the repository as a measured result, not an estimate.
Testing: 170 automated tests, covering domain rules, units, an OpenAPI contract snapshot so the API cannot change by accident, and integration tests against real PostgreSQL and Redis.
Details: FastAPI, Pydantic, SQLAlchemy async, PostgreSQL 16, Alembic, Redis, arq workers, Docker, GitHub Actions. This is a personal project. Code is on my GitHub: chaitanya-mhetre, repository python-backend-lab.