code maintenance

Working on an unfamiliar codebase

In our profession, it’s common to work on an unfamiliar codebase. It happens every time one joins a new project or even needs to work on a previously untouched part in big ones. This occurrence is not limited to a developer having to fix a bug; it can be a solution architect having to design a new feature or an OpenSource contributor working on a GitHub issue in their free time. Hence, I want to describe how I approach the situation so it can benefit others. An example issue To illustra

data location data residency API Gateway Apache APISIX Apache ShardingSphere

Managing Data Residency - concepts and theory

Cloud computing has opened a Pandora’s Box of many original issues compared to sound old on-premise systems. I believe that chief among them is Data Residency, or Data Location: Data localization or data residency law requires data about a nation’s citizens or residents to be collected, processed, and/or stored inside the country, often before being transferred internationally. Such data is usually transferred only after meeting local privacy or data protection laws, such as givin

Rust Axum Tokio Dall.E

Server-side rendering in Rust - a Dall.E use-case

Last week, I decided to see the capabilities of OpenAI’s image generation. However, I noticed that one has to pay to use the web interface, while the API was free, even though rate-limited. Dall.E offers Node.js and Python samples, but I wanted to keep learning Rust. So far, I’ve created a REST API. In this post, I want to describe how you can create a webapp with server-side rendering. The context Tokio is a runtime for asynchronous programming for Rust; Axum is a web framework t


Leverage the richness of HTTP status codes

If you’re not a REST expert, you probably use the same HTTP codes over and over in your responses, mostly 200, 404, and 500. If using authentication, you might perhaps add 401 and 403; if using redirects 301 and 302, that might be all. But the range of possible status codes is much broader than that and can improve semantics a lot. While many discussions about REST focus on entities and methods, using the correct response status codes can make your API stand out. 201: Created Many appli

container Kubernetes debug DevOps

Fearless Distroless

With the rise of Docker came a new focus for engineers: optimizing the build to reach the smallest image size possible. A couple of options are available. Multi-stage builds: A Dockerfile can consist of multiple steps, each having a different Docker base image. Each step can copy files from any of the previous build steps. Only the last one will receive a tag; the others will be left untagged. This approach separates one or more build steps and a run step. On the JVM, it means that the first s

SEO content canonical

The importance of rel=canonical for content writers

The subject of canonical reference has been touched thousand times. But since some content writers are still making the same mistake over and over, I think it’s beneficial to add one more. I hope to reach some who aren’t aware of it. Content writing is not enough Writing content is not enough: you can have written the best blog post of the century; it’s no good if nobody sees it. One has two ways to spread the word: Link to the post on social mediaCopy the post to another s

Firefox CFP Sessionize Papercall Eventil

My first Firefox extension

A couple of weeks ago, I spent the weekend creating another CFP submission helper in the form of a Firefox extension. It was not a walk in the park. To help others who may be interested in doing the same (and my future self), here’s my journey. Context I’ve written multiple posts about my conference submission workflow. To sum up: Everything is based on a Trello boardI created an app that registered a webhook on the boardWhen I move a conference from one lane to another, it start

Scaleway cloud provider review developer experience

My evaluation of the Scaleway Cloud provider

A couple of years ago, I developed an app that helped me manage my conference submission workflow. Since then, I have been a happy user of the free Heroku plan. Last summer, Heroku’s owner, Salesforce, announced that it would stop the free plan in November 2022. I searched for a new hosting provider and found Scaleway. In this post, I’d like to explain my requirement, why I chose them, and my experience using them. The context I’ve already described the app in previous blog

security TLS

mTLS everywhere!

Security in one’s information system has always been among the most critical Non-Functional Requirements. Transport Secure Layer, aka TLS, formerly SSL, is among its many pillars. In this post, I’ll show how to configure TLS for the Apache APISIX API Gateway. TLS in a few words TLS offers several capabilities: Server authentication: the client is confident that the server it exchanges data with is the right one. It avoids sending data, which might be confidential, to the wrong ac