Postgres provides sequence generators to assign unique values to primary key columns. They have very low overhead and are ideal for this purpose. But surprisingly, they do not actually guarantee that values are assigned in increasing order, which was required for us to make audit logs available in our public API. In this post, I'll explain under what circumstances generated IDs can appear in the database out of order and what solution we came up with to prevent this while keeping the impact on performance low.
At cloudscale, we like to exert as much control over our infrastructure as possible. In this blog post, I share some insights about our internal tooling and infrastructure, the risks of relying on U.S. vendors, and what all of that means regarding digital sovereignty.
Learn how to effectively use uv package manager within IntelliJ IDEA for Python projects, with practical setup steps and workarounds for current limitations.
At cloudscale, we take security very seriously. Our approach includes rigorous code and architecture reviews, extensive automated testing, and leveraging battle-tested open-source frameworks like Django. For a recent external penetration test in the context of our ISO certification, we engaged a specialized provider to examine our Control Panel and API for potential security vulnerabilities.
Ich stolpere immer wieder mal über ungenügendes Quoting und Escaping von Kommandos, die ich via SSH ausführen will. In diesem Artikel versuche ich zu beischreiben, wie das Problem genau auftritt, und wie das Problem mithilfe von Features von modernen Shells automatisiert gelöst werden kann.
I used the launch of the dedicated GPUs as an opportunity to show off some of the new possibilities it adds to our platform. In this Engineering Blog Post I'm going through the setup of a self-hosted AI chatbot using Ollama and Open WebUI, powered by the DeepSeek-R1 70B model running on one of our brand-new NVIDIA L40S GPUs.
Set up a highly available Kubernetes control plane using cloudscale's load balancer. This guide walks you through provisioning with Terraform, configuring Kubernetes, and testing failover step by step.
Das effektive durchforsten von Code und präzise finden von bestimmten Code-Stellen wird in grossen Software-Projekten zu einer wichtigen Aufgabe. Werkzeuge wie Regular Expressions kommen irgendwann an ihre Grenzen. Ich zeige ein Werkzeug, mit dem Python-Code anhand seines ASTs durchsucht werden kann.
If a new fridge arrives, the urge to just plug it, fill it with beverages and enjoy a cold one is big. But the setup actually requires quite some steps to ensure that the device runs reliably for a long time with low maintenance, so does a proper onboarding process. In this blog post I will use this odd analogy to describe my onboarding process as a Software Engineer in the Dev Team at cloudscale.