$ whoami

SegFault - DevOps, Linux, Containers, Kubernetes, and cloud technologies.

Latest post

SRE: Observability Deep Dive: Traces, Logs, and Metrics

2026-02-28 | 16 min read

We will explore the three pillars of observability, how to instrument your applications with OpenTelemetry, build useful dashboards in Grafana, and set up log aggregation that actually helps during incidents...

SRE: Incident Management, On-Call, and Postmortems as Code

2026-02-23 | 21 min read

We will explore how to build an effective incident management workflow, set up on-call rotations that don't burn people out, write runbooks as code, and run blameless postmortems...

SRE: SLIs, SLOs, and Automations That Actually Help

2026-02-06 | 15 min read

We will explore how to define SLIs and SLOs as code, deploy them with ArgoCD, and use MCP servers to automate SRE workflows...

Git Recovery Magic: Reflog, Reset Recovery, and Cherry-Picking

2025-09-09 | 10 min read

We'll explore Git's safety net features: reflog for recovering lost commits, restoring deleted branches, and cherry-picking specific changes...

The Hidden Dangers of Overprivileged Kubernetes Operators

2025-08-31 | 14 min read

We'll explore how overprivileged operators can become security backdoors and demonstrate building a malicious controller with kubebuilder...

Kubernetes RBAC deep dive: Understanding authorization with kubectl and curl

2025-08-15 | 15 min read

In this article we will explore how RBAC works in kubernetes at the API level, using both kubectl and raw HTTP calls to understand what's happening under the hood

Debugging Distroless Containers: When Your Container Has No Shell

2025-08-10 | 8 min read

We will see how to debug distroless containers in Kubernetes using kubectl debug and manual user creation...

The Simplest GitOps Implementation That Actually Works

2025-08-09 | 9 min read

Let's build the most minimal GitOps setup that you can actually use in production...

Lets talk GitOps

2025-03-16 | 6 min read

We will see how GitOps works and how to tackle it effectively...

How to create a free synthetic check with Rust and Cloudflare

2025-01-12 | 6 min read

We will see how to craft and use a super-simple synthetic check using a Cloudflare worker...

Kubernetes permanent port-forward (or close to that...)

2025-01-10 | 20 min read

We will see how to craft and use a tool to manage our Kubernetes port-forward connections...

Create your own GitOps controller with Rust

2024-12-22 | 29 min read

In this article we will see how to write an MVP/Basic gitops controller to help us automate our infrastructure deployments...

Cloud native applications with kubebuilder and kind aka kubernetes operators

2024-11-18 | 20 min read

In this article we will see how to use kubebuilder and kind to create and test an operator...

Docker advanced scenarios

2024-10-22 | 1 min read

In this chapter we will learn a bit more about some advanced scenarios and where to continue learning...

What exactly is a volume?

2024-10-15 | 1 min read

In this chapter we will learn about docker volumes and how to use them

What is a container image?

2024-10-10 | 1 min read

In this chapter we will learn about images and how to use them

Upcoming courses: docker, kubernetes, terraform, github actions

2024-09-10 | 4 min read

In this article I want to explain what the courses will be covering at a high level so you know what to expect

What exactly is a container?

2024-09-08 | 1 min read

This will be a short course to master docker on linux, check the high level overview to learn more and be the first to sponsor this content

Did you know that you can have up to 10000 Github self-hosted runners?

2024-08-31 | 3 min read

In this article we will quickly explore how easy it is to configure a new runner, to build or automate any task within github actions

How to mount secrets as files or environment variables in kubernetes

2024-05-07 | 6 min read

In this article we will quickly see a few different ways of mounting secrets in kubernetes, that means exposing them so you can use them in your application, there are multiple ways and some interesting features that you can take advantage of

How to open multiple files in vim

2024-04-17 | 5 min read

In this article we will quickly see a few different ways of opening multiple files in vim and how to navigate these, keep an eye out for the bonus section as it can get complex pretty quickly.

Migrating from kubernetes cronjobs to quantum-core

2024-04-16 | 5 min read

In this article we will move our scheduled tasks away from kubernetes and instead we will use quantum-core to schedule and run these tasks, we can simplify some things in the tasks themselves as we won't need to boot our entire app before running our task.

Scheduled tasks in your elixir application

2024-04-16 | 6 min read

In this article we will see how to create and run tasks automatically with the help of kubernetes, in this particular scenario for the blog and also specifically for a phoenix web app, while the kubernetes part is general enough, there are some interesting things to learn about the elixir ecosystem as well.

Remote iex session

2024-04-14 | 4 min read

In this article we will see how to connect to your production instances from a development machine, this can be useful for many different reasons, handle with care when doing so but know how in case you need to do some manual intervention.

RSS is not dead yet

2024-03-19 | 4 min read

In this article we will see how to add an RSS feed to your Phoenix application, and how to render XML.

Getting started with Wallaby integration tests

2024-03-16 | 8 min read

Wallaby is a concurrent feature testing library, also known as integration testing libraries, it can be configured with chromedriver, geckodriver, etc, to spin up a browser and interact with your site, run some assertions and also validate your application as a real user would do.

Upgrading K3S with system-upgrade-controller

2024-02-25 | 3 min read

Upgrading K3S with system-upgrade-controller

Running a phoenix app in a multinode fashion in kubernetes

2024-02-24 | 3 min read

Running a phoenix app in a multinode fashion in kubernetes

Upgrading to Phoenix 1.7

2023-03-05 | 2 min read

Upgrading phoenix from 1.6 to 1.7...

Testing tekton to build and push images for my K3S ARM Oracle cluster

2022-10-25 | 13 min read

In this article we will explore how to deploy and configure tekton to build and push images to your registry to be consumed from your cluster, we will also see how these are deployed in another article...

New blog

2022-09-18 | 1 min read

New blog to document and learn about the infamous Web3 world with a dynamic self-hosted blog...

Running Rust on ARM32v7 via QEMU

2022-09-03 | 18 min read

In this article we will explore how to use QEMU to run emulating the ARM32v7 architecture to build and run a rust project...

Custom Kubernetes Operator With TypeScript (Typed JavaScript)

2021-07-22 | 16 min read

In this article we will explore how to create a sample operator using typescript and to deploy it to our cluster, the operator will be pretty dummy...

Kubernetes image policy webhook explained

2021-01-07 | 15 min read

In this article we will explore how webhook works in kubernetes and more specifically about the ImagePolicyWebhook, the kubernetes documentation about it is kind of vague...

Kubernetes authentication and authorization

2020-11-29 | 10 min read

In this article we will explore how authentication and authorization works in kubernetes. But first what's the difference?

Kubernetes local playground alternatives

2020-11-27 | 21 min read

In this article we will explore different alternatives for spinning up a cluster locally for testing, practicing or just developing an application...

Testing the Operator SDK and making a prefetch mechanism for Kubernetes

2020-11-01 | 28 min read

In this article we will explore how to create an operator that can prefetch our images (from our deployments to all nodes) using the Operator SDK, you might be wondering why...

Running Rust on ARM32v7 K3S Oracle cluster

2020-09-02 | 16 min read

In this article we will explore how to create a sample rust project and Dockerfile to run it on ARM32v7...

Automatic terraform linting with reviewdog and tflint

2020-05-21 | 2 min read

In this article we will test how to lint and get automatic checks in our github pull requests for our terraform code using reviewdog...

Gitlab-CI Basics

2020-02-02 | 5 min read

In this article we will continue where we left off the forward project last time, in this article we will use gitlab-ci...

Cat and friends (Netcat and Socat)

2020-01-20 | 6 min read

In this article we will see how to use cat, netcat and socat at least some basic examples and why do we have so many cats...

How to report spam to spamcop from gmail

2020-01-04 | 1 min read

Easy method to report spam to spamcop using GMail, this helps to reduce the true Spam from unknown sources, since for some reason I started to get...

How to report your gmail spam folder to spamcop

2019-12-31 | 7 min read

This post is a bit different from the others in the sense that it's a small tool I did to ease spam reporting to...

Brief introduction to terratest

2019-09-08 | 6 min read

In this article we will see the basics to have tests for your terraform code using a re-usable pattern, we will use the code from the last article...

Serverless authentication with Cognito

2019-09-02 | 15 min read

In this article we will see how to use Terraform and Go to create a serverless API using API Gateway, Lambda, and Go, and we will also handle authentication with AWS Cognito...

Getting started with terraform modules

2019-06-24 | 11 min read

In this article we will see a subtle introduction to terraform modules, how to pass data into the module, get something from the module and create a resource (GKE cluster)...

Go gRPC Cheap ping

2019-06-23 | 6 min read

In this article we will explore gRPC with a cheap ping application, basically we will do a ping and measure the time it takes for the message to go to the server and back before...

Go continuous delivery with Terraform and Kubernetes

2019-05-05 | 14 min read

In this article we will continue where we left off the last time: Go continuous integration with Travis CI and Docker...

Go continuous integration with Travis CI and Docker

2019-05-01 | 5 min read

In this article we will see how to create a simple continuous integration process using github, travis-ci and docker...

Actually using Vault on Kubernetes

2019-04-29 | 12 min read

In the previous article we configured Vault with Consul on our cluster, now it's time to go ahead and use it to provision secrets to our pods/applications...

Getting started with HashiCorp Vault on Kubernetes

2019-04-28 | 8 min read

Exploring how to install and use Vault on Kubernetes...

Creating a lambda function with terraform

2019-04-27 | 7 min read

Here we will see how to use terraform to manage lambda functions, it will be a simple hello world in node.js, available as gist...

SSH Socks Proxy

2019-03-10 | 1 min read

SSH is a great tool not only to connect and interact with remote servers, in this article we will explore SSH Socks proxy and what it means, we also will explore SSH remote proxy...

SSH Remote Port Forward

2019-03-09 | 2 min read

SSH is a great tool not only to connect and interact with remote servers, in this article we will explore SSH Remote port forward and what it means, we also will explore ...

SSH Local Port Forward

2019-03-08 | 2 min read

SSH is a great tool not only to connect and interact with remote servers, in this article we will explore SSH Local port forward and what it means, we also will explore SSH Remote port...

Create an AWS lambda function in Go

2019-02-16 | 6 min read

In this article we will create a lambda function and an API Gateway route like we did with the serverless framework but only using AWS tools, we will be using the same generated...

What does the serverless framework does for me

2019-02-15 | 7 min read

The Serverless Framework helps you develop and deploy your AWS Lambda functions, along with the AWS infrastructure resources they require. It's a CLI that offers structure...

Sending emails with AWS Lambda and SES from a HTML form

2019-02-03 | 8 min read

This article is part of the serverless series, in this article we will see how to create a serverless function in AWS Lambda to send an email coming from the HTML form in the site...

Serve your static website with S3 and CloudFront

2019-02-02 | 7 min read

This article will be part of a series, the idea is to get a fully serverless site up and running with login functionality, maybe a profile page, and some random utility, but...

Serve your static website in Github

2019-01-29 | 5 min read

GitHub pages offers some great examples that are really easy to follow, but if you want to know how I configured everything for this blog continue reading...

Give super powers to your terminal with tmux

2019-01-23 | 7 min read

In this article I want to introduce you to tmux, you might have used screen in the past or heard about it, what tmux and screen are is terminal multiplexers...

How to create a serverless twitter bot

2019-01-22 | 12 min read

This article explains how to create a serverless tweet-bot, basically pulls articles from this blog and post them to twitter in a nice way. It uses cron as the trigger...

From zero to hero with kops and AWS

2019-01-19 | 23 min read

This is an awesome tool to setup and maintain your clusters, currently only compatible with AWS and GCE...

My local environment

2019-01-12 | 2 min read

This article is about my current configuration, but I'm going to talk only about the terminal and my text editor because those will work in any linux distribution...

Exploring some Istio features

2019-01-10 | 9 min read

Continue building on Istio and understand how can be used...

Why do I need a service mesh?

2019-01-06 | 13 min read

Why do I need a service mesh? Basically because in cloud environments you cannot trust that the network will be reliable 100% of the time, that the latency will be low, that the network is secure and the bandwidth is infinite, the service mesh is just an extra layer to help microservices communicate with each other safely and reliably.

Getting started with skaffold

2019-01-03 | 11 min read

This time we will see how to get started with skaffold...

Getting started with gitkube

2019-01-01 | 11 min read

Exploring ksonnet with an echo bot made in Golang...

Go echo bot

2018-12-29 | 7 min read

Exploring ksonnet with an echo bot made in Golang...

Getting started with ksonnet

2018-12-27 | 13 min read

This tutorial will show you how to create a simple application and also how to deploy it to kubernetes using ksonnet...

Deploying my apps with Helm

2018-12-24 | 9 min read

How to use helm from the cli...

Getting started with helm

2018-12-23 | 15 min read

This tutorial will show you how to create a simple chart and also how to deploy it to kubernetes using helm...