In this article, I am going to explain how we can take advantage of Cognito and API Gateway to manage user access control in our application quickly and simply.

Cognito provides a service that can scale to millions of users and supports sign-in with a variety of third-party identity providers. But more importantly we do not have to worry about security issues or bugs. Cognito supports identity and access management standards, such as Oauth 2.0, SAML 2.0, and OpenID Connect.

Below we can see a diagram of our system. In this case, we are going to simulate that a client…

One of the biggest challenges in programming is smoothly integrating any changes when we have several people working on the same project at once. For these cases Victor Rentea says:

If it hurts, do it more often, and bring the pain forward.

Here is where Continuous Integration and Continuous Deployment comes into action. We know that integrating and deploying small changes are far easier to implement than larger, more significant changes and the difficulty increases exponentially as these changes grow. So what is the solution to this problem? …


The spread of containers has had a world-changing effect on the developer’s world. Nowadays we are using containers everyday to make our lives easier as developers. For this reason, I am going to introduce how to deploy our application in AWS using containers in ECS(Elastic Container Service).

In this article you are going to learn how to implement the following topics in AWS:

The idea here…

In this article we’re going to explore the monoid and semigroup, this will be our first introduction to purely algebraic structures. The reason to start with these structures is that they are simple to understand, ubiquitous and really useful.

Monoids come up all the time in everyday programming, whether we’re aware of them or not. Working with strings, lists or accumulating values all these are cases where we are using them. We’ll see how monoids are useful in parallel computation and in solving complex problems. …

I would like to start this article by showing you a piece of code (see below).

Do you think this code will work?

In the code above we can see a function called ‘fibs’, and how this function calls itself to infinity. We are using this function to calculate the Fibonacci sequence. Maybe at this point quite a few questions you’d like to ask. How is this possible? Is this code really going to work?

Before we get to our example of Lazy List, we need to cover some basics. …

This article is the continuation of my previous post How to build a SOLID Distributed Systems, you should check it out if you haven’t read it yet!

Some of you asked me if I could go into more detail and give a better explanation as to how we can improve decoupling in our distributed systems. For this reason I am going to talk solely about Event-driven in this article and how it can improve our systems.

In my opinion, event-driven is an important topic to consider when we are going to design distributed systems. It is not, however, ‘a silver…

Today I will be sharing my knowledge about distributed systems with you and what I’ve learnt from the last few years working on it. As we can see in the header picture I would like to define the distributed systems as a clockwork, where there are several individual pieces that have to work together in harmony and precision.

The two keys in a distributed system are the services and the connections between them.

In this first article, I’m going to start by talking about how to extrapolate the SOLID principles to the infrastructure and how it helps us to improve…


In this short article I am going to show why Dijkstra’s algorithm is important and how to implement it. If you need some background information on graphs and data structure I would recommend reading more about it in Geeks for Geeks before reading this article. In any case I will try to be as clear as possible.

Before we get into this tutorial I would like to show you what the final result of our Dijkstra’s application will be:

Carlos Hernández

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