I build and run things end to end: API, database, deployment, and the server it all eventually gets yelled at.
That habit of taking things apart just to understand how they work eventually pulled me into backend engineering. These days, I build APIs, break things, read logs, and occasionally learn something by fixing whatever I just broke.
That habit of taking things apart just to understand how they work eventually pulled me into backend engineering. These days, I mostly build APIs, break things, read logs, and occasionally discover that the problem was DNS.
TFS (Temporary File Share) — a self-hosted file-sharing API for when apparently uploading a file wasn't simple enough. It has expiring links, download limits enforced with an atomic check to avoid race conditions, JWT auth, background cleanup jobs, and runs containerized with Docker Compose on PostgreSQL.
Languages: Python
Backend: FastAPI Django
Data: SQLAlchemy PostgreSQL SQLite
DevOps: Docker Docker Compose Git Linux Shell Scripting
Development methodology: Build → Break → Read Logs → Fix → Pretend It Was Intentional
- Temporary-File-Share-API — a self-hosted file-sharing API with expiring links, download limits, JWT auth, background cleanup, and enough concurrency handling to make two requests arriving at once everyone’s problem.
- AMS — an attendance management system built with Django. Because apparently taking attendance needed an architecture.
- 007827.xyz — my self-hosted server, running publicly because apparently local wasn't enough.
Have you tried turning it off and on again? I have.