What did I do in February

I am still deciding what should I write here.
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 then get it fast.
AI has been helpful, but one thing I noticed was that the requirements were also written by AI. Now that AI suggests things to the client, they start asking us to implement those same things, which does not always make much sense when you look at the actual product or service.
Most of the work involved creating an implementation doc, getting it reviewed, building it, getting that reviewed, and then deploying it. I had to build a matching algorithm where a person gives a few details and the system has to come up with objects that have a greater than 50 percent confidence score based on how similar the texts are. I think it is for duplicate text matching or similar text tracking.
They wanted it in real time. But when you start comparing text one by one, it takes time. So before comparison, you have to exclude a lot of things and carefully choose candidates to compare with. Otherwise, you end up spending too much compute on it, the latency gets hammered, and then the client asks, “Why is this happening?”
The client does not want to get into the technical details. They just want things to work. So you have to build a monitoring system that alerts you before the client notices something is not working correctly. A better way is to run sanity checks on the most common functionalities in production. Test things preemptively and alert the responsible person if something goes wrong. Monitoring is important.
With a ton of data comes a ton of new problems. If your service deals with a lot of data being sent by a third party service, you need to build guardrails so that a simple error does not cascade the entire system into failure. I have started thinking about edge cases more. It is not like me, though. You have to think long terms as to how so much data is going to hammer your API latency and then you will be asked difficult questions. :P
With AI, a lot of my work has become easier. I am not complaining, but I do see how some people would view it as, “Oh, AI can do your job, why do we need you?” Valid question. I think I have become more of a programmer now. I code and fix small issues that would take AI more time and context to understand, but I do not code entire functionalities by hand anymore. I make a spec doc, give context, explain how it should be done, and then monitor things.
Doing two different things at once does become difficult because our brain is linear. Multiple context switches hurt productivity. But as AI gets better, I think a lot of things will be done by AI without supervision. Still, you cannot hold a machine accountable, right?
Coming back to what else I did in February. It was a short month, pun intended. Building a tool for 3 to 5 people can seem like it is not worthwhile, but you do it because you get paid for it. And the tool makes a difference in those 3 to 5 people’s lives.
I also worked on a library migration, but Codex did most of it for me. There were a lot of deployment issues, but it successfully made it semi working. Companies still need to come up with documentation that is LLM friendly. I do not want my LLM switching between URLs to connect the dots. LLMs are sensitive. I would like to make their lives easier.
I also filled out my self assessment form. You know, new financial year, bonus and increment on the way. I am a bit excited. Everyone loves more money. I do not know how it will turn out, though.
Back to technical work. I did some POCs, investigated issues, took interviews, etc.
I think I have started becoming more interested in self healing systems. When we create systems, we usually have a happy path in mind. But sometimes that path breaks down, and that is where self healing comes into the picture. I wrote several crons that heal the system if they detect something broken. For example, if file generation for a data export has been in progress for more than 3 hours, the cron checks whether anything is actually generating. If it is not, it redoes the file generation. Things like that.
If you are dealing with a third party service, keep all logs with you. Everything should be logged. Whenever something breaks down, you should have all the data points before sending them an email. It is the most you can do to make their lives easier and clearly convey your issues. Be a good person :P
What else, what else. Let me think. Cross system communication is always difficult to get right because there are so many chances for things to break. And if they do break, you need a resilient retry mechanism. Have a good retry mechanism. It will always help you.
Build resilient systems. You might get it right the first time, but you still need to make the system resilient, self healing, and robust. The customer depends on you.
I know there is all this talk about AI and AI agents, and as a software engineer you might be feeling dread. But it is part and parcel of life. Evolve. Become a fire breathing dragon and burn all the data centers. I am just kidding.
You need to evolve. You need to learn. You need to find something you like. The big AI labs are going to eat you alive, but at least you will have a tale to tell. I think optimizing life for stories is much more fun.
“Once upon a time…”
I do not want to get more technical. At some point, you become one with the system.



