It was a big day as there was a demo of the system to customer’s senior management in the afternoon.
Leading up to the demo, I find myself getting rather angsty and reached the point of anger because my colleagues continued to rush me to implement quick fixes for some of the bugs they found. Even today…two days after…as I write this log, I still feel that lingering sense of anger when I think about it.
The first incident was when the team lead asked me to fix the image upload issue.
What I implemented was to convert any image selected by users on the client side to Bitmap format and hold it in memory. The reason was simple. The image had to be modified later quite often by both the user and system and thus I went with a lossless format. Then when I upload it to the server, it is based on that converted version.
So it was only on Friday my colleagues found that the images uploaded was too big and can’t be accepted by the sub-module, which is an image analytics engine. Then they asked me to implement a quick fix to upload the original image instead of the converted one. That’s what I did though initially, the code I wrote wasn’t as clean as it should be. I simply reuse an existing code and made modification to it. In part, it was because I don’t know C# as well as I like to think. There are certain functions or libraries that I don’t get to use or have never used. My team lead later suggested to use the Files.ReadAllBytes function to get the image bytes and upload that. So I went with that. After all there’s no difference. All we wanted was the original bytes.
That lead me to this thought. To me, sometimes it’s always best to be a Java expert or a c# expert so that you know the intricacies of a given language rather than having broad knowledge. But again, it depends on what you are trying to achieve in your programming career.
Later while we made our way to lunch, my colleagues found another issue with subsequent retrieval of the images uploaded. It was caused by a decoding error.
For me, when it is lunch, it is lunch. I hate being rushed to do work. It just grind my gears so much that it pissed me off out right. So I kind of lose my appetite to eat. Then later, on the way back, I did curse and swear. And I also didn’t get any fruits because we had to ‘rush’ back to office to fix the bug, bug that was inadvertently introduced when I changed the upload because I did’t have time to evaluate all possible problems. In part, I also didn’t see it because it’s my first time working with images in a production system.
So after I fix the bug and send the solution over, my team lead called me and asked me to implement a new function to load jpeg images and convert to bitmap because he wrote a function to download the image to local drive.
By now, I kind of boil over and raised my voice a little.
First of all, I hate to do quick fixes to any system especially when there is a very important demonstration of the application. It has constantly been shown that last minute fixes result in bugs somewhere down the line. This will cause quality drop even further, which also grind m gears. I prefer quality over any other things most of the time. And certain failure during demo or presentation is expected. Look at Apple. Even they rehearse so thoroughly, errors and problems still appear. The infamous Apple Face ID is one.
Two, I’m already feeling flustered and having trouble dumping out the toxins accumulated up to that point. After all, I didn’t just get one call from team lead. The other colleague there also called me. Well, they took turn to call me to rush me and nag at me. “We want a quick solution.” “Do it fast.” “We got a demo.”
This is what I just have to say, “WHAT MAKE YOU THINK I DON’T FUCKING KNOW THERE IS A FUCKING DEMO!!!! JUST LET ME WORK IN PEACE AND PISSED OFF. THE SOLUTION, WHEN READY, WILL BE READY!!!”
Phew… well… finally got that out of my system… feeling better.
Three, the team lead is suggesting a stupid solution of writing a new function just to do something to handle locally downloaded file when there is a FUCKING DEMO. The original codebase of loading image from the server is already working but having trouble decoding because the byte data was something the Bitmap library didn’t expect, which was in JPEG or whatever the user so chose to upload earlier. Previously, everything was in Bitmap, thus there was no issue. The solution I would already handle that problem.
Sometimes, I just don’t get my colleagues. At first they say do this because the customer want it. Then when there is a problem, they ask why do this and requested I revert back. And then there are times when the user have already seen something we implemented and didn’t mention anything, yet because of performance issue, those seen features are asked to be removed.
My only response is, “For fuck sake, can you decide what you want to do or not?”
Until now, almost a year later, there still isn’t any specific requirements laid out except for some high-level ones. It is only after the features have been shipped that the user commented it’s not something they want or that the team lead commented there’s some performance issue and need to remove certain features.
I don’t even know why it’s call software engineering when there’s no systematic approach. Everything is done on the whim just because someone up there found it problematic. I for one already live a life of action on whim, I don’t need my work to have the same approach because it can get frustrating. Put it this way, I am perfectly fine if I live my life on my whim because it is on my own term and not by others. I don’t want to nor should I live life based on others. So create a god-damn routine or system that all of us agree to for a standard way of doing things given the working culture.
Later at night, I didn’t feel like doing anything else except play video games. So that’s what I did. Video games allow me to clear away all the mental toxins built up during my work and bring my mental state back down to normal as much as possible.
I didn’t do much except for spending most of my day gaming. The games I play primarily are Cities: Skylines, and Doom (2016). For the latter, I realized I wasn’t as fast as I would like in terms of reaction time. I keep dying and I give up later. I mean I want to play games and relax; not to play games to get pissed.
I also napped a lot. I slept from 3.30pm to 7pm before waking up to have a quick shower and joined my family for dinner. The dinner was to also celebrate Mother’s Day.