Writing on software design & company building

Some of my thoughts on programming, software architecture, leadership, product design, and more, collected in chronological order.

Indempotent APIs

The importance of idempotency keys and idempotent APIs in building robust and reliable distributed systems.

The Misleading Nature of Averages

The reality is that the average rental price, often cited in discussions about Berlin's housing market, is practically a mythological figure.

When technological advancement feels intimidating

It's understandable to feel overwhelmed by the rapid pace of technological advancements. As technology continues to evolve at an unprecedented rate, it's common for people to experience a range of emotions, including excitement, fear, and anxiety. The feelings of fear of missing out (FOMO) and anxiety you're experiencing are valid and more common than you might think. Here are a few thoughts on how to manage these feelings.

Adjust MacOS Menu Bar App Icon Spacing

NSStatusItemSelectionPadding & NSStatusItemSpacing let's us adjust the spacing of MacOS menu bar app icons.

Technical Nuances of 301 vs 302 HTTP Redirects

301 and 302 redirects are widely used but often misunderstood or incorrectly implemented. This blog post aims to delve into the technical aspects of these redirects, highlighting their differences, use cases, and implications on server-side tracking and browser caching.

OLTP and OLAP: Usecases and underlying technologies

In this article, we will delve into the realms of OLTP (Online Transaction Processing) and OLAP (Online Analytical Processing), and explore the role of PostgreSQL and other DBMS in these contexts

Postgres with Docker in 30s

A docker-compose.yml file allowing to spin up a Postgres database quickly.

Emulator vs Simulator: Deciphering the Difference

Emulators offer a high-fidelity replication of both hardware and software, while simulators provide a high-level abstraction of the software environment.

Disabling the GUI (and boot into GUI) on Ubuntu

This guide provides steps to disable the graphical user interface on an Ubuntu system, particularly useful when the system is primarily accessed via SSH.

How to Conduct Developer Experience Surveys: A Comprehensive Guide

Conducting developer experience surveys is a valuable practice for startups and scaleups. It empowers you to understand your team's needs, make data-driven improvements, and create a more productive and enjoyable development environment.

Flexbox Examples: Full-height column with scrolling content with TailwindCSS

Flexbox is a versatile CSS layout module that empowers developers to effortlessly create flexible and responsive web layouts. However, it's natural to occasionally forget its semantics. To address this, I've compiled a couple of examples in this blog for future reference

Finding Balance: Why Engineering Teams Need 'Easy' Time for Optimal Results

In the pursuit of excellence, engineering teams must find a balance between challenging tasks and "easy" time. Similar to training for a marathon, where most training occurs in the "easy" zone, engineering teams thrive when they prioritize foundational work, skill development, innovation, and collaboration.