All Articles

Message Batching to Increase Throughput and Reduce Costs

A while ago, I was working on a backend system on the AWS cloud. Individual services in the system communicated by exchanging asynchronous messages with each other using Amazon SQS. D...

Aug 03, 2017

Amazon DynamoDB Auto Scaling

Amazon DynamoDB supports Auto Scaling which is a fantastic feature.When enabled, Auto Scaling adjusts read and write capacities of DynamoDB tables (and global secondary indexes) autom...

Jul 29, 2017

AI Is Not Magic. How Neural Networks Learn

In my previous blog post, I claimed that “AI is not magic.” In this post, my goal is to discuss how neural networks learn, and show that AI isn’t a crystal ball or magic, just science...

Jul 28, 2017

Fix Employee Weaknesses or Focus on Their Strengths?

In “First, Break All the Rules: What the World’s Greatest Managers Do Differently” the authors, Marcus Buckingham and Curt Coffman, have put together their observations from more than...

Jul 26, 2017

Tweaking TCP for Real-time Applications: Nagle's Algorithm and Delayed Acknowledgment

TCP is a complex protocol.Don’t get me wrong. It is a marvelous piece of engineering that gives us the reliable data transmission guarantee that other protocols don’t provide. Reliabl...

Mar 19, 2017

Cluster Analysis Using K-means Explained

Clustering or cluster analysis is the process of dividing data into groups (clusters) in such a way that objects in the same cluster are more similar to each other than those in other...

Feb 19, 2017

Certificate Authorities - Do You Know Who You Trust?

HTTPS (aka HTTP over the secure TLS protocol) provide a secure communication channel between web browsers and servers to guard against man-in-the-middle attacks. Although researchers ...

Feb 18, 2017

Testers Make Software Teams Highly Productive

To put it mildly, developers are not great at testing their own products. Bias, pride, wrong assumptions, lack of time, switching contexts, all play a role in making developers ineffe...

Feb 17, 2017

What Is Yak Shaving? Advice for Software Developers on Staying Focused

Yak shaving is defined as: what you are doing when you’re doing some stupid, fiddly little task that bears no obvious relationship to what you’re supposed to be working on, but yet a...

Feb 13, 2017

Committing Teamicide by Micromanagement

What is micromanagement?Micromanagement is a “management style whereby a manager closely observes or controls the work of subordinates or employees”.Micromanagement is bad. It hurts m...

Feb 08, 2017