Skip to content

2024

F3: flexible feature flags

I am still working on a legacy codebase, so even the smallest change feels slippery and made me fearful. When I was about to implement a not-so-small change in a data processing procedure taking place as one of the first steps of a bigger pipeline, as a painkiller I decided to ask a feature flag to come to the rescue!

A simple notification pattern based on apprise

In my current role I try to learn and experiment with side projects whenever I can. One of these regards the need to notify a developer as soon as an update has been made to internal tools (e.g. the latest release of a private Python library, a new page in the team's knowledge base, etc.).

After some research I came up with a simple solution based on a pub-sub architecture, Microsoft Teams webhook and the awesome Apprise.

Three Python libraries for/with a great user experience

I am working on a super-opinionated solution to assume AWS roles via STS, both programmatically and to log into AWS Console. While searching in the Python ecosystem utilities to build CLI and GUI with, I discovered three libraries that offer a great user experience both for the end users and the developers that build with them.

A homemade replacement for mkdocstrings

In these days I am tidying up the documentation of a legacy codebase, where "legacy" stands for something in between spaghetti code and "things I wish I've done differently". Since I wish the output of the work to be as much complete as possible, I decided to include also the source code in the new docs built with mkdocs-material.

The go-to choice could have been mkdocstrings, but I wanted to avoid some setup complexity1 so I wrote down a custom source code collector.

A visual comparison of AWS Certifications

Following my previous post, the quest for AWS Certifications continues.

In this episode, my goal is to quantitatively compare the three Associate certifications I'm focusing on: Solutions Architect, Developer and Data Engineer. So, I did some scraping to extract the exhaustive list of AWS services in scope for each certifications for the time being.

AWS Certification Skill Tree

As a professional with more than 4 years of experience with AWS, I might attempt to get an AWS Certification sooner or later this year, so I'm evaluating all the possibilities out there.

AWS itself provides a useful guide to the recommended AWS Certification Paths, where all the top cloud job roles are listed together with a bried description of their responsibilities.

Even if such a resource is more than welcome, I find that the big picture is not as clear as it should be: I decided to help myself building a skill tree with the aid of the awesome diagrams.

All you need is closure

Decorators are well known examples of Python syntactic sugar, which basically let you change the behaviour of a function without modifying its definition, thanks to a handy syntax based on the @ symbol followed by the decorator name, everything put just above your function definition.

Sometimes, however, you can't exploit this syntax, for example because you don't have the function definition at your disposal - let's think at the case in which the function you want to decorate lives in another codebase (the latter might be one of the libraries your project depends on).

Convert a markdown file to docx with pandoc

Today I rediscover an amazing tool: pandoc, which correctly presents itself as

your swiss-army knife to convert files from one markup format into another.

In these days I am working on the redaction of a complex tender notice, which must be delivered as an editable docx and then exported (with all the fancy stuff and theming) into pdf. Unfortunately, I find the user experience of writing documents with Microsoft Word really unsatisfying and cluttered.

Terminal User Interface

If you have an already up-and-running Typer app, you might want to extend it to some sort of GUI (Graphical User Interface).

While building a full GUI can be time-consuming, there is a really fast utility which can be adopted to get somewhere in between.