~/devreads

Carlos Becker

https://carlosbecker.com · 247 posts · history since 2001 · active

26 May

1 min read

I used to think that my GitHub profile helped me because people could read my code.

24 May

1 min read

Immutable releases, a new build target for Node.js, dockers_v2 graduating out of experimental, and the legacy brews config finally getting the boot.

20 May

31 Mar

30 Mar

29 Mar

1 min read

This version a big one for Linux packaging - Flatpak bundles and Source RPMs land in the same release, alongside a rebuilt documentation website and better Go build defaults.

25 Mar

1 min read

Keeping sponsor lists up-to-date across multiple READMEs and websites is tedious - so I wrote a tool to automate it.

24 Mar

1 min read

Working at Charm has been the best thing to happen in my career so far.

6 Mar

1 min read

I became a dad recently, and I’m not publishing a bunch of photos of my kid like most parents do. Some people started asking me why, so here it is.

21 Feb

1 min read

Happy 2026! The first release of the year is here, and it is packed with goodies!

17 Feb

3 Feb

1 min read

Code is cheap, show me the… what exactly?

1 Feb

1 min read

My daughter will be born soon, and I’m reflecting on what that means for my open-source work.

6 Jan

4 Jan

5 Dec 2025

1 min read

I was in a live stream with Pachi Parra, talking a bit about my background, and about GoReleaser.

30 Nov 2025

19 Nov 2025

17 Nov 2025

1 min read

If you’re using GitHub Actions in your projects, you should be pinning your actions to specific commit SHAs instead of using tags or branches.

18 Sept 2025

3 Sept 2025

1 min read

This version introduces the new version of the Docker integration, Docker image attestation, Makeself packaging support, Go 1.25, and much more!

19 Jul 2025

8 Jul 2025

1 min read

This version consists mostly of improvements to the Homebrew Cask feature introduced in the last release, and in other features.

17 Jun 2025

1 min read

After using nix in my dotfiles for over 2 years, I’m now moving away from it. Here’s why.

8 Jun 2025

1 min read

This version introduces the new Homebrew Casks feature, an experimental MCP server, plus many other small improvements.

5 May 2025

1 min read

My talk at Gophercon Latam 2025, showing a brief history of terminals, an introduction to ANSI escape sequences, a briefer introduction to SSH, and finally, how to build and serve a TUI using Bubble Tea and Wish.

29 Apr 2025

28 Apr 2025

19 Mar 2025

12 Mar 2025

1 min read

Happy March! Another release is here with several improvements across the board.

26 Feb 2025

21 Feb 2025

20 Feb 2025

1 min read

Back in 2017, I got tired of manually checking and creating git tags.

10 Feb 2025

1 min read

Happy February! Another release is here with several improvements across the board.

21 Jan 2025

2 Jan 2025

30 Dec 2024

15 Dec 2024

11 Dec 2024

29 Nov 2024

17 Nov 2024

2 Nov 2024

31 Oct 2024

11 Oct 2024

9 Oct 2024

1 min read

I’ve been using Gumroad for payments of GoReleaser Pro since the beginning, around May 2021.

12 Sept 2024

31 Aug 2024

24 Aug 2024

1 min read

In this interview I talk with Josh about my developer workflow including tmux, neovim, nix, and more on macOS.

14 Aug 2024

12 Aug 2024

1 min read

I talked a bit about my career to some first year college students.

13 Jul 2024

19 Jun 2024

8 Jun 2024

3 Jun 2024

30 May 2024

1 min read

If you, like me, release your projects to the Snap Store using GoReleaser, you might need to eventually update the secret.

11 May 2024

1 min read

Happy mother’s day! This will be probably the last minor v1 release of GoReleaser. V2 will not be a big update, rather, it’ll be the same as v1.26, but removing all the deprecated stuff. That said, let’s see what’s new on this version!

9 Apr 2024

2 Apr 2024

5 Feb 2024

26 Dec 2023

7 Nov 2023

6 Nov 2023

4 Nov 2023

30 Oct 2023

22 Sept 2023

20 Aug 2023

9 Aug 2023

20 Jul 2023

1 min read

Learn how to use the recently-added Tailscale, DNS, and Zeroconf endpoint discovery in Wishlist, our SSH host directory.

28 Jun 2023

8 May 2023

1 min read

Learn how to use x/exp/teatest to write tests for your Bubble Tea apps.

5 May 2023

24 Apr 2023

10 Apr 2023

6 Mar 2023

30 Jan 2023

9 Jan 2023

1 min read

I keep getting asked how my setup works, how I use tmux and nvim over ssh… all that good stuff.

27 Dec 2022

20 Dec 2022

25 Nov 2022

1 min read

This is a different kind of post: I’m sharing some music I enjoyed this year!

18 Nov 2022

14 Nov 2022

12 Nov 2022

9 Nov 2022

1 min read

SSH certificates allow system administrators to SSH into machines without having to manage authorized keys in the servers.

20 Oct 2022

1 min read

Talking about improving sustainability of open source with some incredible open source community members. We highly recommend checking out their profiles to see the cool projects they’re working on!

17 Oct 2022

14 Sept 2022

28 Aug 2022

22 Aug 2022

9 Aug 2022

1 min read

Since I joined Charm, I’ve been working and learning more about SSH, and I thought I would share a few quick tips and tricks with you.

4 Jul 2022

15 Jun 2022

6 Jun 2022

1 min read

I wanted to share a quick thing that made my life easier on tmux lately, but before we dig into that, I feel like I need to explain how I usually work.

2 Jun 2022

19 May 2022

18 May 2022

16 May 2022

1 min read

A couple of weeks ago I was working on adding SSH Certificate Authentication support to Wish, and did not find any good, to the point documentation on how to use certificates from the Go SSH client — hence this post.

7 May 2022

26 Apr 2022

15 Apr 2022

20 Mar 2022

6 Mar 2022

12 Feb 2022

2 Feb 2022

1 min read

I’m doing 99% of my coding in a “big” machine instead of my laptop. I do that by SSH’ing into it, hopefully into a tmux session, and coding on Neovim.

27 Jan 2022

26 Jan 2022

13 Jan 2022

28 Dec 2021

1 min read

$ glow charm.md

22 Dec 2021

1 min read

I got a MacBook Pro 14" with an Apple M1 Pro SoC, 16GB of memory and 500GB of disk a couple of weeks ago, and wanted to write my impressions about it, since a lot of people ask.

21 Dec 2021

3 Dec 2021

21 Nov 2021

14 Nov 2021

28 Oct 2021

22 Oct 2021

12 Sept 2021

24 Aug 2021

1 min read

In GoReleaser v0.176.0 (both OSS and Pro), we released the ability to sign Docker images - with cosign in mind, and also did small quality-of-life improvements in the artifact signing feature.

23 Aug 2021

1 Aug 2021

29 Jul 2021

23 Jul 2021

1 min read

A hands-on talk on how to create and set up a project with GoReleaser.

3 Jul 2021

1 min read

GoReleaser Pro was released about a month ago, and with it, the ability to include GoReleaser config files.

30 May 2021

1 min read

After more than 4 years working on GoReleaser, I’m launching a Pro version!

1 Apr 2021

7 Jan 2021

16 Dec 2020

1 min read

Today, again, I forgot the command to install Command Line Tools and had to search for it.

7 Dec 2020

30 Nov 2020

20 Nov 2020

30 Jul 2020

1 min read

I always forget the details about Kubernetes pod shutdown lifecycle when I need them, so this is my now made public notes on the subject.

28 Apr 2020

26 Apr 2020

14 Mar 2020

1 min read

Ever needed a simple leader election mechanism on something that will run on a Kubernetes cluster? There’s an easy way to do that!

28 Feb 2020

21 Feb 2020

5 Feb 2020

1 min read

I recently got a 4K display, and it didn’t work as I expected on my MacBook Pro. This is what I tried, what worked and what didn’t.

2 Feb 2020

1 min read

I recently fell into a trap using Traefik as the ingress controller in one cluster. I decided to write about it with hopes it maybe help someone else.

29 Jan 2020

1 min read

Sometimes people ask me what my setup looks like for remote work. I decided to try and keep a more-or-less updated list of the hardware and software I’m using.

21 Jan 2020

1 min read

GoReleaser’s journey begins in December 21, 2016: the day I made its very first commit. It has been a long road since then.

6 Oct 2019

25 Jul 2019

19 May 2019

16 May 2019

11 Apr 2019

1 min read

Often I need to “do X only if files on some folder changed” or whatever. I always need to Google that or find it on old scripts…

11 Jan 2019

1 min read

The next GoReleaser version will have a more flexible Docker configuration format. In this post we’ll explore it a bit.

17 Dec 2018

1 min read

Caching things can be hard to do and hard to test. In this post I’ll demonstrate a convenient way of doing that using interfaces.

15 Dec 2018

6 Dec 2018

12 Nov 2018

20 Oct 2018

1 min read

I shared some of my experiences coding GoReleaser, this time, more about community and less about Go itself. Slides are more or less the same, but here they are anyway:

10 Oct 2018

1 min read

I have an old Couchbase 4.5.x cluster, and I thought it would be nice to upgrade it. These are my notes and the tests I did before doing it “in production”™️.

1 Oct 2018

2 Aug 2018

31 Jul 2018

1 min read

I’ve started GoReleaser almost 2 years ago. This is a summary of (some) things I’ve learned down the road.

8 Jun 2018

1 min read

It has been one month since I started working fully remote, and I think I learned some things I can share.

2 Jun 2018

1 min read

I like to keep my GitHub clean. I delete forks I’m not using anymore, move old abandoned repositories to my graveyard and etc.

28 May 2018

1 min read

I wanted to set up a prometheus machine for me to monitor random stuff, but I was always postponing that because I didn’t want to use SSH port-forwarding, firewalls, create a VPC and/or setup an OpenVPN server or anything like that.

17 Apr 2018

1 min read

Everything in life eventually comes to an end, including life itself. This is not that kind of post, though.

9 Apr 2018

7 Apr 2018

1 min read

Over the years I read several articles on how to be effective, and how the 10x engineer thing is or is not a lie and all that.

19 Mar 2018

1 min read

After some time, I finally decided to move my blog from Jekyll to Hugo.

27 Feb 2018

1 min read

It was the Go 1.10 Release party - my talk was about what changed in Go 1.10.

23 Feb 2018

1 min read

I’ve been working on GoReleaser for more than a year now, and one of the things that was bothering me the most was fpm.

25 Nov 2017

1 min read

I spoke about how we migrate our monitoring infrastructure to Prometheus & Friends, what we got out of it and how it is working for us right now.

21 Nov 2017

1 min read

I showed how to build and release binaries in Go, including cross-compiling, Docker images, Linux packages and Homebrew, featuring GoReleaser on the end.

4 Sept 2017

1 min read

This past weekend I decided I need to clean up my GitHub profile. In this post I’ll write about why I cleaned everything up and also how I did, as well as some initial results.

8 Aug 2017

2 Jul 2017

1 min read

I’ve been working with DigitalOcean, Heroku and AWS for some years now.

14 May 2017

1 min read

I’ve been using Jekyll on my blog since 2012. It is great! But, lately, its slow build times started to bother me.

28 Apr 2017

1 min read

We are running Kubernetes on both sandbox and production for some months now. Our production cluster is still small, with few services running on it, but, most of our sandbox environment is running on a Kubernetes cluster on AWS.

13 Apr 2017

1 min read

Last few months I’ve been using Go to write quite a lot of tools. In this post I intend to show not why I chose Go over others, but how I architect those tools, what libraries I use and what kind of automation I have in place.

20 Mar 2017

1 min read

Microservices is the new fancy way of doing applications. Yet, most companies still have big and old monoliths in production. In fast evolving software of this size, it’s usual to have lines of code which are never executed in production. Production code coverage reports can help us find those lines.

11 Mar 2017

1 min read

At ContaAzul, we use the CI infrastructure a lot. We open several pull requests in several projects every day, and we block the merge until the build pass. We consider our master branches are sacred, and we can’t afford too much waiting to change them.

4 Mar 2017

1 min read

At ContaAzul, we have several old pieces of code that are still running in production. We are committed to gradually re-implement them in better ways.

2 Jan 2017

1 min read

I have some apps written in Go, which I deliver as binaries for each platform using GitHub releases. Until now, I was doing it with a very simple shell script.

6 Oct 2016

1 min read

Watchub is a service that notifies you of people who followed/unfollowed you and starred/unstarred your repositories.

2 Oct 2016

1 min read

As a DevOps/SRE, I spent a reasonable amount of time dealing with metrics and alerts.

27 Sept 2016

1 min read

I have seen a lot of posts like this subject, but almost all of them were about stuff you should do and almost none of them reflected how I truly feel, how I want a product to be so I can “love” it.

3 Sept 2016

1 min read

Every now and then an active java-based project enters a “dependency hell” state. That usually happens because people keep adding dependencies without checking what comes in transitively nor if that dependency is declared somewhere else already.

7 Aug 2016

1 min read

I’ve lost a considerable amount of time trying to bind those things together, so I decided to write this quick post about it, so others could also benefit from it.

10 Apr 2016

10 Feb 2016

1 min read

booleans, am I right? What a wonderful piece of technology! They help us solve so many problems…

27 Dec 2015

1 min read

I’ve been wanting to write this for a long time, just to clarify my thoughts on the subject. Now, on vacations, I took a couple of days and finally did it. This is a personal opinion based on my personal experience and tons of books I have read, and I am not, by any means, the supreme holder of the…

29 Sept 2015

24 Sept 2015

1 min read

I gave a little intro on Docker and talked about when to use it or not.

30 Jul 2015

9 Jul 2015

5 Jul 2015

1 min read

There are a lot of Java API’s and Frameworks which rely on static methods and the sort. Arguably, this is a bad OOP practice, but let’s not enter this particular subject just yet.

29 Jun 2015

1 min read

go build generates a binary for the platform you run it in. So, if I build antibody in a Linux machine - which uses Mach-O, it will not work in OS X - which uses ELF.

6 Jun 2015

1 min read

Learning Go was in my TODO list for a while, and finally I did something about it. This post contains some thoughts about it…

15 May 2015

1 min read

At ContaAzul, we had 31 Windows machines powering our Selenium tests - one running the grid and 30 more running clients. Needless to say, this is very expensive.

12 May 2015

10 May 2015

1 min read

Like my old post on git, this is somewhat a collection of useful Docker commands/tricks/whatever.

28 Mar 2015

5 Mar 2015

22 Feb 2015

1 min read

In recent years it has become more and more common to work in different projects running on different versions of Java. There are still some running on Java 6, and there are tons already running on Java 8.

19 Feb 2015

17 Feb 2015

4 Feb 2015

1 min read

I know, everyone uses Travis. I have nothing against it. But in case you want to test and/or use Shippable, this might be just the guide for you. I will also show how to setup those nice tabs with the test and coverage reports.

2 Feb 2015

19 Jan 2015

18 Jan 2015

1 min read

Once upon a time, my blog was OpenSource. People liked it and forked it tons of times, but they never changed some stuff (disqus, analytics).

9 Jan 2015

1 min read

I followed @mdo’s recent article “Using Sass with Jekyll”, and wanted to point out the results.

15 Dec 2014

14 Dec 2014

1 min read

Every once in a while I see somewhere a wrong import to the old, deprecated junit.framework instead of org.junit.

18 Nov 2014

1 min read

Have you ever written JUnit tests extending a class that does some before and after work, so you didn’t have to repeat that code in various test classes?

26 Oct 2014

1 min read

Exponential backoff is an algorithm that uses feedback to multiplicatively decrease the rate of some process, in order to gradually find an acceptable rate. —- Wikipedia

10 Oct 2014

1 min read

Updated with second round script in Oct 26, 2014.

18 Aug 2014

1 min read

For some reason, Oracle blocked the installers to run only on a fixed OSX version range with a nice and explanatory error message. This range doesn’t include Yosemite, which makes sense, since nobody running Yosemite will ever want to write some Java. Anyway, here is how to fix it.

4 Aug 2014

1 min read

Earlier this year, the new version of the Java Programming Language was released. Finally, it enters the field of the “cool peeps” with some features it should have had since years ago, like Lambdas.

28 Apr 2014

1 min read

I found that it’s pretty hard to have a project with high test coverage and fast build… if the tests are slow, people will feel the need to skip them to speed up the build, and will probably write fewer tests than they should, afraid that the build will become even slower. You go out for a walk and when…

18 Mar 2014

6 Mar 2014

26 Dec 2013

1 min read

I think that turbolinks is great: it makes it easy to add AJAX PushState to your Rails Applications. The only problem with that is that we can’t use it any WEB application, because it’s a Ruby Gem. So I did some ugly-but-easy hacks and add it to this very site. I will describe the steps below.

28 Nov 2013

14 Oct 2013

1 min read

So, this is the all-new UP version. It is more based on my own blog in some way, which is some kind of branch of the theme.

19 Sept 2013

1 min read

This post is about the Twitter change from Ruby to Java, some years ago, fact that, sadly, is still being used by some people to say that Ruby sucks and Java is the best language in the world.

9 Sept 2013

1 min read

Following my previous posts with basic Javascript aspects, like context and variable hoisting, I’ll try to write some basic concepts of the Ruby language. I decided to start with something that usually confuses new Ruby users (sometimes they don’t even know that they are confused, by the way): the Ruby nil object.

4 Sept 2013

1 min read

This article is the second of a series of n articles, where n could be any given number between 1 and 2 (inclusive).

12 Aug 2013

1 min read

People have a lot of confusion about Javascript context mechanism. I don’t think it’s confusing at all, it’s just that it’s different when compared with other languages we generally use.

26 Jun 2013

1 min read

Some time ago, I posted here about a simple project that I’ve done in my post-graduation classes. Since I need it in other projects, and also some friends ended up using it in small projects, I decided to evolve it a little bit.

3 Jun 2013

1 min read

I work in a company that has an entirely MS-based network, which means, all that domain login crap and everything that comes with it: outlook, MS Communicator, proxies, monitoring and etc.

8 Feb 2013

1 min read

Git has a lot of features, and I bet that 90% of who use it (including me) doesn’t know half of them. Well, maybe, someday, one of those “unknown features” can “save your life”.

5 Feb 2013

1 min read

Rails 3.1 introduced the asset pipeline, which makes it easy to include versioned external assets as application dependencies.

22 Jan 2013

13 Jan 2013

18 Dec 2012

1 min read

So, I just bought “Seven Languages in Seven Weeks”. I’ve read the Ruby chapter, not a big deal at all, so I skipped it. I also skip Io, Prolog and Scala (for now), and then, fall in Erlang!

16 Dec 2012

1 min read

After a while using Jekyll Bootstrap, I just realized that it was so much bloated. Then, few days ago, I forked the old Zach Holman’s blog, and started to tweak my own theme based on theirs (that now is opensource). At first, I like it, but after a while, I just start thinking that it had a “old style” design.

15 Dec 2012

1 min read

So, I just compiled a little list of things that, I believe, make me dislike Java everyday a little more.

26 Nov 2012

1 min read

A couple of days ago I wrote about how to build a simple and non intrusive AJAX status with CoffeeScript in RubyOnRails.

23 Nov 2012

8 Nov 2012

3 Oct 2012

14 Aug 2012

1 min read

For those who don’t know, GWT-Bootstrap wants to port the Twitter Bootstrap widgets to GWT compatible and easy to use components/widgets.

8 Aug 2012

1 min read

According to the project site on GitHub, The Guava project contains several of Google’s core libraries that we rely on in our Java-based projects: collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth.

7 Aug 2012

1 min read

Yesterday, I wrote a small article talking about Guice and JUnit, so, this time, I’ll just say how to use the small lib that I build (not big deal, one class, one annotation =] )

6 Aug 2012

1 min read

First of all: Do you use Guice as Dependency Injection Container in your Apps? If not, why?

27 Jun 2012

1 min read

First of all, if you haven’t done it yet, read Getting started with GWT-Bootstrap.

26 Jun 2012

1 min read

GWT-Bootstrap is a project that aims to provide all the Twitter Bootstrap styles and widgets to GWT applications.

25 Jun 2012

24 Jun 2012

1 min read

Hello everyone :)

1 Jan 2001

1 min read

My long-term goal is to become a full-time open-sourcerer. If you like my work, consider donating, gifting a book or buying my apps. Thanks a ton 💙 Buy my apps GoReleaser Pro Donations GitHub Sponsors PayPal Bitcoin (BTC): bc1qpqpfxqs20ntktmfmaqf4290tc84cdmdaedwd06 Nominate me as a GitHub Star This costs you nothing, and will still be greatly appreciated! 🫶 You can nominate me…

1 min read

I create, maintain, and operate software. I currently work at GitHub and maintain GoReleaser. I also have my own silly little software company. When not working, I may just be out there being a dad, reading books, getting beat up at Jiu-Jitsu1, lifting (rather heavy) weights2, or just generally touching grass. I’m interested in programming languages, Zeichenorientierte Benutzerschnittstellen3, containers, distributed…

1 min read

More-or-less updated list of stars on some repositories I work on: goreleaser Repository Stars goreleaser/goreleaser 15854 goreleaser/nfpm 2570 goreleaser/goreleaser-action 1010 goreleaser/chglog 284 goreleaser/goreleaser-cross 190 goreleaser/example-zig-cgo 130 goreleaser/fileglob 70 goreleaser/goreleaser-pro 70 goreleaser/example-supply-chain 60 (40 other repositories with <50 stars) 225 - 20463 caarlos0 Repository Stars caarlos0/env 6216 caarlos0/starcharts 1420 caarlos0/svu 837 caarlos0/time