• Expressiveness, Nullable Types, and Composition

    absent is a tiny open-source C++ library meant to simplify the composition of nullable types in a generic, type-safe, and declarative style.

  • Object Instantiation, Immutability, and the Expression-Oriented Style

    Declarative Programming encourages us writing programs by composing expressions rather than statements as we usually do in Imperative Programming. Let’s briefly see how we can from this style of programming.

  • The Beauty of Total Functions

    The joys of APIs that don’t lie to us.

  • A Brief Introduction to the Algebra of Types

    It’s been common to find talks and articles describing what an Algebraic Data Types (ADT) is. Particularly, we’ve been testifying sum types finally making their way into mainstream programming languages. We shall briefly discuss ADTs and understand how we can profit from this cool trend.

  • Refactoring a CMake Build System

    A piece of advice that may help when porting a build system based on CMake to use a modular approach following the so-called Modern CMake set of practices.

  • Be Proud of your Shell Scripts

    Automation is not only a fancy trend but rather a reality that plays a vital role in the Software Engineering world. Besides the multitude of “modern” tools, the Shell, our good and old friend from ’70s, still plays and will keep playing a major role. Therefore, it deserves more care. Let’s be prouder of our shell scripts.

  • Function Composition of STL Algorithms with Ranges

    STL is a fantastic tool that C++ provides us and using makes our code more expressiveness, cleaner, and correct. However, STL algorithms may sometimes involve a bit of boilerplate, especially when it comes to function composition, where we want to chain a sequence of operations. Fortunately, the Ranges library is about to make it better and simpler.

  • From null to Option in Scala

    NULL, nullptr, null, etc. have been used to represent the absence of values for many years, but there are better alternatives to model this scenario. In Scala, the answer is usually Option.


  • Git fix-up Commits: How to Keep your Repository Concise

    Have you ever wasted time looking at your repositories because of commits that didn’t add any value to the project’s story? Some of the most common start with “fix-up…”. By avoiding these commits, the repository tends to become easier to understand, as we can then focus on the bigger story that the project is trying to tell, not small details.

  • Introduction to OOP in Golang

    Getting started with Object-Oriented Programming (OOP) in Golang (Go).