RSSAmplifier

Blog

Bruno Luiz da Silva

Recent content on Bruno Luiz da Silva

brunoluiz.netRSS feed ↗17 posts

Latest posts

How Crossplane providers work and how to implement one

A guide for building Crossplane providers in Golang, from the reconciler lifecycle to examples of how to implement and best practices.

Engineers must learn how to say "no"

A reminder to my future self and a guide for those early in their careers on why “no” is often the most productive word in an engineer vocabulary.

Naming cloud resources doesn't have to be hard

Most of us have to name “things” daily. Most are easy to change due to refactoring tools, but cloud resources can be impossible at times. We will cover how to avoid major complications by simply re-thinking how you name cloud resources and (hopefully) avoid renames.

Low downtime Postgres upgrade: the runbook (part II)

No one is really prepared to upgrade big Postgres instances without downtime. This second part will focus on how to do it the lowest downtime possible.

Low downtime Postgres upgrade: I want to believe (part I)

Postgres is a great database, one of developer’s favourites, but upgrades are far from easy and smooth. The journey of selecting an optimal solution and weighing its trade-offs and risks is always an exciting challenge.

ImageWand: privacy-first image conversion experiment with Golang and WASM

After my experiment with GIFSane, one thing was clear: WASM shines when we think about complex applications (eg: media manipulation), usually performing better or opening more opportunities than JavaScript. It is finally time to try to create something from scratch, using Golang WASM toolchain

GIFs (sane) playback control using WASM and FFmpeg

Not having playback control on GIFs always annoyed me a bit. I always secretly hoped that one day browsers would support this. This day never arrived, and I decided to take matters into my own hands.

The forgotten art of HTML redirects, without either HTTP 301 or JavaScript

One of the first things API developers learn is HTTP codes. From these 3xx are special, as they redirect users from A to B. But what if I told you there is a way to do it without HTTP codes?

Getting good code reviews from peers

Every software developer, soon after pushing code to the repository, has this urge to ping the team to ask for code review. But, I dare to say: don’t do it! Most likely the code will still have some issues, especially if this is your first push for this feature.

GRPC: A powerful way to improve your Golang APIs

Web APIs are everywhere, with REST being one of the most popular ways to distribute it. With recent technologies, there are better ways to implement them, GRPC been one of them.

GraphQL feat API Gateway

GraphQL, REST, gRPC, Thrift… Have you ever imagined how to stick these together in a micro-services architecture and expose to the world? There are some common ways to do it, such as using Nginx or Kong. But, an alternative way to do this is by using GraphQL in front of all services.

Kubernetes devops productivity hacks

Today, Kubernetes is the de facto container orchestration solution. Together with the devops culture, developers have to get familiarised to its tools, such as kubectl. But how do we go beyond kubectl?

A guide on npm package publishing

If you are not new in the JavaScript world, you might have already heard about npm. It is a package manager which lets developers easily add dependencies to projects, as npm install hello-world . But, have you ever asked, How do I create and publish my own packages

A Tale Of How To Not Deploy Two Months Old Features

There is one big and very special date on the e-commerce and retail market and it is called Black Friday. For many, it means “discount prices”, “sale!”, “50% off”, but for developers and IT people it is a challenging adventure.

Joi: validate input and define databases in JavaScript

As the saying goes: never trust user input. People coming from PHP and Java have many validation libraries available. But what about JavaScript? There are some options, but none seems more interesting than Joi.

Still using GitFlow? What about a simpler alternative?

GitFlow is a branching model created by Vincent Driessen on 2010. Since it was published, many companies had tested and implemented it, which allows us to have many reviews about how well (or not) it works. After some discussions within our team, we decided to not go with GitFlow, but use a simpler model instead, together with a tightly defined workflow.

Are you using git push force? Oh mate, you are doing it wrong!

You are developing some feature together with your team. Most likely you have done the usual dance: checkout a branch from the master or development branch, done your commits, pushed this feature branch to the remote and opened a push request for peer review. In ideal cases, you will be able to just squash and merge after some reviews and fixes. But, the world is not ideal (as you might know), and…