Skip to content

Blogs

On avoiding YAML

YAML is a popular format for configuration files, with a graph data model, extensible types, and a supposedly human-readable syntax. Yet, almost no language ships a YAML parser in its standard library (except Ruby) which suggests nobody wants to own one. That was the first flag for me. In this post I go through the pitfalls that convinced me: a complex syntax, insecure defaults, and a dependency I don’t need.

Read more →

August 24, 2026

Declarative security and compliance policies

Hardcoding security and compliance policies is a bad idea: not every project share the same requirements. Xenguard uses Open Policy Agent and its policy Language, Rego, to let users define their own policies as code.

Read more →

July 12, 2026

A simple configuration library for Go

Hard coding values used by a program to determine its runtime behavior (i.e., configuration variables) is a bad idea. Programs commonly provide an interface, such as a settings page or command-line interface (CLI) flags, so users can configure the program accordingly. Xenguard is no exception, but with a twist: it has its own configuration approach instead of relying on existing ones.

Read more →

June 28, 2026

Modeling is dead, Long live Modeling!

Modeling is an integral part of software engineering. Yet, proper models for software projects are hard to come by. Why is that? I have a theory about why software engineers are reluctant to model software, and I have also found a solution to overcome modeling hurdles for Xenguard.

Read more →

June 14, 2026