Today I Learned…
Warning: This is just going to be a random blog entry written with whatever is coming out of my mind.
I am reading The Phoenix Project. It’s a book about an IT manager, Bill Palmer, who was promoted to a CIO and undertaking on the “Phoenix Project”, which is crucial for the company’s survival.
I recently read this on page 121, and Bill says
… We need the people doing the work to know what the hell they’re doing, not enable more people to hoard knowledge
It was said due to a guy named Brent, an able lead engineer, who is a major bottleneck in WIP (Work in Progress) of all the projects because he is just good at what he is doing and requested by everyone to fix a problem.
That sentence was stuck in my head because I was able to relate to it.
There is an engineer, (Mr. G). in my department who is very much like him. Without him, many problems couldn’t be solved since he knows internals and workflows of how company works and he is technically savvy.
Here is what happened recently.
I was assigned for an important update in an Accounting System. Because I have no idea what needed to be done, it was mostly likely that I had to bring in Mr G from the get-go and have him check my work constantly to see if I am going in right direction. That’d make him a bottleneck in WIP for all other projects. So I took a different approach after being reminded of what Bill said.
Instead of Mr. G. “hoarding knowledge”, I decided to take 10 minutes of his time asking about, who I am making a change, why the update is needed, and what need to be changed (I forgot from which book I learned this concept from…).
When I got to ask him “why” questions, he then gave me a story of how the change request came to be. When he explained to me the end-user workflow, I then found a way to “validate” my own work without having to ask Mr. G to verify the correctness of the changes made. Now he doesn’t have to be involved with my changes and he can move on.
Mr. G. spending 10 minutes sharing his knowledge helped him free his time as well as mine in the long run. Another benefit I got out of is that I have a better understanding of what needs to be done and where the change fits in a bigger scale.
It was Saturday night. I had a lot of time on my hands so I decided to browse Reddit.
Reddit has so many links, clicking on each link manually was a burden to my hands and wasn’t time efficient.
I decided to automate opening each link.
The problem is that GoodReads API did not enable Cross-origin resource sharing (CORS) headers thus AjAX calls were failing.
How can we get around the issue?
There is a really cool course on Coursera regarding Union-Find. The course was quite refreshing because I was never exposed to this simple concept before.
I just wanted to share the link for those learning graph theory as I am.
Now comes the boring stuff (how I found out about it and what I did with it).
I was called into CSO (Chief Strategy Officer)’s office one day and out of nowhere to explain some C# keywords. I wasn’t sure if he was asking me because he didn’t know or to test me. far as I know, He had a technical background and was a programmer himself at one point in his career.
Nearly 10 years ago, I created a .NET library that creates both .NET dll as well as COM dll.
VB6 application that depends on the library is still in use after 10 years.
I had much problem figuring out what went wrong and also learned much along the way.
I knew that I was on the right track since answers for test cases were correct. But then I ran into a problem where most of test cases time out after submitting the code.
I’d like to talk about how I solved the performance issue.
I’ve been solving HackerRank problems lately. HackerRank provides many coding problems.
Each problem has a discussion forum to post algorithms and sometimes answers. After solving each question, I compare my answers with those of others.
After reading Clean Code by Uncle Bob, and listening to Coding blocks podcasts with titles that begin with “Clean Code – *”, I decided to write a more readable code even for solving a simple question.