Wednesday, December 19, 2018

Leadership Team Building

A team is only as good as the individuals composing it...

Lately, we have been facing tough circumstances that shaken and tested our values, as a team. While it's normal to be in an argument, disagreement and debate -- if it becomes too often, it will burn everyone out without anyone noticing it. If not taken care of "properly", the misunderstanding would eventually split people apart and the ideology of "working collaboratively" would no longer be observed and embraced in the work environment.

We have been into that hole.. and it wasn't good.. neither did it do good to anyone..


Fixing ourselves by knowing others more
As leaders, we act accordingly at the same time act freely and be ourselves. We've identified that most of our misunderstanding and disagreements came from the fact that each one of us have different perspective on things that matters most to us -- and since we all came from different angles, it's hard(er) for us to settle down to ones idea.

During our team building activities, we've made sure that we, as a whole, gets more and in-depth insights as to how each one of us differs from one another. As for myself, here are my take-away.


  • People are not evil - When people speak their perspective about things, it's actually true and right from their standpoint. One could argue about it, go along with it or even challenge the idea. If one is questioned as to "why", he/she should respond as to why and why not. A well crafted answer will surely lead to great exchange of conversations and ultimately get people into an agreement. Communication is the key.
  • You cannot change people - When you present them your perspective, most react according to their beliefs and what they think of it. You cannot change how they react and respond to the thought but you can change how they understand "the thing" you're trying to picture out. It's your responsibility to make people see the outlook you're eyeing, so they could lock down their buy-ins. It's merely impossible for you to change someone, yet, it's possible for you to influence someone and let them be the one to change themselves. There's nothing either good or bad but thinking makes it so. - Shakespeare, Hamlet
  • One's act is only a reflection of who molded them - When people do such thing (anything), it's sometimes not them acting the deed. Most of the time, they become the vessel of the actions of the person who molded them. This is why, it's important that one needs to know ones up-bringing. Consider this factor and you shall see the gem in people's actions rather than the lapses they're about to make. You'll have better understanding of their reasoning and the motivations behind every actions -- you'll empathize more, you'll be more kind.
  • Some principles are shared - People takes different stand on all matters, as they have considered different principles in making such decision. Respect is when you know how to value their stand (regardless if you think it's right or wrong).
  • We all have something to say about someone - Good or bad, we all have something to say about someone. You'll know if what one is saying is true, by their sincerity. You know they care, if you feel like being intimately told.

Hardships pushes the team to work, sparks teamwork
Usually, hard moments break the weak and bring strong people together. Most team building happens in the beach or some places where people could relax and take a break -- we had ours at the peak of Mt. Puting Bato, Samal Island. Going up is one hell of a kind experience, especially if you're carrying good amounts of load (physically and emotionally). Keeping up the pacing to catch-up with everyone at the same time, waiting patiently if one needs to rest -- is what we've observed on the climb. At least, even without talking, we've shared and felt the team spirit.

Mt. Puting Bato, Peak (facing Davao, Mt. Apo)



Mt. Puting Bato, Peak (facing Cannibad, Samal Island)

Retrospect to improve
We just can't be more thankful that we've been disconnected from work for two days and a night. This gives us focus on the things we're all up to and make sure we attain the objective of the team building session. As far as I can see, feel and tell -- we're much better now, we're a bit stronger, we're even bolder. Knowing ones self is very rewarding! Thanks to these wonderful and awesome folks, I call family.

Try it with your team sometimes.. actually.. do it more often.

Onerent Engineering & Growth Leaders

Monday, December 3, 2018

Understanding Beyond Libraries [Matrix Multiplying]

As engineers, we always go for something easy -- something reusable -- and this is the reason why libraries exist and play a great role in programming and software development in general.

To most, understanding the underlying formula for every calculation executed by the code is not that "important" and some doesn't even care at all -- as long as they see something is shown as output. This is why I wanted to take time to at least try my best to explain, why one needs to be curious enough to validate what a program does and tell.




This sample lines of code uses the python library numpy to calculate the output of c = a * b

The output of that equation is:

Now, while that answer is true and correct -- one might wonder, why? Well, I'm glad you asked.
Let's dissect the equation and see how numpy performs the calculation.


NOTE:

  • In multiplying matrices, make sure that the number of columns is equal to the number of rows. Ref: https://en.wikipedia.org/wiki/Matrix_(mathematics)
  • In multiplying matrices, order matters. (ie. Where c = a * b will not show the same result as c = b * a).

EXPLANATION:
  • (i) Take the first column set of a and multiply it with the first row set of b. (ii) Then take the first column set of a and multiply it with the second row set of b. The output should look like 
    • [[-1(-1), 0(-1), 4(2)], [ -1(1), 0(3), 4(4)]]
    • Where [-1(-1), 0(-1), 4(2)] is the output for i and [ -1(1), 0(3), 4(4)] is the output of ii
    • When we calculate this, i will result to 1, 0, 8 = 9 and ii will result to -1, 0, 16 = 15
    • Thus, making the answer [9, 15]
  • (iii) The the second column set of a and multiply it with the first row set of b. (iv) Then take the second column set of a and multiply it with the second row set of b. The output should look like
    • [[2(-1), 0(-1), 0(2)], [2(1), 0(3), 0(4)]]
    • Where [2(-1), 0(-1), 0(2)] is the output for iii and [2(1), 0(3), 0(4)] is the output of iv
    • When we calculate this, iii will result to -2, 0 , 0 = -2 and iv will result to 2, 0, 0 = 2
    • Thus, making our answer [-2, 2]
  • This is how numpy achieves the correct answer [[9, 15],[-2, 2]] -- in a much faster and accurate way.

Some references in dealing with numbers: