Image for post
Image for post

If I say monitoring, the first thing that comes to mind is Prometheus. And its trusty sidekick, Grafana. Is it software engineering if you’re not continuously checking some dashboards? However, we don’t want to expose those dashboards on the public internet. That would be bad! In this post, I’m showing how to set up authentication for Grafana. I’m using Auth0 as an identity provider.

I wrote some time ago about setting up Auth0 with Terraform. Auth0 is an excellent product and a convenient way to set up authentication and authorization without handling the gory details. …


Image for post
Image for post

Prometheus is a complex beast. I’ve been using it at work for the past year, and I always felt that I could barely understand what was going on. Picking up this book is a great way to start filling those gaps. Roughly, there are the following sections:

  • Application Monitoring
  • Infrastructure Monitoring
  • PromQL
  • Alerting
  • Deployment

Whether you are monitoring applications or infrastructure, the core components are the same. Instrumenting the code or using exporters, and then publishing metrics that Prometheus will scrape, with a few labels to sprinkle on top.

There are plenty of components that need to be deployed to have a more complete setup. The node-exporter, the blackbox-exporter, and others make an appearance. …


Image for post
Image for post

I wrote about Network Load Balancers recently. You get a lot of mileage out of NLB’s, but sometimes you do need Layer 7 features.

One alternative is keeping the NLB and putting a reverse proxy like Traefik behind it. However, a simpler approach can be replacing both with another offering from AWS, the Application Load Balancer (ALB). In this post, I’ll show how to provision ALBs with help of the old trusty Terraform.

Setting up an Application Load Balancer

There are three main components to consider: The load balancer, the listeners, and the target groups. I wrote in detail about this in my previous article, so I won’t belabor this point too much. …


Image for post
Image for post

Netflix is a scrappy startup doing some video stuff. Maybe you’ve heard of them. They are famous for their extensive use of microservices, chaos engineering, and family-friendly shows like Narcos.

Anyway! There is a book out talking about their corporate culture in all of its glory. You know how many companies have tribes and squads and all those words popularized by Spotify and think they are totally agile? Then, it turns out that they’re actually not, and regardless, Spotify doesn’t even follow that model anymore. Thanks to books like this, we’ve got a whole new set of cargo culting opportunities.

After reading about their ethos, I would define Netflix’s culture as compassionate Darwinism. They are pretty cutthroat, expecting high performance and culling whoever falls behind. On the other hand, they foster feedback, a culture of experimentation, and empower employees to make decisions instead of waiting for orders. You can’t argue with the success, so I’m sure they must be doing something right. …


How to manage and organize your article drafts to get the most out of your writing

Image for post
Image for post
Photo by Pixabay and Sourced from Pexels.com

After talking about creating technical stories and how to get them into an iteration, the technical backlog remains. We have done most of the work by now, so what’s left is essentially bookkeeping. It’s nevertheless an important topic. If you made it this far, you’re likely willing to spend a fair amount of effort handling technical stories. It’s only fair to give them a proper home.

The technical backlog is the place to put all the stories that we’ve been carefully writing and refining. We all are busy, so we want to spend the least effort possible while keeping an overview and a priority. …


Image for post
Image for post

Are you using some form of load balancing in your application? Don’t answer. It’s a rhetorical question. You bet I am, you scream defiantly. How else am I going to ensure that traffic is evenly distributed?

Load Balancers come in all shapes and sizes. In the past, it used to be a concern for the operations folks. As an application developer, you could spend years without having to think about them. That’s not always the case in the cloud. Luckily, AWS makes it easy for us to create such resources. More so if you use Infrastructure as Code (which I’m sure you are). …


Image for post
Image for post

Do you wake up in the morning and tell yourself, “man, I would love to work on some legacy code today”? I guess you don’t. We need to talk if you do.

But anyway, whether you like it or not, you probably will work on legacy code more often than you’d like to. That’s where this book comes in. If you have read Refactoring, the structure will ring familiar. A collection of patterns to handle different aspects of working in a legacy system. …


Image for post
Image for post

As I recently wrote, I believe technical stories have a place in a healthy agile workflow, as long as we use them judiciously.

I left a question in that article unanswered: How do you get such stories into an iteration? An iteration can be fixed, like a two-week sprint or something more free-flowing like Kanban. In any case, the Product Owner is typically the backlog’s gatekeeper, which naturally leads to user stories having priority over technical ones. We have to live with that.

Trying to get important stories in play to see them deprioritized is very demotivating. Even more so if that happens again and again. The sarcasm level might increase. Dilbert comics might appear on the walls. …


Image for post
Image for post

Essentially, this is a book about negotiating written by a former hostage negotiator. How is this relevant for software development, you might ask? Well, it is relevant. How many meetings do you attend per week? Probably a lot. You always want to get something out of every meeting (I’m fond of saying that a meeting without a goal is a social gathering). In many cases, what you want might not be what others want to give you. Thus, negotiation ensues.

If you’re constantly negotiating, so you might as well pretend to know what you’re doing, right? Getting to yes was the canonical book about the topic. The big difference is that this one is very explicit about the fact that people don’t usually behave rationally, which rings very accurate. …


Image for post
Image for post

I’ve written extensively about the Either datatype this year. It’s an excellent way to model errors without resorting to exceptions.

Kotlin has been thus far my go-to language to show this concept. However, I’ve been playing a lot with Rust lately. My first instinct was to explore its functional programming capabilities. Rust really delivers there.

There are plenty of exciting ideas in Rust. The borrow checker, lifecycles, and plenty of others. I’m going to focus on Either in this post, although you might be more familiar with its actual name in the language, Result.

A reason to use Rust

Rust is an increasingly popular language. …

About

Mario Fernández

I develop software for a living. Then I go home and I continue reading about software, because I just cannot get enough. Nowadays I work for ThoughtWorks.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store