How to run better stand-ups


There is a high chance that you attend or have attended an inefficiently-run stand-up. I have seen various stand-up styles over the years. Sadly, most of the roughly 2000 stand-ups I attended were unproductive. Mildly put, most were status reports for some manager or higher up.

How well do you know JavaScript Arrays?


I decided to write about sparse and dense arrays several months ago. I thought it would be easy and imagined writing a masterpiece based off my multi-year experience with arrays. Alas, my foray into the intricacies of Arrays unearthed surprising discoveries and shattered my brittle expertise. This series of posts describes my learnings and Aha moments.

Taking on scary challenges


You have two choices when new challenges emerge: Offer several reasons why things wouldn't workSeek growth opportunities from the challenge Let's talk about the latter option. Scenario Your team dances through complex rituals every month before it can successfully deploy a big batch of changes. Engineers dread the drain on developer productivity and attendant customer … Continue reading Taking on scary challenges

Doers, not Talkers


Common refrains This problem is all because of team ABC... I know the problem very well, it is because of XYZ condition but ... I did not do that, John Doe caused it! Why isn't leadership changing anything? I bet you've heard these before. Is there always a reason, an excuse or some other party to point … Continue reading Doers, not Talkers

What values do great leaders encourage?


I have had several managers across several teams and projects. This has exposed me to various management styles and taught me what to emulate and what to avoid. There are no silver bullets when it comes to leadership however these are a few things I appreciate. 1. Openness Openness builds trust: a fundamental ingredient for … Continue reading What values do great leaders encourage?

Understanding JavaScript Array methods (2): slice


An idiomatic way to create shallow copies of arrays uses slice. This post dives into the slice method and describes a few more tips and tricks. At the end of this post you should know the output of [1,2,3].slice(-3,-1). Slice The full method signature is arr.slice(start, end). Start and end are optional parameters defaulting to 0 and arr.length respectively. … Continue reading Understanding JavaScript Array methods (2): slice

Results over Actions


A lot of time, I see engineers promising to boil the Pacific Ocean while climbing Kilimanjaro. I love optimistic engineers however there are also physical limits to what is possible. Another common refrain is "I worked so hard on x but I don't know what happened". Whenever I poke deeper, it's nearly always a case … Continue reading Results over Actions

Sorting in JavaScript


What does the JavaScript snippet below return? If you think it would be [1, 2, 3, 10, 20, 30], you are in for a big surprise! Why? The default sort in JavaScript is the lexicographic (alphabetical) sort. All operands are cast into strings before comparison; see this section of the JavaScript spec. It is possible to override this … Continue reading Sorting in JavaScript

Understanding JavaScript Array methods: Unshift and Shift


Shift and Unshift are the counterparts of Push and Pop. This post provides a deep dive into their applications. Unshift Unshift, a unary function, 'shifts' the array to the right and inserts its parameters into the first slots. It then returns the new length of the array. It is the complement of push which appends values … Continue reading Understanding JavaScript Array methods: Unshift and Shift

JavaScript Array Deep Dive: Push and Pop


Push and Pop are two popular methods for handling arrays in JavaScript; this short post explores both array methods. Push Push is used to add elements to the end of an array and returns the array's new length. Pushing a new element into an empty array will return a value of 1 (the new length of the … Continue reading JavaScript Array Deep Dive: Push and Pop

Being Deliberate


What would you do in the following scenarios? Presenting radical new ideas to an unreceptive audience Collaborating with parties with opposing interests In all these scenarios, it is expected that stakeholders will push back and might even expose gaps in your plans. How do you increase your chances of buy-in? In the past, I would … Continue reading Being Deliberate

Leading teams: Stop giving answers


Stop giving people answers all the time! I love helping engineers and resolving tricky issues. This exposure to a wide slew of problems was awesome until I became responsible for large parts of the codebase. Then, I realized that my 'answers-always' approach made me a bottleneck, got me randomized and did not nurture new leaders. The … Continue reading Leading teams: Stop giving answers

Windows Operating System Metrics: CPU


This is a screenshot I took of my CPU metrics on my computer. This post provides a deep dive into the information contained in the Task Manager panel. The Graph The graph shows a sliding window plot of CPU utilization against time. Utilization: shows how much 'work' is being done by the processor. This includes … Continue reading Windows Operating System Metrics: CPU