# Golang and Let's Encrypt: a free software story

DevFeed: [Golang and Let's Encrypt: a free software story](<https://devfeed.tech/articles/golang-and-let-s-encrypt-a-free-software-story-36217.md>)

Original publisher: [Read original article](<https://dotat.at/@/2025-06-28-boulder.html>)

Published: 2025-06-26T01:41:49Z

Content type: opinion

Language: en

Sources: [Tony Finch's blog](<https://devfeed.tech/sources/tony-finch-s-blog.md>)

Topics: [let's encrypt](<https://devfeed.tech/topics/let-s-encrypt.md>), [free software](<https://devfeed.tech/topics/free-software.md>), [Pull Request](<https://devfeed.tech/topics/pull-request.md>), [CASE](<https://devfeed.tech/topics/casejs.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [golang](<https://devfeed.tech/tags/golang.md>), [let-s-encrypt](<https://devfeed.tech/tags/let-s-encrypt.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [review](<https://devfeed.tech/tags/review.md>), [testing](<https://devfeed.tech/tags/testing.md>)

## AI overview

The author recounts fixing a Let's Encrypt Boulder bug involving mail-domain validation as a newcomer to Golang. They describe relying on Let's Encrypt's cloud test setup, submitting a small pull request, and seeing it merged into production within a few days.

## Source excerpt

Here's a story from nearly 10 years ago. the bug I think it was my friend Richard Kettlewell who told me about a bug he encountered with Let's Encrypt in its early days in autumn 2015: it was failing to validate mail domains correctly. the context At the time I had previously been responsible for Cambridge University's email anti-spam system for about 10 years, and in 2014 I had been given responsibility for Cambridge University's DNS. So I knew how Let's Encrypt should validate mail domains. Let's Encrypt was about one year old. Unusually, the code that runs their operations, Boulder, is free software and open to external contributors. Boulder is written in Golang, and I had not previously written any code in Golang. But its reputation is to be easy to get to grips with. So, in principle, the bug was straightforward for me to fix. How difficult would it be as a Golang newbie? And what would Let's Encrypt's contribution process be like? the hack I cloned the Boulder repository and had a look around the code. As is pretty typical, there are a couple of stages to fixing a bug in an unfamiliar codebase: work out where the problem is try to understand if the obvious fix could be better In this case, I remember discovering a relatively substantial TODO item that intersected with the bug. I can't remember the details, but I think there were wider issues with DNS lookups in Boulder. I decided it made sense to fix the immediate problem without getting involved in things that would require discussion with Let's Encrypt staff. I faffed around with the code and pushed something that looked like it might work. A fun thing about this hack is that I never got a working Boulder test setup on my workstation (or even Golang, I think!) - I just relied on the Let's Encrypt cloud test setup. The feedback time was very slow, but it was tolerable for a simple one-off change. the fix My pull request was small, +48-14. After a couple of rounds of review and within a few days, it was merged