<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Go on My name is Elton Minetto</title><link>https://eltonminetto.dev/en/tags/go/</link><description>Recent content in Go on My name is Elton Minetto</description><generator>Hugo</generator><language>en</language><copyright>{year}</copyright><lastBuildDate>Sun, 05 Apr 2026 19:00:43 -0300</lastBuildDate><atom:link href="https://eltonminetto.dev/en/tags/go/index.xml" rel="self" type="application/rss+xml"/><item><title>Avoiding supply chain attacks in Go</title><link>https://eltonminetto.dev/en/post/2026-04-05-supply-chain-golang/</link><pubDate>Sun, 05 Apr 2026 19:00:43 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2026-04-05-supply-chain-golang/</guid><description>&lt;p>If you&amp;rsquo;ve been following the news in recent weeks (March/April 2026), you must have read about two major &amp;ldquo;supply chain attacks&amp;rdquo; that occurred. You were probably affected in some way by the problem with the &lt;a href="https://docs.litellm.ai/blog/security-update-march-2026">LiteLLM&lt;/a> and &lt;a href="https://www.elastic.co/security-labs/axios-one-rat-to-rule-them-all">Axios&lt;/a> projects.&lt;/p></description></item><item><title>Go should be more opinionated</title><link>https://eltonminetto.dev/en/post/2025-06-19-go-more-opinated/</link><pubDate>Thu, 19 Jun 2025 10:00:00 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2025-06-19-go-more-opinated/</guid><description>&lt;p>One of the perks of being a &lt;a href="https://g.dev/eminetto">Google Developer Expert&lt;/a> is the incredible opportunities it provides. A few weeks ago, I had the opportunity to meet &lt;a href="https://en.wikipedia.org/wiki/Robert_Griesemer">Robert Griesemer&lt;/a>, co-creator of Go, in person, as well as &lt;a href="https://www.linkedin.com/in/doughertymarc/">Marc Dougherty&lt;/a>, Developer Advocate for the Go team at Google. At a happy hour after Google I/O, Marc asked me and another Go GDE from Korea for feedback on the language. My response was that I didn&amp;rsquo;t have any specific feedback about the language but that:&lt;/p></description></item><item><title>Creating an MCP Server Using Go</title><link>https://eltonminetto.dev/en/post/2025-05-01-mcp-server-golang/</link><pubDate>Thu, 01 May 2025 11:00:00 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2025-05-01-mcp-server-golang/</guid><description>&lt;p>In November 2024, Anthropic published a &lt;a href="https://www.anthropic.com/news/model-context-protocol">blog post&lt;/a> announcing what may be its most significant contribution to the AI ecosystem so far: &lt;strong>the Model Context Protocol&lt;/strong>.&lt;/p></description></item><item><title>First impressions with the Turso database</title><link>https://eltonminetto.dev/en/post/2025-03-23-turso-first-impressions/</link><pubDate>Sun, 23 Mar 2025 18:00:00 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2025-03-23-turso-first-impressions/</guid><description>&lt;p>&lt;a href="https://turso.tech">Turso&lt;/a> is one of those projects that you look at and think, &amp;ldquo;How has no one done something like this before?&amp;rdquo;  I&amp;rsquo;ve been following the project since its launch, but only now have I been able to dedicate some time to testing, which I describe in this post.&lt;/p></description></item><item><title>Creating an API with authentication using Encore.go</title><link>https://eltonminetto.dev/en/post/2025-02-22-intro-encore-part-2/</link><pubDate>Sat, 22 Feb 2025 07:10:00 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2025-02-22-intro-encore-part-2/</guid><description>&lt;p>This text is the second part of a series of posts about the &lt;a href="https://encore.dev/docs/go">Encore.go&lt;/a> framework :&lt;/p>
&lt;ol>
&lt;li>&lt;a href="https://eltonminetto.dev/en/post/2025-01-25-intro-encore-part-1/">Creating an API with a database&lt;/a>&lt;/li>
&lt;li>Creating an API with authentication (&amp;lt;— you are here)&lt;/li>
&lt;li>Communication via Pub/Sub&lt;/li>
&lt;li>Deploy&lt;/li>
&lt;/ol>
&lt;p>In the first part, we created a simple API that validates a user given the correct parameters. Now, let&amp;rsquo;s use this functionality to increase the project&amp;rsquo;s complexity: add a new API that requires authentication to be accessed.&lt;/p></description></item><item><title>Getting Started with Encore.go</title><link>https://eltonminetto.dev/en/post/2025-01-25-intro-encore-part-1/</link><pubDate>Sat, 25 Jan 2025 07:10:00 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2025-01-25-intro-encore-part-1/</guid><description>&lt;p>&lt;a href="https://encore.dev/go">Encore.go&lt;/a> has been on my radar for quite some time, when its beautiful website and examples caught my attention in a news article on Hacker News. But my excitement really increased after &lt;a href="https://encore.dev/blog/open-source-decoupled">this post&lt;/a> was published in December 2024. It announced that the framework would become an independent project, separated from the Encore Cloud tool.
This decision can make the framework more attractive to companies and developers who want to use it in their existing environments. I have nothing against &lt;a href="https://encore.cloud">Encore Cloud&lt;/a>, which seems to be a very interesting and robust solution, but this freedom of choice favors adoption in companies of different sizes.&lt;/p></description></item><item><title>Using CloudEvents in Go</title><link>https://eltonminetto.dev/en/post/2024-11-28-cloudevents-in-go/</link><pubDate>Thu, 28 Nov 2024 07:00:43 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2024-11-28-cloudevents-in-go/</guid><description>&lt;p>Adopting an event-driven architecture (EDA) to increase scalability and reduce coupling between components/services is relatively common in complex environments.&lt;/p></description></item><item><title>Resilience in communication between microservices using the failsafe-go lib</title><link>https://eltonminetto.dev/en/post/2024-08-24-resilience-in-communication-between-microservices-using-the-failsafe-go-lib/</link><pubDate>Sat, 24 Aug 2024 09:00:43 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2024-08-24-resilience-in-communication-between-microservices-using-the-failsafe-go-lib/</guid><description>&lt;p>Let&amp;rsquo;s start at the beginning. What is resilience? I like the definition in this &lt;a href="https://erikhollnagel.com/ideas/resilience-engineering.html">post&lt;/a>:&lt;/p>
&lt;blockquote>
&lt;p>The intrinsic ability of a system to adjust its functioning prior to, during, or following changes and disturbances, so that it can sustain required operations under both expected and unexpected conditions&lt;/p></description></item><item><title>JSON vs FlatBuffers vs Protocol Buffers</title><link>https://eltonminetto.dev/en/post/2024-08-05-json-vs-flatbuffers-vs-protobuf/</link><pubDate>Mon, 05 Aug 2024 21:00:43 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2024-08-05-json-vs-flatbuffers-vs-protobuf/</guid><description>&lt;p>When we think about communication between services/microservices, the first option that comes to mind is good old JSON. And this is not without reason, as the format has advantages, such as:&lt;/p></description></item><item><title>Using test helpers in Go</title><link>https://eltonminetto.dev/en/post/2024-02-15-using-test-helpers/</link><pubDate>Thu, 15 Feb 2024 20:00:43 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2024-02-15-using-test-helpers/</guid><description>&lt;p>Recently, in a code review, the great &lt;a href="https://www.linkedin.com/in/cassiobotaro/">Cassio Botaro&lt;/a> gave me a handy tip: refactor some tests to use the &lt;code>test helpers&lt;/code> feature from the &lt;code>testing&lt;/code> package.&lt;/p></description></item><item><title>Running WebAssembly code in Go</title><link>https://eltonminetto.dev/en/post/2023-12-11-running-webassembly-in-go/</link><pubDate>Mon, 11 Dec 2023 08:00:43 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2023-12-11-running-webassembly-in-go/</guid><description>&lt;p>This post is the second part of a series about WebAssembly and Go. In the &lt;a href="https://eltonminetto.dev/en/post/2023-11-17-webassembly-using-go-code-in-the-browser/">first post&lt;/a>, we saw how to run Go code in a web browser. In this one, we will import a WebAssembly function and run it in a Go application.&lt;/p></description></item><item><title>WebAssembly: using Go code in the browser</title><link>https://eltonminetto.dev/en/post/2023-11-17-webassembly-using-go-code-in-the-browser/</link><pubDate>Fri, 17 Nov 2023 08:00:43 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2023-11-17-webassembly-using-go-code-in-the-browser/</guid><description>&lt;p>Occasionally, a technology emerges that significantly impacts developers&amp;rsquo; daily lives—things like Linux, Git, Docker, and Kubernetes, among others. WebAssembly is a technology that has the potential to appear on this select list.&lt;/p></description></item><item><title>New in Go 1.21: Toolchains</title><link>https://eltonminetto.dev/en/post/2023-10-18-go121-toolchain/</link><pubDate>Wed, 18 Oct 2023 21:00:43 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2023-10-18-go121-toolchain/</guid><description>&lt;p>The version 1.21 of the language implemented an essential new feature. According to the documentation:&lt;/p></description></item><item><title>Writing tests for a Kubernetes Operator</title><link>https://eltonminetto.dev/en/post/2023-10-05-k8s-operator-test/</link><pubDate>Thu, 05 Oct 2023 07:30:43 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2023-10-05-k8s-operator-test/</guid><description>&lt;p>In the &lt;a href="https://eltonminetto.dev/en/post/2023-09-08-k8s-operator-sdk/">last post&lt;/a>, we saw how to create a Kubernetes operator using operator-sdk. As that text was quite long, I decided to write this second post to focus on the application&amp;rsquo;s testing part.&lt;/p></description></item><item><title>Creating Kubernetes Operators with operator-sdk</title><link>https://eltonminetto.dev/en/post/2023-09-08-k8s-operator-sdk/</link><pubDate>Fri, 08 Sep 2023 08:30:43 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2023-09-08-k8s-operator-sdk/</guid><description>&lt;p>If you develop APIs or microservices, especially in medium to large environments, you probably use Kubernetes.&lt;/p></description></item><item><title>GDE in Go</title><link>https://eltonminetto.dev/en/post/2023-08-23-gde/</link><pubDate>Wed, 23 Aug 2023 08:30:43 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2023-08-23-gde/</guid><description>&lt;p>I came across an exciting project called &lt;strong>Google Developer Experts&lt;/strong>. According to the &lt;a href="https://developers.google.com/community/experts?hl=pt-br">official website&lt;/a>, this is a group of &amp;ldquo;experienced Google technology experts, influencers, and thought leaders.&amp;rdquo;&lt;/p></description></item><item><title>[Go] How to work with dates in tests</title><link>https://eltonminetto.dev/en/post/2023-06-30-mock-time-golang/</link><pubDate>Fri, 30 Jun 2023 08:30:43 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2023-06-30-mock-time-golang/</guid><description>&lt;p>Working with dates in any programming language presents some challenges. In this post, I will show how to work with dates when writing unit tests for a Go application.&lt;/p></description></item><item><title>Choosing dependencies using deps.dev</title><link>https://eltonminetto.dev/en/post/2023-04-19-choosing-dependencies-using-deps-dev/</link><pubDate>Wed, 19 Apr 2023 08:30:43 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2023-04-19-choosing-dependencies-using-deps-dev/</guid><description>&lt;p>Choosing a project&amp;rsquo;s dependencies is something we sometimes overlook, but it can have a very relevant impact. The following image illustrates the idea:&lt;/p></description></item><item><title>Go Cloud Development Kit</title><link>https://eltonminetto.dev/en/post/2023-01-10-go-cloud-development-kit/</link><pubDate>Tue, 10 Jan 2023 09:00:19 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2023-01-10-go-cloud-development-kit/</guid><description>&lt;p>In this post, I will talk about an exciting project maintained by the team that develops the Go language: the &lt;a href="https://gocloud.dev/">Go Cloud Development Kit&lt;/a>, also known as the &lt;strong>Go CDK&lt;/strong>.&lt;/p></description></item><item><title>Introduction to Cuelang</title><link>https://eltonminetto.dev/en/post/2022-11-08-intro-cuelang/</link><pubDate>Tue, 08 Nov 2022 13:00:19 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2022-11-08-intro-cuelang/</guid><description>&lt;p>I bet that at that moment, you are thinking:&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;Another programming language&amp;rdquo;?&lt;/p>
&lt;/blockquote>
&lt;p>Calm down, calm down, come with me, and it will make sense :)&lt;/p></description></item><item><title>Creating an API using Go and sqlc</title><link>https://eltonminetto.dev/en/post/2022-10-22-creating-api-using-go-sqlc/</link><pubDate>Sat, 22 Oct 2022 13:00:19 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2022-10-22-creating-api-using-go-sqlc/</guid><description>&lt;p>When writing a Go application that handles data in a database (in this post, I will focus on relational databases), we have a few options:&lt;/p></description></item><item><title>Accelerate your local development environment with Tilt</title><link>https://eltonminetto.dev/en/post/2022-08-31-improve-local-development-tilt/</link><pubDate>Wed, 31 Aug 2022 13:00:19 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2022-08-31-improve-local-development-tilt/</guid><description>&lt;p>We spend hours and hours developing applications on our machines, with more and more requirements and complexity. In addition, any modern application has multiple containers, microservices, deployments in different environments, various stacks, etc. So any tool that can make our flow more agile is handy.&lt;/p></description></item><item><title>Error handling of CLI applications in Golang</title><link>https://eltonminetto.dev/en/post/2022-07-06-error-handling-cli-applications-golang/</link><pubDate>Wed, 06 Jul 2022 17:56:34 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2022-07-06-error-handling-cli-applications-golang/</guid><description>&lt;p>When developing some CLI applications in Go, I always consider the &lt;code>main.go&lt;/code> file as &amp;ldquo;the input and output port of my application.&amp;rdquo;&lt;/p></description></item><item><title>Using Golang stdlib interfaces</title><link>https://eltonminetto.dev/en/post/2022-06-07-using-go-interfaces/</link><pubDate>Tue, 07 Jun 2022 20:03:34 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2022-06-07-using-go-interfaces/</guid><description>&lt;p>In this post, I&amp;rsquo;ll show you how to use two of the most exciting features of the Go language: its standard library (the stdlib in the title) and its interfaces.&lt;/p></description></item><item><title>Testing Generics in Go</title><link>https://eltonminetto.dev/en/post/2022-03-11-fun-with-generics/</link><pubDate>Fri, 11 Mar 2022 08:27:10 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2022-03-11-fun-with-generics/</guid><description>&lt;p>It&amp;rsquo;s finally (almost) among us!&lt;/p>
&lt;p>Finally, after years of hearing that joke &amp;ldquo;what about Generics?&amp;rdquo; this long-awaited feature will be available in version 1.18 of the language, scheduled for release in March 2022.&lt;/p></description></item><item><title>Accessing Postgres via REST using pRest</title><link>https://eltonminetto.dev/en/post/2021-08-31-prest/</link><pubDate>Tue, 31 Aug 2021 22:48:39 -0300</pubDate><guid>https://eltonminetto.dev/en/post/2021-08-31-prest/</guid><description>&lt;p>In this post, I&amp;rsquo;m going to talk about a handy Open Source tool called pRest.&lt;/p></description></item><item><title>Microservices in Go using the Go kit</title><link>https://eltonminetto.dev/en/post/2021-02-06-microservices-gokit/</link><pubDate>Tue, 16 Feb 2021 08:33:24 +0200</pubDate><guid>https://eltonminetto.dev/en/post/2021-02-06-microservices-gokit/</guid><description>&lt;p>In one of the chapters of the book &lt;a href="https://www.amazon.com.br/Microservice-Patterns-examples-Chris-Richardson/dp/1617294543/ref=sr_1_1?__mk_pt_BR=%c3%85M%c3%85%c5%bd%c3%95%c3%91&amp;amp;crid=5S2QOI44DDW4&amp;amp;dchild=1&amp;amp;keywords=microservices&amp;#43;patterns&amp;amp;qid=1612616717&amp;amp;sprefix=microservice&amp;#43;pa%2Caps%2C300&amp;amp;sr=8-1">Microservice Patterns: With examples in Java&lt;/a> the author mentions the &lt;a href="https://microservices.io/patterns/microservice-chassis.html">&amp;ldquo;Microservice chassis&amp;rdquo;&lt;/a> pattern:&lt;/p></description></item><item><title>Profiling Golang applications using pprof</title><link>https://eltonminetto.dev/en/post/2020-04-08-golang-pprof/</link><pubDate>Wed, 08 Apr 2020 08:33:24 +0200</pubDate><guid>https://eltonminetto.dev/en/post/2020-04-08-golang-pprof/</guid><description>&lt;p>In the last few weeks, &lt;a href="https://codenation.dev">Codenation&lt;/a> has been experiencing very significant growth. Confirming the sentence of the great &lt;a href="https://www.linkedin.com/in/brunoghisi/">Bruno Ghisi&lt;/a> who says that “on the scale everything breaks”, features that always worked perfectly become problematic.&lt;/p></description></item><item><title>Processing parquet files in Golang</title><link>https://eltonminetto.dev/en/post/2019-12-09-parquet-golang/</link><pubDate>Tue, 10 Dec 2019 10:54:24 +0200</pubDate><guid>https://eltonminetto.dev/en/post/2019-12-09-parquet-golang/</guid><description>&lt;p>In this post, I will talk about a relatively new data file format, and how to use it in Go.&lt;/p></description></item><item><title>Using Golang as a scripting language</title><link>https://eltonminetto.dev/en/post/2019-08-08-golang-linguagem-script/</link><pubDate>Thu, 08 Aug 2019 10:54:24 +0200</pubDate><guid>https://eltonminetto.dev/en/post/2019-08-08-golang-linguagem-script/</guid><description>&lt;p>Among the technical decisions we made during the development of [Codenation] (&lt;a href="https://codenation.dev">https://codenation.dev&lt;/a>), one of the right ones was to choose Go as the main language.&lt;/p></description></item><item><title>Object Calisthenics in Golang</title><link>https://eltonminetto.dev/en/post/2019-06-01-object-calisthenics-golang/</link><pubDate>Sat, 01 Jun 2019 10:54:24 +0200</pubDate><guid>https://eltonminetto.dev/en/post/2019-06-01-object-calisthenics-golang/</guid><description>&lt;p>&lt;a href="http://www.xpteam.com/jeff/">Jeff Bay&lt;/a> introduced the term &lt;strong>Object Calisthenics&lt;/strong> in his book [Thought Works Anthology] (&lt;a href="https://pragprog.com/book/twa/thoughtworks-anthology%29">https://pragprog.com/book/twa/thoughtworks-anthology)&lt;/a>. It is a set of good practices and programming rules that can improve the quality of our code.&lt;/p></description></item><item><title>Data Migration with Golang and MongoDB</title><link>https://eltonminetto.dev/en/post/2019-01-23-migracao-de-dados-com-go-e-mongodb/</link><pubDate>Wed, 23 Jan 2019 10:09:24 +0200</pubDate><guid>https://eltonminetto.dev/en/post/2019-01-23-migracao-de-dados-com-go-e-mongodb/</guid><description>&lt;p>One item addressed by the &lt;a href="https://12factor.net">twelve-factor app&lt;/a> method is the automation of administrative processes, such as script execution and data migration. This is exactly what I will talk about in this post: how we automate the migration of data using Go and MongoDB.&lt;/p></description></item><item><title>Monitoring a Golang application with Supervisor</title><link>https://eltonminetto.dev/en/post/2018-11-28-monitorando-app-go-com-supervisor/</link><pubDate>Wed, 28 Nov 2018 10:54:24 +0200</pubDate><guid>https://eltonminetto.dev/en/post/2018-11-28-monitorando-app-go-com-supervisor/</guid><description>&lt;p>Dear reader… If you are reading this post a few years after his publication date you must understand that in 2018 we were very excited about things like micro services, Docker, Kubernetes and related technologies.&lt;/p></description></item><item><title>Golang: using build tags to store configurations</title><link>https://eltonminetto.dev/en/post/2018-06-25-golang-usando-build-tags/</link><pubDate>Mon, 25 Jun 2018 08:54:24 +0200</pubDate><guid>https://eltonminetto.dev/en/post/2018-06-25-golang-usando-build-tags/</guid><description>&lt;p>One of the &lt;a href="http://12factor.net">12 factor&lt;/a>, a methodology for building software-as-a-service apps, is:&lt;/p>
&lt;blockquote>
&lt;p>Store config in the environment&lt;/p>
&lt;/blockquote></description></item></channel></rss>