Docker is…

Docker is a computer program that performs operating-system-level virtualization, also known as “containerization”.

Docker was first released in 2013 and makes up more than 83 percent of containers as of 2018. Major companies like Business Insider, Spotify, Yelp, eBay, Expedia, PayPal, etcetera use Docker, and many more companies are planning to migrate their existing infrastructure to containers. There has been tremendous momentum across the Docker container ecosystem since its launch.

Why is it so popular and why should you use it? By the end of this article, you should have the answers to those questions and a good understanding of…


Since writing my previous article about the CAP theorem, I have come to realize that I may have misunderstood the CAP theorem and that consistency and availability could be potentially achieved(?).

While the CAP theorem asserts that consistency and availability cannot be achieved simultaneously in a distributed system, the CAP theorem defines availability and consistency in strict binary terms. The term “availability” is defined as a continuum and consistency can be divided into different levels, such as weak consistency, strong consistency, read and write consistency, and final consistency. …


While writing about load balancers, I stumbled upon the CAP theorem, a distributed systems concept, and was the perfect segue into my next article.

Load balancers serve to distribute load among multiple servers to prevent single servers from overloading. In other words, it increases the availability of applications for users. Backtracking from load balancers, the CAP theorem states that any system can only support two among the three: Consistency, Availability, and Partition. Distributed systems engineering is full of tradeoffs and CAP theorem focuses on one such tradeoff between Consistency and Availability.

Given that networks are not completely reliable, no distributed…


Load balancers distribute traffic efficiently across multiple servers which decouples the overall health of a backend service from the health of a single server to ensure that your services stay online. In layman terms, a load balancer is either a piece of hardware or software that works like a traffic cop for requests.

Load balancers are key to building distributed systems because they give applications the following benefits:

  • Redundancy — eliminate failures when one server dies; as long as there is at least one application server left, the load balancer can still direct client traffic to the remaining working application…


Troubleshooting is a form of problem solving, often applied to repair failed products or processes on a machine or a system. It is a logical, systematic search for the source of a problem in order to solve it, and make the product or process operational again — Wikipedia

When there is a major outage and a bug reported, it is natural to start troubleshooting and to try to find the root cause as quickly as possible. Although identifying the root cause would be the first response, the recommended course of action is to make the system work as well as…


Today, I bring you a virtual coffee chat with Aileen A. Tapia ☕️ Many may know her as a successful consultant at Accenture, an Industrial and Systems engineer from UTEP, or a career mentor. During my chat with Aileen, we covered various topics spanning from picking a major at university, working as a consultant, to growing financial literacy and personal finance.

What decisions and interests led you to pursue a degree in Industrial and Systems Engineering at the University of Texas-El Paso?

Like many students, picking a major for Aileen was not straightforward. She faced a lot of confusion deciding…


Concurrency can be explained as the decomposability property of an algorithm, a process or a task into order-independent or multiple events within overlapping time, but not simultaneously. Concurrency is a decoupling strategy which splits up what gets done and when it gets done. Single-threaded applications couple the what and when.

Concurrency is the ability of different parts or units of a program, algorithm, or problem to be executed out-of-order or in partial order, without affecting the final outcome. — Wikipedia

Writing clean concurrent program can be complicated. Single thread program are much easier to code. However, there is a need…


What is consistent hashing and how does it work? Consistent hashing is a simple yet powerful strategy for divvying up data between multiple machines. This algorithm is particularly useful for systems with large distributed databases with many machines powering high-traffic applications and dynamic websites.

As you would have guessed, consistent hashing works very similar to hash maps. It differs in what is mapped by a key. Hash maps map a key to a value whereas consistent hashing consists of key-machine pair.

Consistent hashing works independently of the number of servers or objects in a distributed hash table. Without a fixed…


Product Management roles has seen a stark growth in the recent few years — “Golden Age of Product Management”.

The accelerated pace of the tech industry, customer expectations and digital transformations has created a high demand for visionary and strategic PMs. Two such incredible Product Managers are Chaitra Rama Rao, Senior Product Manager at Couchbase, and Vidya Srinivasan, Senior Product Manager at Microsoft.

At Her Tech Hour’s How do I become a PM webinar hosted by Bianca Alvarez, Co-Founder of Her Tech Hour, these incredible ladies shared their insights on product management and advice on prepping for PM interviews and…

Priyanka Hariharan

>> 𝘨𝘪𝘵 𝘤𝘰𝘮𝘮𝘪𝘵 -𝘮 “𝘵𝘦𝘤𝘩 𝘮𝘶𝘴𝘪𝘯𝘨𝘴 𝘢𝘯𝘥 𝘭𝘪𝘧𝘦 𝘤𝘩𝘳𝘰𝘯𝘪𝘤𝘭𝘦𝘴” | Computer Engineer @UWaterloo 👩‍💻

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store