DEV Community

Dillion Huston
Dillion Huston

Posted on

From Kiddie Projects to Production-Ready APIs: My FastAPI Journey at 18

From Kiddie Projects to Production Ready APIs: My FastAPI Journey at 18

I’m 18 and from West Belfast. I started like most self-taught devs — small Python scripts, half-finished tools, and code that kind of worked if I didn’t touch it too much.

Lately I’ve been getting more serious. I built a proper backend system using FastAPI, with file uploads, JWT authentication, background tasks, and a full deployment setup.

Not here to pitch anything. Just sharing what I built, what went wrong, and what I learned.

Why I moved from Flask to FastAPI

I used Flask for a while. It’s great for small projects, but once I started adding real features like auth, file handling, and background jobs, things got messy.

FastAPI felt more structured without being overcomplicated. A few things stood out:

  • Request validation with Pydantic was way cleaner
  • Async support was baked in from the start
  • It auto-generates API docs, which was actually useful for testing
  • Strong type hints made my editor smarter and saved me from dumb mistakes

What I built

Here’s what’s working right now:

  • Auth system using JWT
  • File uploads with SHA-256 hash checks
  • File listing and secure downloads
  • Background task scheduling with Celery and Redis
  • Docker-based deployment to a Hetzner server using Coolify
  • Basic test coverage using pytest

The whole thing runs through FastAPI with async endpoints. It’s not perfect but it works well, and it’s clean enough to share.

What went wrong

Nothing crazy, but I definitely hit some walls.

  • Dependency injection in FastAPI took a while to wrap my head around
  • Testing async routes was different than what I was used to with Flask
  • Uploading large files without blocking the whole server needed some extra work
  • Docker config took more trial and error than expected

Most of it came down to learning by doing. I broke it, then fixed it.

What I’d tell other devs

Don’t overthink things early on. Build something useful, then polish it later.

Start using type hints early. They don’t seem important until your project gets bigger, then they save you from major headaches.

If something feels overcomplicated, break it down and rebuild it. That’s how I learned most of this stuff.

And don’t wait until you're an “expert” to put your code out there. You learn more when other people can see what you’re working on.

What’s next

I’m planning to:

  • Create an API key system for public usage
  • Improve the admin tools
  • Write a proper setup guide for others to use the project

Final thoughts

This is the first time I felt like I built something solid end to end. I’m not in uni, I’m not working at a tech company, and I’m not using AI to do the work for me.

Just writing code and building something that solves a real problem.

If you’re working on something similar or want feedback on your own backend, feel free to drop a comment.

Here’s the repo if you want to check it out:

https://github.com/dillionhuston/Task-Automation-API

Tags:

fastapi python backend selftaught devjourney programming

Top comments (0)