Aka Simplifying Contract Testing


Consider a client (e.g., a messaging mobile app) that interacts with a service (e.g., the corresponding messaging service).

We have three options to test this client.

  1. Test the client against a published instance of the service. If the test expects specific responses from the service (e.g., user X has 10…

Recently, I upgraded to R 4.0.1. To avoid broken packages, I started updating installed packages using installed.packages() and install.packages(). This solution was less than ideal because, if a dependee package was not built for R 4.0.1, then the dependent package failed to build and install.

After some search, I stumbled…

These books cover design trade-offs to consider when scaling systems, the cost and benefits of each design choice, and how current technologies embrace and influence these design choices. They do so while being focused on practice.

Books 1 and 2 are more high-level and cover aspects relevant when designing and…

Recently, while writing an article about logging in Python, I started identifying artifacts and actions that we commonly use when we talk about logging. Here’s what I came up with.

When we use a logging library, we perform/trigger the following common tasks while using the associated concepts (highlighted in bold).

Thoughts on why+how container technology influenced software development


  1. Containers serve as commonly agreed upon deployment units between Dev teams and Ops teams, and this eliminates the possibility of missing artifacts when a Dev team hands over a program to the Ops team for deployment.
  2. Containers allow Dev teams to package any software required by the deployed program, and…

Few things to ponder about; more so, if you deal with data.

  1. If it has become cheaper to produced a new invention, this suggests that we are using our information wisely and are forging it into knowledge. …

Recently, while reading about MPI, I stumbled on the mpi4py library that brings MPI to Python. Given my past familiarity with Python’s multiprocessing module, I was curious how would the performance of MPI compare the performance of multiprocessing module. So, I performed a small experiment.

Computing Julia Set

Since mpi4py is based on…

Truly hiding implementation details

In object-oriented languages like Java, C#, or Kotlin, given a type T, an associated view type TView is used to expose a specific view (parts) of an object of type T. This helps hide implementation details.

For example, in the following Kotlin example, Ledger interface is used to provide access…

On the topic of “excellence as a core strategy”, the book does a great job of providing great insights and quite a bit of food for thought and practice.

As for presentation style, it uses a style almost identical to that of “The Little Big Things” by Tom Peters. While…

Venkatesh-Prasad Ranganath

Programming, experimenting, writing | Past: SWE, Researcher, Professor | Present: SWE

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