Blog
All posts come from something I put my hands on — no theory without practice.
Adding Redis to the Deploy Tracker — and What Caching Actually Solves
In this post, I explain how I added Redis to Deploy Tracker using the cache-aside pattern. The goal was to avoid unnecessary PostgreSQL queries when the same data was requested multiple times. I also learned why Redis is useful beyond speed: it stores temporary data in memory, supports TTL, and helps reduce repeated work. While implementing it, I faced real problems with serialization. SQLAlchemy objects and datetime values could not be saved directly as JSON, so I had to convert models into dictionaries and use json.dumps(data, default=str). I also learned that Redis stores strings/bytes, not Python objects directly, and that cache invalidation is necessary when the original data changes.
April 28, 2026
Deploy Tracker -- Why and What
It was time to step out of the CRUD comfort zone. A look at the architecture, the stack, and the strict “no-tutorial” mindset behind my new asynchronous health check system.
March 28, 2026
Why I Chose FastAPI for My First Real Project
Choosing the right tool is the most important step in software engineering. A look into why FastAPI was the logical choice over Django for my latest API.
March 25, 2026
Why I Built My Own GTD App
I was using Notion for task management, but every time I opened it to capture a quick thought, I got distracted by everything else on the screen. I needed a simpler inbox.
March 18, 2026