Matias Pan

A small corner of the internet where I write about stuff 🐶⛰️🧑‍💻

Why I Joined Dagger

When I heard that the founders of Docker were building an amazing team to take another spin to the whole CI/CD space I was intrigued. You see, CI/CD for me was this space where I had just “settled in” and decided it was supposed to suck. I was supposed to just deal with it, adapt to whatever was built, fix whatever issue I was facing (without any kind of testing) and move on....

January 18, 2024 · 3 min · matipan

Exploring Dagger: Streamlining CI/CD Pipelines with Code – A Developer's Guide

This is the second post in a series of blog posts that look at Dagger from different perspectives. In this post we do a deep dive on how to leverage Dagger as a developer that is tasked with implementing the CI process of a Java-Gradle service. In this CI process we need to: build, run end to end tests with external dependencies and package the service. We will leave the CD part for a future blog post that looks at Dagger from the perspective of a Platform Engineer/SRE....

November 19, 2023 · 20 min · matipan

Exploring Dagger: Building a CI/CD pipeline for IaC

Dagger is a new tool that promises to fix the yaml and custom scripts mess that CI/CD currently is by building pipelines as code with one of the supported SDKs. I’m in the process of learning this tool, understanding where it may fall short and where it shines and I decided that sharing some of the exploration I do and the learnings it leaves me with would be useful. This is the first post in a series of blog posts that look at Dagger from different perspectives....

November 13, 2023 · 24 min · matipan

How services are provisioned, deployed and operated at Lemon Cash

Lemon Cash is a crypto startup based in Argentina that operates digital wallets, card payments and more. In this blog post I describe how we implemented a solution for provisioning, deploying and operating services that empowers developers to ship more quickly. This solution is not a fully fledged platform but it provides similar benefits by standing on top of strongly defined concepts and conventions. What we implemented only makes sense in the context in which the company was in, so I will start by explaining what that context was....

October 2, 2022 · 14 min · matipan

Fast JSON parsing in Go for OpenRTB

The code used for this test can be found here. TL;DR: when looking into overall performance and usability, json-iter is the clear winner. It gives roughly a 4x improvement over encoding/json and 1.2x over the second most performant option. It is also extremely easy to use. You simply need to import it, define a global variable (that you can call json to make it even easier) and then use it like you would use encoding/json....

November 22, 2020 · 9 min · matipan

Writing a face detection function for OpenFaaS

There is a new term in town that has been making its way to all of us for a couple of years now: Serverless. When I first heard this I was kind of confused as to what it meant. Everybody seemed to have an opinion about it but there were no real answers. The following definition from serverless-stack helped me clarify a bit: Serverless computing (or serverless for short), is an execution model where the cloud provider is responsible for executing a piece of code by dynamically allocating the resources....

March 16, 2019 · 5 min · matipan

Tracking color objects with GoCV

Disclaimer: this blog post is just a port of Adrian’s tutorial at pyimagesearch where he shows how to track a ball using Python and OpenCV. I only changed a few things here and there and rewrote it using Go and GoCV. So all the credit should go to him I always prefer to start by showing what you’ll get if you stick to the end, so here it goes: Hooked? Awesome....

October 19, 2018 · 10 min · matipan

Motion tracking turret with Gobot and GoCV - Part 1

The title says it, motion tracking turret using only Go, ready to have some func? This blog post will be divided into three main parts: Motion detection with GoCV, Controlling servo motors with Gobot and Putting it all together. In the first part, we build a lightweight motion detection algorithm that can run on low-power devices such as the RPi. In the second part we will show how to control servo motors with Gobot from the Raspberry Pi and in the last part we’ll explain how to go from detecting an object on an image to telling exactly the angles in which the servos need to move in order to track it....

October 18, 2018 · 12 min · matipan

Deploying Gogs to a DigitalOcean Kubernetes cluster

In this post I will show step by step how to create a Kubernetes cluster on DigitalOcean and then deploy Gogs to the cluster using a set of tools that automate all this. Creating the Cluster Choosing the Cloud Provider I chose DigitalOcean as the cloud provider since it’s the cheapest I could find and it has worked really well for me in the past, plus I was already familiar with a few of their products....

September 16, 2018 · 7 min · matipan