Avoiding Test Data Mutation

Say we have a service object, with a dependency injected. The service performs an operation with data obtained from the dependency. For simplicity in this example, let’s say the service would wrap the data into a response hash, with keys success indicating successful operation and data containing the result »

An Agile Marathon

People talk about agile sprints, but how about an agile marathon? Sprints are often held in a controlled environment like a stadium. Variables like temperature, wind, humidity don't change much over a short period of time. The finish line is visible in plain sight. Anyone who has attempted a marathon »

Decorating React Components Using Higher Order Components and Inheritance Inversion

Higher Order Component is a very powerful pattern in React with which we can use functions to turn a React Component into another React Component. In very simplistic terms, a Higher Order Component is a function which takes a React Component and returns another React Component. HigherOrderComponent = Component => Component; »

Why Use Elixir Pattern Matching?

It’s almost twice faster than Elixir’s Enum.any?/2. That’s an observation I had while doing an Elixir exercise on Exercism. In the exercise Sum of Multiples, I had to calculate the sum of numbers from 1 to n, which are multiples of any given factors. Quoting »

GRPC vs REST on Node.js

Quoting from its website, GRPC is “a high-performance, open-source universal RPC framework”. I needed some convincing myself that GRPC is indeed higher in performance and it is worth the additional effort it takes to implement GRPC. What exactly is GRPC? A REST API consists of an HTTP verb which is »

How to Start TDD?

Simply said, TDD is the practice of writing tests first before implementing the code. It starts with writing down the code behaviour we wish to have as tests, followed by the implementation. This is done one step at a time, switching between tests and implementation. In TDD, we let the »