Let’s start at the beginning. What is resilience? I like the definition in this post: | Continue reading
When we think about communication between services/microservices, the first option that comes to mind is good old JSON. | Continue reading
Thanks to the Google Developer Experts program, I had the opportunity to participate in Google I/O in Mountain View, California, in May this year. | Continue reading
First things first: what is make? Present in all Linux distributions and Unix derivatives such as macOS, the tool’s manual describes it as: | Continue reading
This text is the last part of a series of posts I wrote about one of the technologies that have had the most impact on me in recent years: WebAssembly. | Continue reading
Recently, in a code review, the great Cassio Botaro gave me a handy tip: refactor some tests to use the test helpers feature from the testing package. | Continue reading
In the previous post, we saw that there are different types of load tests and what their objectives and characteristics are. | Continue reading
When we talk about “load testing,” perhaps the first thing that comes to mind is “sending traffic to the application until it cries. | Continue reading
This post is the second part of a series about WebAssembly and Go. In the first post, 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. The first step was to create a function in WebAssembly, and in this … | Continue reading
Occasionally, a technology emerges that significantly impacts developers' 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. WebAssembly (also known as WASM) was launched in 2 … | Continue reading
The version 1.21 of the language implemented an essential new feature. According to the documentation: Starting in Go 1.21, the Go distribution consists of a go command and a bundled Go toolchain, which is the standard library as well as the compiler, assembler, and other tools. … | Continue reading
In the last post, 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’s testing part. Using the operator-sdk CLI to create the operator skeleton makes an initial structure for … | Continue reading
If you develop APIs or microservices, especially in medium to large environments, you probably use Kubernetes. Kubernetes is a project created by Google in mid-2015 that quickly became the standard for managing container execution. You can host it on your machines or use a soluti … | Continue reading
I came across an exciting project called Google Developer Experts. According to the official website, this is a group of “experienced Google technology experts, influencers, and thought leaders.” I learned about the project because several people I admire are part of it. I’ve bee … | Continue reading
This text is the second part of a series of posts about productivity. In the first part, I discussed how developers can improve their productivity. In this text, I will mention some ways in which the company or team can improve the daily lives of developers. Do Onboarding Startin … | Continue reading
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. | Continue reading
The terminal is the tool I use the most in my day-to-day work. Over the years, I’ve created a series of shortcuts, scripts, and habits that make me more productive in performing many of my tasks. In this post, I will tell you some of the things I’ve set up and been using to inspi … | Continue reading
Choosing a project’s dependencies is something we sometimes overlook, but it can have a very relevant impact. The following image illustrates the idea: To facilitate this process, Google recently launched a new project, deps.dev. Its slogan summarizes its objective: Understand yo … | Continue reading
One of the most controversial issues in the Go language is how we handle errors. I remember when I started working with the language, in mid-2015, after having used PHP for a few years, and I was surprised that it didn’t use the famous try/catch. After the first impact passed, I … | Continue reading
Whether in scenarios of accelerated growth or even in the unfortunate moment of layoffs that we are going through, developer hours are one of the most expensive and valuable resources for companies. In this way, productivity and efficiency become significant advantages for profes … | Continue reading
In this post, I will talk about an exciting project maintained by the team that develops the Go language: the Go Cloud Development Kit, also known as the Go CDK.The Go CDK provides a series of abstractions for many features often used in applications that run in the cloud, such a … | Continue reading
I bet that at that moment, you are thinking: “Another programming language”? Calm down, calm down, come with me, and it will make sense :)Unlike other languages like Go or Rust, which are “general-purpose languages,” CUE has some particular objectives. Its name is actually an acr … | Continue reading
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: write SQL queries using some lib that implements the stdlib interfaces use some lib that facilitates SQL generation, like Squirrel although n … | Continue reading
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 … | Continue reading
It is a consensus in the software development community that documentation is essential. But at the same time, it’s not one of the most glamorous tasks, especially compared to writing code. | Continue reading
When developing some CLI applications in Go, I always consider the main.go file as “the input and output port of my application.”Why the input port? It’s in the main.go file, which we will compile to generate the application’s executable, where we “bind” all the other packages. T … | Continue reading
You realize you’re getting old when they ask you for career tips. 🙂Jokes aside, this is a subject that interests me a lot, and in these career conversations, a question often appears: Among so many options of subjects and technologies available, how do I choose what to st … | Continue reading
In this post, I’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.Go is famous for providing a lot of functionality, thanks to its powerful standard library. Covering everything from text … | Continue reading
It’s finally (almost) among us!Finally, after years of hearing that joke “what about Generics?” this long-awaited feature will be available in version 1.18 of the language, scheduled for release in March 2022.In this post, I’ll do an example using Generics and a small benchmark t … | Continue reading
Looking at my career, I can say that I have more experience and theoretical background in matters related to technology, especially in the area of software development. This fact is due to having done a graduate degree in Computer Science and having read a good amount of books an … | Continue reading
If you develop or consume REST APIs, you have probably come across some documentation written according to the OpenAPI specification. It is the industry standard, although I prefer to document using API Blueprint :)But the subject of this post is another specification, the AsyncA … | Continue reading
I started using AWS tools in mid-2008 when a local cloud provider left the startup where I was CTO (the late Drimio) down for more than 24 hours. Since then, AWS has always been my first choice as a cloud solutions provider.It was my recommendation to host the servers of Coderock … | Continue reading
In this post, I’m going to talk about a handy Open Source tool called pRest.With pRest, it is possible to create a RESTFul API to access the contents of a Postgres database in a fast and straightforward way. The project, written in Go, can be found on its official website and Git … | Continue reading
Teams need to make several important decisions in the software development process, from programming languages, architectures, processes, tools, etc. As the project and team grow, making these decisions becomes more complex and essential. In addition, how can you ensure that the … | Continue reading
If you work as a software developer, you have probably participated in a daily meeting, daily scrum, or stand-up meeting (although this name lost sense during the pandemic since we’re all sitting in front of our computers).This meeting is one of the most common ceremonies of agil … | Continue reading
In one of the chapters of the book Microservice Patterns: With examples in Java the author mentions the “Microservice chassis” pattern: Build your microservices using a microservice chassis framework, which handles cross-cutting concerns, such as exception tracking, logging, heal … | Continue reading
You have probably heard the term UX (User Experience), which is defined as “the discipline responsible for designing enchanting user experiences to retain and win customers”. Analogous to this term there is a more recent one, but it has been gaining popularity in recent years. Th … | Continue reading
One advantage of the Go language is its standard library, which contains many useful features to develop modern applications, such as HTTP server and client, JSON parser, and tests. It is exactly this last point that I will talk about in this post.With the standard library it is … | Continue reading
In the last few weeks, Codenation has been experiencing very significant growth. Confirming the sentence of the great Bruno Ghisi who says that “on the scale everything breaks”, features that always worked perfectly become problematic.We noticed in the metrics of our Prometheus t … | Continue reading
This text is part of a series of posts I am doing with examples of applications using Clean Architecture. The other posts that are part of this series are: Clean Architecture using Golang Golang: using build tags to store configurations Continuous integration in projects using mo … | Continue reading
Using mocks in test development is a concept used in the vast majority of programming languages. In this post, I will talk about one solution to implement mocks in Go: GoMock.To show GoMock functionality, I will use the tests created in my repository about Clean ArchitectureClean … | Continue reading
In this post, I will talk about a relatively new data file format, and how to use it in Go.The format is called Parquet and is currently a project supported by the Apache Foundation. It is a binary file format to store and facilitate data processing a columnar storage format. It … | Continue reading
Among the technical decisions we made during the development of [Codenation] (https://codenation.dev), one of the right ones was to choose Go as the main language. | Continue reading
Jeff Bay introduced the term Object Calisthenics in his book [Thought Works Anthology] (https://pragprog.com/book/twa/thoughtworks-anthology). It is a set of good practices and programming rules that can improve the quality of our code. | Continue reading
Full Stack developer In the last years, the term full stack developer grown in many job opportunities, mainly in startups. According to this post, a full stack developer is: | Continue reading
One item addressed by the twelve-factor app 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. | Continue reading
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. | Continue reading