TL;DR: Build a static web container, push into your container registry, deploy it and ingress with free SSL certificate with just a “git push”.

Image for post
Image for post
Rancher Pipelines is powered by Jenkis


There are a lot of options to publish and to consume static web content in Internet. From AWS S3 static web site to a simple site.

This method uses the Rancher pipelines feature. Rancher pipelines is the equivalent to GitHub Actions or Bitbucket Pipelines. It’s a way to do CI/CD tasks or whatever that you want to automate tasks.

After the pipeline is configured, just only need to do a “git push” to keep the…

TL;DR: The API definition and documentation must be in a separate repository.

Image for post
Image for post


In the desktop or CLI apps era, you probably only had one folder where you would put all your code.

When the CVS arrived, you put that folder in version control.

With the Internet explosion, the develop paradigm turns into a client/server pattern.

In this case, it’s normal to split the project into two separate repositories: one for the backend/server and another for the frontend/client. Not?

There are several reasons to do that split.

For me, the most important is that the software cycle of each component is…

TL;DR: How to start to develop and deploy microservices with Go Micro ecosystem on a Kubernetes cluster.

Image for post
Image for post
Microservices in Go rules!


Go micro is a microservices ecosystem for developing microservices without the “glue” boilerplate code (registry, authentication, broker, …)

Just focus on your business logic code (aka “the handlers”).

With its latest version, v3, it’s pretty easy to develop microservices.

It’s an ecosystem because go-micro beyond a framework. It includes several core services such as authentication, broker (pub/sub), KV storage, API proxy, gRPC proxy, etc.

The default message protocol is gRPC.

gRPC uses an efficient data binary encoding based in a data schema, protocol…

TL;DR: How you can to enable the code completion for your Visual Studio Code IDE

Image for post
Image for post
JSON Schema rules!


The code completion is one of the most worth and important features of an IDE. Since the first version of Visual Basic or Visual C++, the presence of “IntelliSense” feature improved the productivity of thousands of programmers.

Normally, to create a custom code-completion bundle for your favorite programming or scripting language is a non trivial task.

But in the case of JSON formats, that task is not so hard.

The JSON Schema

As you probably knows the JavaScript Object Notation (JSON) is a structureless format.

You can define…

TL;DR: I’ve release a pure-go Apache H2 Database SQL driver for Golang. You can checkout here: h2go

Image for post
Image for post
Oh yeah! The H2 SQL Driver for Go is here at last!


Apache H2 is a light weight and high performance SQL Database written in Java.

It’s (almost) 100% ANSI SQL-99 compatible and it can store the data in files or in-memory. You can embed in your Java project or using with client/server pattern.


Some months ago, I worked in a “tech debt” project where a lot of business logic was coded as SQL sentences.

The goal was significantly improve the performance and scalability.

We chosen Go as programming language for its performance and flexibility…

TL;DR: How to patch a node module package after execute npm install

Image for post
Image for post
Oh! This module needs a patch!

Why the hell do you need to patch a node module package?

Sometimes you are working in a npm project and a module dependency not works properly. You can submit a issue to its CVS (normally GitHub) but you can’t wait until the authors resolve it or approve your PR.

What can we do then? Well, we can patch the package after its installation.

We use a real example: Liferay Angular portlet build process.

Life Angular portlet

To build a 100% Angular Liferay portlet, we use a Liferay’s support libraries (lnbs-*).

It’s works perfectly if we build for a production environment. But, what’s…

Image for post
Image for post
Is proxy.conf.js weird? No! It’s fun!

TL;DR: How to configure your Angular project to use a backend while your are developing in local mode.

Rarely you have to develop an isolate Angular app. The normal thing is that it has access to a backend and/or consumes one or more APIs.

Then, you starts the development in your local computer and when you write your service for access to the backend or API, and access with your browser to http://localhost:4200...

Surprise! Probably you have a CORS problem… (at least)

TL;DR: Recently (June 2020) Hetzner added a cloud native load balancer with Kubernetes support. Learn how to use it.

Image for post
Image for post
We finally have load balancer in Hetzner!


Until a couple of months ago (June 2020) Germany Hetzner Cloud provider did not have a native cloud load balancer in its portfolio.

To achieve a “LoadBalancer” service in an Hetzner Kubernetes cluster you must to use a software solution like as MetalLB.

I wrote this previous post about how to create a Rancher Kubernetes cluster on Hetzner cloud using MetalLB.

Now we are going to see how to create a Kubernetes cluster using the new Load Balancer service already available…

TL;DR: Use of NLP (spaCy and Gensim) for topic modelling of Hacker News favorites links scraped with Selenium.

Image for post
Image for post
Freud Icon from

I love Hacker News. With just a daily glance you can be up to date in technology, start-ups, etc. It is a link aggregator where users can upvote the links they like the most. Simple and effective.

Not long ago I checked that it had a lot of “upvoted” links (I often use it as a bookmarker) and I realized that it might be interesting to analyze the links and determine what my main interests were.

Could NLP “magic” be done with…

TL;DR: Use CronJob to schedule a DB daily backup

Image for post
Image for post
Based on the photo by Erda Estremera on Unsplash

One good friend of me told me time ago…

The difference between a good developer and a bad one is that the former makes backups.

JM Robles

CTO @ & Beyond-Full-stack developer #go #python #kubernetes

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