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.