My Blog

crab yellow

Logs and tracing in Rust: From Terminal to Grafana

How to ship structured logs from a Rust application to Grafana Loki and query them, with a complete local setup using Docker Compose.

Read More
crab green

Logs and tracing in Rust: Structured Fields and Spans

How to use structured fields and spans in the Rust tracing crate to add context to your logs and understand the flow of execution in your code.

Read More
crab blue

Logs and tracing in Rust: Fundamentals

An introduction to logging and tracing in Rust, covering some of the philosophy behind logging and how to set up a basic tracing subscriber in your Rust projects.

Read More
reproducability yellow

Why Synthetic Data is Good for Open Science

Understanding the benefits of synthetic data for open science and reproducibility.

Read More
padlock orange

Is your Synthetic Data actually private?

A practical guide to the three privacy risks in synthetic data, the metrics that quantify them, and why no single number tells you whether your data is safe.

Read More
testing blue

Applying the Open-Closed Principle to Research Code

Applying the Open/Closed Principle is how you stop accidentally changing yesterday's results.

Read More
reproducability green

The Single Responsibility Principle for Scientists Who Write Code

Exploring the Single Responsibility Principle in the context of scientific programming and data analysis.

Read More
lightbulb white

Synthetic Data: The Complete Series

The jumping off point for my synthetic data series, covering the basics of synthetic data generation and its applications.

Read More
graph_2 orange

Representativeness in Synthetic Data: What It Means and How to Measure It

Understanding the concept of representativeness in synthetic data and the methods used to measure it.

Read More