Book Review: Thinking in Systems


The book discusses the fundamentals of systems theory, emphasizing interconnectedness, stock, and flow dynamics. It highlights systemic problems, such as addiction and resource management, and explores how common misconceptions can lead to ineffective approaches. It underscores the importance of understanding system behavior and structural change for driving impactful outcomes and sustainable solutions.

Book Review: The Mom Test


The Mom Test is a concise and impactful guide for startup founders, emphasizing the importance of asking the right questions to distinguish genuine customer needs. It highlights common mistakes and provides practical advice.

Book Review: Waltzing With Bears: Managing Risk on Software Projects


This book places a heavy emphasis on risk and academic analysis. The key lesson is to avoid relying on lucky breaks in plans.

Paper Review: Dynamo: Amazon’s Highly Available Key-value Store


TLDR ★★★★ Very easy to read. Direct link to the paper. Interesting takeaways Novel approach to conflict resolution: Unlike most data systems that push conflict resolution to the write phase, Dynamo allows writes and shifts conflict resolutions to reads. This unique strategy ensures that writes are never rejected. Quality: An impressively high bar by focusing … Continue reading Paper Review: Dynamo: Amazon’s Highly Available Key-value Store

Scaling past Port Exhaustion: when 100k+ ports were not enough


One of my favorite technical projects involved overcoming a network constraint. The virtual machines (VMs) hosting the core services kept exhausting available ports. Once all ports were used up, new connections would fail, tanking our availability and reliability. Read on to learn how we overcame this issue and opened up opportunities to reduce costs by a third.

Book Review: Slack, Getting past burnout, busywork, and the myth of total efficiency


Leaders (managers, directors, VPs, etc.) should read this book if they want to create teams that execute predictably; the book also covers culture and other subtle elements that make teams work efficiently.

Book Review: A Philosophy of Software Design


The book’s core thesis is minimizing complexity in software development by adopting complexity-eliminating approaches. The upfront investment in learning and adopting better designs pays off because it leads to high-quality software. Recommended read for software developers and line managers.

High Output Management: Chapter 2 Review


A summary of chapter 2 of high output management

Check Endianness with JavaScript


How to check for endianness using JavaScript

Lessons learnt from 8+ years of constant learning


Tips for making learning a habit and maximizing knowledge acquisition

Lessons learned from running services at scale: 1


Tips for running services at scale with minimal toil

Guaranteeing software behaviour


My foremost goal while building software is to build stable self-healing systems with deterministic behaviour. I want to ensure my code continues to work even when unexpected events occur. In the event of unknown unknowns, the expectation is a graceful degradation in the worst case.

5 things I learnt from solving 100+ hackerrank algorithms


Sometime last year I started to solve hackerrank problems at my pace and here is my progress after about 108 days ago.

The Exclusive OR (XOR) Explained


I recently ran into a code puzzle; the question asked for the finding the unique element in a list of integers given that every integer appears twice except the single special element.

Reading is not enough


I used to read a lot in the past without practicing what I learnt; that exposed me to a variety of ideas and empowered me to discuss a lot of things. Over time, I found out that I mostly didn't 'know' what I thought I knew.  Yeah I know it sounds somehow but it's really true. True understanding … Continue reading Reading is not enough

Why you should not use isNaN in JavaScript


Nan literally means Not a Number. Yes, it means that value is not a number and occurs when you try to coerce a non-mathematical value (e.g. string) into a number.

Why computer science matters for software developers


I used to think computer science never mattered because I rarely used algorithms and never saw the value of algorithm-based interviews (I still don't ;) ). The few folks I asked also concurred so I felt I was right.

What every programmer should know about types I


the mathematical concept of sets in number theory. The set of integers can be seen as a type - only values such as 1, 2, 3 are integers; decimals (e.g. 1.1) or irrational numbers (e.g. π) aren't members of the integer set.

Why JavaScript has two zeros: -0 and +0


Do you know there are two valid zero representations in JavaScript?

Understanding JavaScript Property Descriptors 2


Continuing with the dive into property descriptors, this post goes deeply into the properties, what they mean and how they can be used.

Book Review:Build your own AngularJS


As part of my continuous learning; I started reading Tero Parviainen's 'Build your own AngularJS' about 6 months ago. After 6 months and 127 commits, I am grateful I completed the book.

A simple explanation of 1s complement arithmetic


A simple explanation of 1s complement arithmetic - a basis for how computers run.

Understanding Bit masks


Bit masks enable the simultaneous storage and retrieval of multiple values using one variable. This is done by using flags with special properties (numbers that are the powers of 2). It becomes trivial to symbolize membership by checking if the bit at a position is 1 or 0.

Influential Books for programmers


I try to read a lot of books. Over the years, my 'taste' for books has been refined and some of my criteria are listed below.

Learning ES2015 : let, const and var


Lions at the zoo Zoos allow for safely viewing dangerous wild animals like lions. Lions are caged in their enclosures and can't escape its boundaries (if they did, it'd be chaos eh?). Handlers, however, can get into cages and interact with them. Like cages, you can think of variable scoping rules as establishing the boundaries and walls in … Continue reading Learning ES2015 : let, const and var