Sergio Moratilla - Tech Blog

About software and data

7 years at Playtomic.io cover image
personal,  startup

7 years at Playtomic.io

This year I haven’t written much. Time flew by; I blinked a few times, and suddenly, a whole year had passed. I’ve added only 2 posts to…

This is Playtomic's Anemone cover image
personal,  startup

This is Playtomic's Anemone

We, tech companies, don’t share a lot about our internals. But I think we should share more often, especially if we are proud of what we…

How to add a listener port to Undertow in Spring Boot cover image
spring,  undertow

How to add a listener port to Undertow in Spring Boot

Super short post today. I couldn’t believe none has tried this before. We wanted to add a management port to separate traffic and…

6 years at Playtomic.io cover image
personal,  startup

6 years at Playtomic.io

I started this post 6 months ago but never finished it. Today, I make 6 years in Playtomic. Everything goes so fast that it feels like…

How to migrate a cluster in production cover image
docker,  kubernetes,  aws

How to migrate a cluster in production

One of the most complex operations in tech is upgrades or migrations without disrupting the service. I always compare it to upgrading a…

Denormalizing the core of Playtomic cover image
mongodb,  optimization

Denormalizing the core of Playtomic

Yes, another post about optimization and MongoDB. I started this post in July, and I couldn’t find the time to finish this. I was optimizing…

How to peer two VPCs and access it using a VPN cover image
mongodb,  vpc,  vpn

How to peer two VPCs and access it using a VPN

Although I have some experience, I am not a sysadmin. So this might be obvious for a sysadmin or someone with an AWS certification but not…

Dockerized Multi-arch Github Actions Runner cover image
ci+cd,  github actions,  docker

Dockerized Multi-arch Github Actions Runner

Do you want to run the Github Action runner as a container? Do you want to run it on your Docker or Kubernetes cluster and scale the number…

Modernizing a CI+CD pipeline with Github Actions cover image
ci+cd,  github actions,  jenkins

Modernizing a CI+CD pipeline with Github Actions

Our CI+CD has been working for 5 years long. You know, if it ain’t broken, don’t fix it. But the company is not the same. It’s time to…

Performance and MongoDB cover image
mongodb

Performance and MongoDB

If you, a backend developer, had to describe your job, what would you say? We usually talk a lot about servers, clusters, layers, algorithms…

Flux vs ArgoCD cover image
github

Flux vs ArgoCD

I have been trying to find any comparison between FluxCD and ArgoCD that could help me choose between them. I haven’t found any that truly…

My evolution in Playtomic in Github charts cover image
github

My evolution in Playtomic in Github charts

I sometimes take a peek at the Github charts, I find interesting what they speak about. I have never looked thoroughly at the activity…

The path to observability cover image
sre

The path to observability

o11y = observability = logs, metrics, traces This post is a summary of the steps we unconsciously followed in Playtomic when digging into…

Money operations are not as easy as you think cover image
java

Money operations are not as easy as you think

I see this a lot in Stackoverflow and most of the replies always makes me wonder what kind of software is running over there. People ask…

Don't use default values in your database cover image
logging,  how-to

Don't use default values in your database

This is a bad practice in my opinion if your database is owned by one application (or service). It is the usual scenario when using…

Changing the log format in Spring Boot cover image
logging,  how-to

Changing the log format in Spring Boot

Do you know that hours of trial and error can save you minutes of reading documentation? Well, that was not the case today because I wasn’t…

Optional dependencies in Rust cover image
rust,  how-to

Optional dependencies in Rust

Yes, I’m learning a new language. A typed one =D I love C++. Some of my best code and all my research was done in C++. But I hate its…

Teaching a computer to draw cover image
machine learning,  art

Teaching a computer to draw

There must be hundreds of artists trying to mix art and computing. I have always wanted to try to perform some experiments on this topic. It…

What I see in Github contributions cover image
github,  personal

What I see in Github contributions

I have seen several people sharing their contribution graph in Github. Some of them, bragging about how dark and green their graph is. A few…

Cloud gaming cover image
cloud,  gaming

Cloud gaming

This is not a technical entry, but I still think it is worth to be written. I used to be a hardcore gamer. Hundreds of titles, thousands (I…

Choosing a documentation system cover image
documentation

Choosing a documentation system

Documentation is always the victim when developing a system. We will do it tomorrow. And tomorrow… I’m writing this because we had a deep…

A way of testing code based on time in a Spring Boot Application cover image
java,  test,  time

A way of testing code based on time in a Spring Boot Application

Every time I see a I tremble. How do you expect to test that in a simple / coherent / easy to follow way? When I see that code, I usually…

Concurrency in Spring's StreamListener and Kafka cover image
spring,  kafka,  concurrency,  stream

Concurrency in Spring's StreamListener and Kafka

Another too fast, too furious post. I have spent a few hours trying to make my event processor multi-threaded, and it’s so damn easy that I…

BlockingQueue and ExecutorService cover image
java,  threading

BlockingQueue and ExecutorService

This is a quick and dirty post, but I promised I would publish everything I research at Playtomic. Last week, we were having a discussion…

Amazed by the Soyuz cover image
learning

Amazed by the Soyuz

I never thought that one of the things that would impress me the most when visiting New York City, would be seeing a Russian Soyuz. It was…

A way to unify two authorization methods - Part I cover image
security,  startup,  spring,  microservices

A way to unify two authorization methods - Part I

Time to talk about security today. Security is one of the most important aspects of a system, and probably one of the most boring to…

What I have learned from building microservices cover image
personal,  microservices

What I have learned from building microservices

Continuous Integration + Continuous Deployment. Repeat with me: there is no agile without CI+CD. Continuous deployments get you to the next…

2 years at Playtomic.io cover image
personal,  startup

2 years at Playtomic.io

Last February I made 2 years in Playtomic. Everything goes so fast that it feels like 2 decades. It goes so fast that I started to write…

How to mix Spring Data queries and MongoDB syntax cover image
spring,  mongodb,  tech,  pills

How to mix Spring Data queries and MongoDB syntax

I love writing queries using Spring Data’s Criteria. Writing queries directly in SQL (@NativeQuery, @Query) feels a bit dirty. And I also…

Playtomic's Pipeline cover image
tech

Playtomic's Pipeline

Your continuous integration (CI) pipeline is one of the most important pieces of software you can have in your business: it runs every time…

Yet another static blog cover image
personal

Yet another static blog

Welcome, it's great to have you here.