Daily Log #121

Today is like a big day for Apple devices. Both iOS 12 and WatchOS 5 are released.

I updated my iPhone first in the morning and after it was done, I got to say I was impressed with just how smooth the phone is in terms of app response time. Even the Face ID is also way faster now. Now that’s what I call quality software.

After work, I came home to update my iPad and Apple Watch to the latest version of the OS but I hadn’t got around to play with them because I don’t really use them at home.

Now, I’m just waiting eagerly for the release of MacOS Mojave because of the new Dark Mode feature, new app store, and also for the compatibility with iOS 12 for some of the apps.

Going onto the topic of personal life…

Well, I had an irritating morning because of my insufficient sleep the night before due to the power outage across various towns at around 1.20am Singapore time. I simply couldn’t sleep without some kind of fan blowing at me or the air-conditioning running because I sweat super easily and I will get very flustered. Power only came back closer to 2am. After some tossing and turning, I only fell asleep around 3am.

Then on the way to work, there was some issue with the platform door at one of the station causing trains to run slower than normal. Making things worse was we were all called to alight at Chinese Garden station. By then, it was already 8.40am. Because of the sheer amount of people on the platform, I exited the station and went for the nearest taxi stand only to have no taxi for fifteen minutes. By now, I’m kind of sweating profusely and extremely flustered. I felt like punching someone then.

I went back to the station customer service counter fuming and asked whether the train service back. The person say it is but running very slowly. It’s already 9am. So I requested for an explanation letter just in case my company decided to find fault with me for being excessively late to work.

I went back into the station and boarded the first train that came in. I only reached my station at around 9.10am. So I had to rush to get my morning Starbucks (yes, I went back to drinking Starbucks) and a bottle of barley water before heading to office, drenched in sweat.

Was pretty much pissed through one quarter of my morning and didn’t really get anything done. It was only after that, that I manage to do something productive.

Put it this way.

I love my routines because it is the only thing that make me sane, as I have repeatedly said. Any disturbance to it simply grind my gears a lot. Cortisol rises and I feel the temperature rises in my body. Then I will sweat a lot. Then I get pissed from that heat and sweat, raise cortisol level even higher. Combine that with humid weather in Singapore, I feel the heat even more and sweat even more, and then I get pissed from that combination, creating a vicious feedback loop…

I just hate going there. So… just don’t make me go there…it takes a whole lot more willpower on my part to calm myself down. Sometimes I just give up and don’t bother controlling it.

And seriously, SMRT need to raise its service standard and quality. I don’t know how Singaporeans can tolerate sub-par quality in their lives.

The lack of quality in almost everything in Singapore just… argh…

Daily Log #120

I made a rather crazy decision… okay, maybe not because it’s something that I have been saying since a few months back. I finally settled down on selling off my gaming desktop. One of my friend is willing to pay SG$750 for the whole computer with the following specification:

  1. Intel Core i7 6700 @3.4Ghz
  2. G.Skill 2x8GB 2400Mhz DDR4 ram
  3. Asus Z170-K motherboard
  4. MSI GTX1080 Founder Edition
  5. Samsung NVME 950 Pro SSD
  6. Seasonic X-Series 750 watt 80 Gold PSU

Overall, the PC is about 2.5 years old and I spent like SG$2700 on it.

As part of the sale, I will also reformat the SSD and reinstall Windows 10 while I get rid of the remaining hard disk that contained my personal data as well as save games. In fact, I’m thinking of nuking all the data in the three hard disk in the PC because I really want to get rid of all of them. And I do have NAS that’s big enough to backup all those files. I do have a 1TB OneDrive that I can also use to store less sensitive files for a while.

However, throughout the day, he’s been like debating with himself whether if he wants to buy it or not. So while he debate it, I’m gonna setup separate sales of the individual parts. I really don’t want to wait for him because I need the PC gone by the end of the month or maybe even earlier.

Now, you may be wondering how am I going to play games. Well, I do have my PS4 and Xbox One X. Furthermore, those consoles are way cheaper when it comes to replacing them. For PC, not really. A single GTX 1080 already cost as much as a brand new iPhone Xr. Considering the amount of time I spent on the PC these days to play games, it’s just not worthwhile anymore.

And I also recognized that the PC contributed a subconscious stress that I have been having because it’s really taking up too much physical space in my room. I have difficulty introducing things that bring me joy or has higher value to me at this stage of my life.

Well, put it this way. I want my desk, the only desk, to be as free as possible in terms of what I put on it. And because my desktop PC is huge, it took up 1/4 of the space and that’s including the mouse, keyboard. Imagine if I remove it and I could have a more cleaner desk that make me want to do work on it. As for games, these days, I’m not sure if I am putting as much emphasis on graphics compared to my younger games. I just want to play a good game that has a good story, strong character and is immersive enough. And the two game consoles I have can do that job well enough.

If going forward, I find myself yearning for PC gaming again, I will get myself a gaming PC or laptop and by then, they will be in a smaller form factor.

Overall, it definitely fit into my increasing application of minimalism to tech and my workspace.

On the topic of minimalism, I actually took the time to discard a whole bunch of stuff from my desk at work. And now it’s almost as empty as the day I joined. One of these days, I may just stop bringing my messenger bag to work because there’s really no need for it. I bring the bag because I want to bring an umbrella, a folder to store whatever document that may come along, a water bottle containing distilled water I bring from home, and my company pass. Other than that, there’s a bunch of medicine for my allergies and pain.

Oh…good news… I found a smaller sling bag that I can bring to work. Applying minimalism again… And it does feel great.

Daily Log #119

Four days went by without me doing any form of writing…other than C# codes at work and messages on my phone. It’s mostly because I was feeling angsty and frustrated with my work and colleagues.

It has come to a point where I’m sick of my colleague continual dismissive of whatever thoughts or ideas I shared at work. She is always saying that she is there to solve problem and always go on and on sprouting her own ideas, totally ignoring me. Sometimes, she will be making hiss sound at me in an attempt to dismiss me and my ideas.

Alright, so apparently, my experiences, knowledge and intuition are not useful in solving problem. With that, there are multiple solutions. The first would be to confront this colleague about the issue and hopefully get her to change her tact and approach. That’s the assertive approach. The passive approach would be to ignore her and stop contributing whenever she is around. For me, I tend to go with the passive approach because I never really like any kind of confrontation. And she’s not my friend, so I don’t even want to spend the time and energy. Just not worth it…

Hmm… now that I mentioned I have been writing C# codes, I hadn’t really spent the last year writing any Java codes and I feel kind of sad about it. Yes, I know I can probably write Java codes at home but my life isn’t all codes and text. I got my family to be with, my games to play and books to read. Devoting 6 to 8 hours a day to code is more than enough for me in my view. And yeah…when I was younger, I devoted more time to that by coding at home but that’s because I wanted to improve my skills at a programmer. Now, not so much…I rather be doing something else more interesting.

And here’s some quick recap of the things I did and notable for me over the four days.

On Thursday morning, at around 1am GMT8 , I stayed up to watch the Apple Event and got to say I’m not that particularly impressed with what Apple announced, except maybe for Apple Watch series 4. I got a series 2 and has been a year plus. I think it’s time that I change to the new watch. Even the Apple Care that I got for it will only cover the watch for another few more months.

Now the one feature the series 4 watch got me the most excited is the ECG. Considering my sedentary lifestyle, having multiple elevated heartbeat notification from my series 2, and family history of heart issues, it’s the best device for me so that I can keep a close watch on my heart. I do know I need to make a conscious effort to exercise more.

On Friday night, I went with a friend to watch The Predator. It wasn’t the most intense or thrilling movie in the franchise. In terms of story, it just isn’t the most exciting and I could see most of the events coming before they even play out on screen.

Once I got home, I turned on my Xbox and went ahead to get Shadow of Tomb Raider. Of all the Tomb Raider games, I prefer the games set in this reboot trilogy as they have more focus on Lara development. Then the puzzles are challenging while the combat mechanics are pretty good, compare to the older games.

I like that they don’t go over the top with the presentation of her physique like the older games. I really don’t want to see her dressed in skin-revealing attire for no reason. She’s an archaeologist who works in environments that most likely will kill city dwelling people like me. I don’t get why would any sane person wear such short shorts and cleavage revealing shirt in that kind of environment. Even if the animals, humans and creatures in the tomb raider series didn’t manage to kill her, the environment will. And if you want to portray a strong female character like her, don’t degrade her by making her look like a bitch. It’s insulting.

On Saturday, I met up with my best friend for lunch. That lunch required me to take four different trains to get there but it’s worth it. It’s not often that we meet up because of our vastly different lives. I also got back the book, Start With Why, from him. Not that I will re-read it during my free time but it’s part of my book collection. So I will put it back where it belongs.

After that, it was mostly just me playing Shadow of Tomb Raider and suffer back and neck pain. Not that I can really complain about it. I made the choice to spend so much time in front of a screen and continue to make the same stupid choice.

Then I went out to have dinner with my family before coming back to continue my game. I didn’t play for long either because my sleep debt has pretty much caught up to me.

Well, I didn’t really have any good night sleep since Tuesday because of a sub-conscious stress I’m feeling with a whole bunch of rumination. I know they are pointless but my mind will just keep playing them over and over again. By default, I’m highly neurotic and will always assume the worse.

So that’s another reason why I love my routines so much. They keep me sane.

On Sunday, I squeezed in a few hours of Tomb Raider, a two hour nap, and a quick jog around my neighborhood. After coming back, I decided to read Halo: Glassland. After so long, I only managed to get through half the book and I still got three new novels sitting in my bookshelf that I hadn’t got around to read. I also got two non-fiction books that I also didn’t read. I stopped after about twenty pages and went with powering on my MacBook to watch the last episode of Shooter, season 3. Then I spent some time to watch an old movie that I watched before, The Darkness on Netflix.

I have been thinking about something too.

Ever since I got my MacBook, I hadn’t really use it like most people. I mean I didn’t put it through the paces in terms of bringing out to work on stuff much. Yeah, in my previous two work places I do and when I do my freelance work but other than that it’s just sitting at home where I use it to write and watch movies, listen to music. I don’t do much programming these days on it.

And that’s why I have been putting off on buying a new MacBook Pro for so long. I just don’t see the need. Yet I can’t help but feel like it’s a waste, just like my gaming desktop now where I don’t seem to be interested in its upkeep or play any games on it. I think after a while, I may finally just decided to get rid of it.

Well… in a way, this machine is actually making me stress by the fact it’s around and need me to take care of it. One prime example is that my room is going to be renovated soon. That means I need to move it out while my room is redone. Combine that with my neurotic nature and my innate materialistic (in the truest form of the word) nature where I don’t want people touching my stuff for the fear they break it, I’m kind of pulling my hair out.

And that’s one of the subconscious stress I have been feeling over the past week. So yeah, I guess this is the time where I get to review the things I introduce in my life and start paring down.

One last thing. I don’t think I will be able to sleep again tonight because I have been drinking too much tea. First green tea in the day and now Earl Grey at night. Sigh…

Daily Log #118

When you have minimize your caffeine intake for so long, a sudden increase in consumption leads to poor sleep. After that, the next day is pretty much ruined.

You won’t feel productive at all. Everything seemed so fuzzy. Thinking is hard. And if you can’t think, you can’t do your work properly.

Well, that’s what happened. I had a hard time thinking about what I want to do. And when I did something, it was like I was just stumbling through mud.

The good thing was I managed to get through the day to partially implement a feature and then I made my way home.

After a quick shower, I tried to take a nap only to be woken up again for dinner. Then I went back to sleep.

It was a light nap and I felt better after that.

And later tonight, I will be staying up to watch the Apple September Event. I’m excited to see what Apple will be announcing.

That’s all for now.

Daily Log #117

When I woke up this morning, I didn’t feel particularly motivated to go to work. I felt like something in me was gone.

While at work, I tried to stay focus on building a function to allow an administrator to disconnect a user from the system. However, my team lead decided to pull me to help him with a tender demo. While I was there, for some reason, I’m more nervous than him and was sweating. It took me a while to cool down and wait until it was our turn to present the system.

During the demo, I heard what some of the users are saying and recognize those could be great features. After that, I went back to my seat to continue to work on the feature.

Well, at first it was going fine and I was building it into a better feature where administrator could see past login details, current login details and still allow the admin disconnect the user in real time.

After showing it to my team lead, he said there’s no need. Just a list of users with disconnect buttons will do. So I dismantled all the codes that I wrote for those features and leave just the parts required for the basic stuff to work.

Yeah, sounds fine right?

But I also felt a little disappointed. It does feel like whatever I think of is unnecessary, a waste of time, and unappreciated.

I get that it cost money and time to build features. There are always more important stuff to build because it is a project and not a product that the customer paid for. In fact, they have been asking for us to deploy all the required features since last month but due to limited resources, development was slower than expected. So there is that. A balance needs to be struck between creating stuff to raise quality or fulfilling existing requirements.

Even with all that rational thinking, it still doesn’t prevent me from actually dropping all the standards I have and just focus on finishing the features.

And you know what was the initial grand idea that I had?

Because I see the “disconnect user” as an event-driven feature, I wanted to use the message queue, which in our case, RabbitMQ, to deliver the event to the client application. I felt that it was more pure and true to the idea of “event-driven”. Once the client application received the event, it will notify the user that they have been logged out and will quit after they acknowledge the pop-up. But after discussing with my colleague, she suggested another way and it’s much faster. The client application is already sending heartbeat to the server and I have already implemented activity tracking using the login session. So all I need to do was to get the heartbeat to return if the session is still valid after the admin has disconnected the user.

And that’s the difference between my colleagues and me. They all see everything as discrete functionality and if they can hack an existing functionality to support additional functionality, they will do that. I’m more of someone who prefer purity of concepts, ideas and functionality. Every word, function name, variables, etc that I use in code has to mean something and be precise. And I love layered codes and dislike pollution of codes in specific layer with ideas and concepts from other layers.

Of course neither approach is wrong or right. It’s a matter of striking a balance. Just that so far, what I have experienced is I can implement new functionalities much easier because codes are placed properly and can be reused with the tradeoff being more source files and over-complication. But it also show that I care about the details, I’m creative and have an active imagination.

That’s also why I do feel stifled by my current work place. It’s like I keep hitting a ceiling. It’s painful and depressing.

Anyway, I also just heard that a colleague in my department, who also joined on the same day as me, has quit. From what I heard, she was extremely frustrated with the processes and culture.

Well, not just her. Me too. And another colleague of mine too.

But I’m still hanging on because I’m waiting for my pay day. After that, I will see how it goes.

One last thing. I have signed up for a landscaping course a few months back. That course is this Thursday. It was more of a one day introduction course but I wanted to use it as a way for me to get new ideas, understand the landscaping industry and broaden my knowledge.

Now, I do see myself as a seeker. And so I will constantly seek for new knowledge at my own pace. That’s how I expand my creativity too.

Daily Log #116

Yep, yep, I’m definitely fat.

The reason I said that was because when putting on a pair of shorts earlier this afternoon I couldn’t button it up. Well, I didn’t measure my waist but I suspect my waist has got to be around 34 or 35 inches instead of the original 32 inches.

So… that’s depressing and it’s my fault really. I used my allergies as an excuse of not exercising outside when there are other ways of exercising at home. Then because of me not wanting sweat to roll off my face and wash away the serum and cream I put on my face when going to work, I didn’t use stairs or walk too much.

Finally, there is the problem of my diet. I thought a high-fat/protein diet will help but it won’t work if I’m living a sedentary life. My metabolism at my current age just isn’t high enough to burn whatever calories I consume.

I also came across a few articles about how allergies are actually signs of inflammation in your body caused by weight gain and that high level of histamines caused by inflammation also make you gain weight. So it’s a chicken and egg problem.

So what I can do is to lose as much weight as possible over the next few weeks and months to bring the inflammation under control and maybe reduce my allergies.

Sigh… come to think of it… managing my diet, my sensitivities and allergies is such a pain in the ass. So much so that I hate my life.

Enough of my self-absorbed whining…

I spent most of my weekend playing Mass Effect Andromeda and I realize it has gotten more and more boring because of the repetitive nature of the tasks and assignments. Some of the mission keep taking you back to the same old set of planets and the travel between the star systems do feel tedious after a while. And then there are so many bugs that Bioware didn’t bother to fix because they rather spend the resources on building Anthem.

No wonder the game wasn’t exactly winning awards and got so much flak from fans. It didn’t do a good job as a science fiction RPG like the other games released during the same period.

And finally, Iron Fist Season 2 is out on Netflix. So I spent some time to watch the first three episodes and thus far I enjoy it. In terms of fight scenes, it does look like Finn Jones has had time to prepare and look more natural. In the first season, he did look like he wasn’t as fluid when fighting. The actor did mention about him rushing to film the ten episodes then and didn’t have time to prepare in an interview.

Daily Log #115

Oh my goodness.

How the hell did my weight go from 76kg to 80kg…and one year before that was 72kg and the year before was 64kg

Now let me break it down…at least for the rise from 76kg to 80kg.

I stopped walking to the train station and instead took the bus because of the weather. So I don’t sweat as much nor do I expend as much energy. In part, I didn’t want to have the cream I applied on my face to come washing down.

I live a mostly sedentary lifestyle due to my work and hobbies.

The only time I run is on a Sunday.

I switched to a high-protein and high-fat diet but I think the portion is a little too much. And I skipped two mini meals. And I had too much to eat for dinner today.

A colleague actually commented I looked thinner. I don’t know how much of it was a lie.

So what’s going on?

Excessive water weight? 4kg of it? Is that even possible?

Or I’m just really fat…and my metabolism just slow down even more.

Ok, I guess tomorrow, I will start walking to the train station again and no more bus ride. And maybe I will stop drinking barley or ginseng in the morning. They do contain sugar. My body is just sensitive to sugar.

Let see if I can get my weight down again…

Daily Log #114

I went for my third VBeam treatment after work. When I was there, the doctor noted that I have fresh acne outbreaks. I told him that I tend to get them like almost everyday, especially on my nose area. He took a quick look and saw there are icepick style scars. Due to the nature of these scars, they get block really easily and thus causing inflammation and outbreaks. With that, he decided to prescribe me Stieva-A 0.05% to apply on areas with consistent outbreak and see if my acne can be brought under control. He also said that it’s pointless to keep doing the VBeam treatment because the skin will form new scars again and again because of new outbreaks. It’s a waste of the money.

In two weeks’ time, I will go back to see him again so he could determine if the cream have any use at all. It is important to let the skin heal and rest from acne outbreak so that whatever treatment done is effective.

I seriously hope my skin will behave.

Now, if the acne still doesn’t go away, then I will have to undergo another treatment call Agnes. This treatment will selectively destroy oil glands in areas where there’s constant acne outbreak.

My concern now is price tag. I mean my only credit card is having only 2/5 of its original credit limit left and I can’t afford it until I pay off the existing installment plan that I took on for this current treatment.

I don’t remember if I mentioned this yet but today marks the start of my second year contract with my current company. I just know that I don’t feel particularly excited or motivated. As long as I get paid, that’s it.

While my colleagues and I were heading for lunch, I asked one of them if she wants to work for an insurance company and program in Java. Her response was, “Not really. I want to go and do data science.” I pointed out that she didn’t really have sufficient experience in that area. Her reply was, “She didn’t say she want to be a senior person. Just a junior role will do.”

Then we talked about the pain of doing project. I don’t know how much truth there was in her statement about preferring to do products instead of project. But I know my truth. My mind don’t operate in a “project manner”. In fact, I feel stifled and restricted by project-style thinking.

In a project, the requirements are already defined for you. Anything more, not within scope, you don’t do. If the customer want it, then there will be change request and is chargeable. And last minute changes to the software happens almost every time because the customer already paid for it and they have the right to do so. So at the end of the day, there’s just no meaning to my work. It’s like I’m being controlled and pulled along for the ride by force.

When it is a product, it’s different. Usually, it’s the management who set the direction of where to go with the product. And if the management team is discipline enough, they will reject changes that don’t fit into their direction. You get to do research, develop, test and rarely would you get your creation thrown away or ideas rejected. If it is not part of this release, it will be part of the next unless everyone concluded it wasn’t the best idea or solution.

In my mind eye, product-style software development work is just more flexible and fulfilling.

I also noted that throughout my programming career, I hadn’t really saw any project to the end except for my first paid programming job, which I’m still maintaining for my client as a freelancer.

And it is also the only work I have done where I’m the happiest with and proudest of. Like I said earlier, it’s not about the scale of the project. It’s about whether I feel fulfilled by it.

Well, I’m not saying my current job is completely meaningless. There are certain things that I have done which I’m proud of with the added bonus of my manager giving a round of applause in a meeting. And that my team lead gave me as much leeway as possible in terms of applying my creativity and ideas. It’s just that I really really hate the firefighting mode the team is engaged in. I also hate the constantly need to go down to site to deploy and test. Right now and for the longest time ever, I only just want to create stuff with programing. I don’t want to do configuration, deployment, or maintenance. If I really want to do devops, I will do devops. But I don’t. I’d rather go for a two hour meeting where we discuss how to design the best UX or bring users onboard to our software.

So I will see how it goes over the next few months.

And now I’m really tired. Time for bed.

And one last thing, I decided to take an anti-histamine this morning. I regretted it. Mental fogginess and extreme tiredness the whole day.

Daily Log #113

I’m tired.

I’m feeling the same thing I felt several months ago when I find myself lacking the motivation to write codes anymore. I’m starting to question myself, asking what I am actually doing and why am I doing this.

The reason for my doubts stemmed from what has happened lately.

Yesterday I wrote about encountering a bug with the access control. Today, I realized I made another stupid logical mistake in my code and it was related to how online users are determined. And it took me nearly half the day before I realized what was wrong.

I will give a context.

In the project I’m working on, online users are defined as follows:

An online user is defined as anyone who is logged in to the system and that there remains some sort of activity (be it a heartbeat or a click or a mouse move) starting from five minutes before the function call.

It sounds so simple right. And in fact it is.

But you know what I did?

In the function that I wrote to do that checking had the following definition instead:

An online user is defined as anyone who is logged in, has some sort of activity between the time at the point of the function call and five minutes before.

Now compare again with the original definition and notice what’s the difference?

It’s not really subtle either and yet I can make this kind of mistake.

When I realize it I felt so stupid.

And in fact when I did tried to discuss it with my colleague because she notice some oddities with the result returned. But she’s of no help because she couldn’t grasp what I was trying to say. And I swear I was very clear, even articulating what is related to what. She make me go round and round until we finally agree on that original definition is what needs to be done. It was only after that disucssion, I made that discovery of what I have done.

I think deep down, it stems from my frustration and unhappiness about the current fire-fighting mode and my intention of wanting to deliver additional features and functionalities to improve the overall quality is being knocked down repeatedly.

My team lead said this to me: “User didn’t ask for it. Don’t do it since it is not important.”

Yet the features I suggested not only will help the user but also help us when it comes to deployment or maintenance.

I have in fact told my team lead time and time again, I don’t think in terms of project. And I never do. I will always think in terms of product and future use cases. Again it is also linked to why I do what I do. I want to make people’s life easy. Mine included.

And no, I didn’t forget about the user requirement specification document and what the customer signed for. In fact, I think I have consistently delivered on those features mentioned in those documents and have been tasked to me, and then more.

You know, I also felt like there is this nagging presence at the back fo my head that screams, “Fire fire fire! Put it out now!” It has gotten to a point where I could no longer bring myself to devote so much attention to something I’m working on because I don’t know when I will be pulled away.

In hindsight, my colleagues probably don’t feel this way. Whatever stuff that comes will probably roll off their backs without causing much harm or damage. Not for me. Not this highly-sensitive programmer who feels things differently.

And I really don’t think anyone understands what is it like, at least not in my current workplace.

I have also gotten some emails regarding job opportunities and after reading those job descriptions, the feeling that I’m no longer suitable for this line of work comes creeping in. I also recognize that it is the only thing I know how to do well and I have spent the last ten years working with computers in one way or another. So I’m struggling in a way that I don’t know what’s the solution.

Of course I know what is ideal.

Ideally, the kind of work environment that suits me is where the bosses understand where I’m coming from and how I can contribute to their business while I also understand and can support their vision and mission. I honestly am not looking for something extremely large scale like the one I’m working on. To me, even if the application I’m building for is only used by ten people, I will still feel fulfilled if I get to do what I love to do without someone telling me, “this is not important, don’t do it.”

But there is no ideal environment and what I can do is work within the limitation. Yes, I have tried. I have been trying for the last one year in this company and I still feel empty most of the time. So most of the time, I’m like looking forward to my paycheck only.

No amount of sleep or inspiration can make you stop feeling jaded, especially when that jadedness is brought on by the constant crashing into a wall that doesn’t even crack or budge once. And no, you can’t go around it either.

Daily Log #112

As I mentioned yesterday, I decided to go with a high protein/fat diet but that doesn’t mean I cut down the carb in the form of rice. And the best thing happened. I didn’t feel hungry nor do I find myself snacking on anything until 7.30pm. Considering I had my lunch at 12.30pm, I call that a win.

By high protein/fat, well, I went with 1.5x the serving of Char Siew Pork and 1.5x the serving of roasted pork belly with one egg. There is also a liberal amount of sauce.

I’m sure people probably suspected that I ate beyond the calories I need from that single meal. And I agree. But what people fail to realize is digesting food also take energy. For that amount of fats and protein I have consume, at least one quarter of it is spent on digesting. Combine that with exercise, I think I can bring my weight under control…hmmm…yup…lots of it is wishing thinking…but had to try it to see how it goes.

That aside, there’s something that grind my gears at work.

The company that I work at now pride itself for being an engineering company. Even the management from time to time will cite at their core, they are all engineers. There’s nothing wrong with that only except the actions I have seen coming from my management team, at least on the project I’m on, ran contrary to that.

For me, I just feel that processes and best practices should be followed as thoroughly as possible with no compromise on safety and quality. For something to have utmost safety and quality, testing is a big part.

Yet, in the software project I’m on, there is no unit testing, no proper regression testing. The only test conducted is by the developers themselves. And developers, no matter how senior, can fall into the trap of testing only the happy cases and a few exceptional cases. Hell, even I myself can forget about certain edge cases that my old codes have catered for but was ultimately removed as part of refactoring. And then there is always the situation when I want to do more testing, I got called away to do something else. This sudden context switch always make me forget what I was trying to do before. And it doesn’t take long for other tasks to come along later in the day and make me forget about my changes. Before I realize it, that code is deployed to production and things start breaking.

As with anything, it takes two hands to clap. I maybe highly conscientious at work, able to think of edge cases and whatnots, but I’m only human. I’m not infallible. My memory can fail me.

The lack of testing won’t be so bothersome if nothing bad came out of it. But for the last four months alone, my team and I have been fighting one fire after the next due to the constant demos, trial runs, etc. and that the application kept breaking. Even today too. The customer wanted to do a trial run with the application because they are complaining we took too long to go production.

Therefore, my colleagues went to the customer’s main office to start installing the applications necessary last Friday. Then today during the trial run, there was some access right issues.

For context, that issue is actually caused by a bug in the logic that handles access checking whenever user request for access to specific resources. This bug actually surfaced early august, two days before Singapore National Day when the application was supposed to be trialled by the user.

And that piece of code was written by me eight or nine months ago but was never fully tested. It’s my fault for not doing sufficient testing and always default to using the super admin account. And I didn’t expect it to go to production so soon anyway.

Well, because of National Day being two days away, I had to manipulate the data to allow the access checking to always succeed, at least for the trial. After that event, I spent one and a half day testing the crap out of the new code I wrote and then roll it out to our development environment for testing by an internal tester. It worked. However, the fix was never released to production because the codebase already have many other new features implemented. We didn’t want to risk deploying an even more buggy application when there is two more demonstrations after that.

And I did hate myself thoroughly for writing that lousy piece of code.

So I wasn’t surprised if the bug surfaced today again but it was not in a way I expected. Hell, I even drew the wrong conclusion. The bug was even more sneaky, if that’s the right word to use. It turned out there was also a logical error in how the code determine which user belongs to which group that ultimately decide the kind of resources the user can access. It’s a double whammy.

The only time the code worked as intended is when the user belongs to one group and it must be the first group that comes up for checking and must always return true to the caller. Then all the resources has to be in that same group. Resources belonging to another group will also work, if and only if they are also in the first group.

Understand where I’m going so far?

The logic falls apart for every other case and will always return false, therefore permission denied.

So if you are me, and have been doing programming for more than ten years (including school), don’t you want to kill yourself over this?

I got to say this is one of the worse bugs I have ever introduced into a system.

And in my defense, seriously, don’t distract me or rush me or ask me to context switch. This is what happens and will happen always. Whenever I do something, I want to devote all my attention and energy into that one single thing.

Given how this company operate, I doubt I can have that option. And I’m also doubting my ability to continue this line of work at this kind of pace. I just feel like there is no “deep work” anymore. I also don’t see myself developing tunnel vision as of late. And I got to say tunnel vision is a good thing when applied correctly. It is especially useful when you are writing a single piece of function or code and then you get to test the crap out of it.

That reminds me of something my colleague said to me this morning too when I provided her an API to retrieve recently online users that did kind of make me roll my eyes.

For context, there is a minor bug with the API that seemingly returned duplicated record because of a failure to limit the time range. The second is that it may need a scheduled task to ensure the data for the heartbeat for the user’s session is updated when the client is logged out or dead (hang or non-responsive).

What happened was, my colleague actually asked me to perform that update when the Get Current Online User API is called.

Deep down, I’m like, “ARE YOU FUCKING SERIOUS, LADY?”

Look, I care deeply about best practices. I care about code quality and standards. Best practices exist because they prevent the code from becoming a big mess. So… whatever function I wrote is always adhere to SOLID principle whenever possible and will always be for one specific use case. A new use case equals a new function or a series of related functions with one common entry point. Therefore, a Get/Fetch/Find function will always do just that. Retrieval operations only. Same for Update, Add or Create. And I follow the naming convention of domain driven design so that the original intent of the function is not lost.

And you are asking me to perform an “update” in a “get” operation?

Are you serious?

Are you fucking serious?

To think that you work for far longer than I have…

No wonder your own code based is also a huge mess that don’t make any sense when I read it. Wrong use of static functions and variables. Wrong use of private methods. Wrong use of double dispatching. Wrong use of model when in reality it is a service. POCO everywhere with zero object orientation.

Despite me always saying want to quit IT and programming in general, turns out I still care a lot because all the things I mentioned do affect the final quality of your work, whether tangible or not. I believe in that.

So I have three options.

  1. Encourage my colleagues to change their mindset
  2. Accept that kind of crap mindset and do my work.
  3. Leave for a place that does engineering/design better.

I for one is leaning towards the third option. The first option will just be a waste of my time and energy. I just won’t do option two. I can’t turn a blind eye to it.

And I remember I once told my supervisor during my first internship and first job (they are the same person), “I will always strive to write the perfect piece of code that is as bug free as possible.”

She replied, it’s not quite possible. And writing good code means you won’t have a job anymore because there is no need to call you to fix bug.

For me, it’s never so much about having a job. It’s about the attitude to whatever I create and output. It’s also about showing to everyone that I can write really high quality code and that you can trust I will do the same over and over again. That is just my conscientiousness talking.

Ok, this daily log is bit long because I wanted to get stuff out my chest.

And I will end off this log with the following:

Truly quality work comes from within, comes from that strong desire to create something that make people’s life easier and stress free with liberal application of attention to detail.