What did I do in February?

Search for a command to run...

No comments yet. Be the first to comment.
One of the methods of abstraction is to integrate another service. But can you trust someone else's service? Third-party APIs are notorious for failing at the worst possible time. Over time, I ended u

A race condition can hit you anytime, you think it won't because your system isn't that big, or doesn't process a lot of requests, but it will happen, and when it happens, you will feel a bit silly ab

The world is going through a tumultuous phase, but that doesn't stop the progress of humanity. Things go on, people move, prices fluctuate, we eat fruit and live a healthy life. April is hot, so hot,

Well, I celebrated my birthday. :P I worked on a functionality end to end using AI. It was a simple feature and AI wrote everything correctly in a single pass. I used Codex. After that, I had to ask i

Let me think. So I worked on a new functionality and raised a PR in just 2 days for the whole end-to-end correct flow. I did not focus much on performance because I wanted to first get it right and th

February was a short month - pun intended. Ahaha, I’m so funny.
We deployed the app backend to production without Docker, using Apache2 with mod_wsgi to serve the Django app. However, the Authorization header wasn’t reaching the Django app. After some debugging, I discovered that when using mod_wsgi, you need to add the WSGIPassAuthorization On directive in your configuration file to ensure the Authorization header is included in the request.
Why you have to add the directive? They say it is for security. What security man?

I need to create a deployment template - there should be a common one for all deployments. Over the past two months, I’ve deployed two Django apps to production. For one, I used Docker to run it and Apache2 to serve it to the internet. For the other, I used mod_wsgi with Apache2. Both are running smoothly. One thing I feel I need to add to my stack is observability.
I also worked on writing raw SQL queries for generating reports. Initially, I used Django ORM, but my lead pointed out that it was inefficient since I needed to perform joins. The challenge was that the two tables were in separate databases, which made things tricky. But after some trial and error, I figured it out.
I had to add custom filtering for the report. Like, user wants only some specific condition to be met etc. etc.
Here’s how report generation works: The API gets called, which triggers a Celery task, and once the report is ready, Celery sends a notification. Cool, right? I mean, this is just standard process - ehehehe.

I debugged a streak maintenance issue where our logic allowed yesterday as a grace day to continue the streak. This caused some problems, and I had to tweak the logic multiple times - lmao. But it finally worked out.
I also wrote a README (API documentation) for the backend I worked on. It was time-consuming, but necessary. Maybe someone will need it in the future.

I worked on some smaller issues, but that’s about it.
I filled my self assessment form too, it was fun.
AI wrote a lot of code for me, and I’m kind of enjoying it. Occasionally, I have to fix minor issues, but that’s no big deal.
I also started learning Haskell - turns out most of functional programming is just list comprehension. :P

I’m not sure how to become a better developer now. With AI, everything is at my fingertips—tasks that used to take days now take hours, sometimes even minutes. I’m definitely faster, but I’m not sure if that means I’m better.
Since tech hiring is so focused on interviews, I wonder how things will evolve in the future.