Projects

Projects

github-sponsor-button

Active Projects

These are the projects I am currently working on and actively maintaining. I’m always looking for contributors and feedback—feel free to visit each project’s GitHub page and follow the contribution guidelines.

🛥️ KSail Go Docker Kubernetes

KSail

A CLI tool for provisioning GitOps-enabled Kubernetes clusters. It embeds common Kubernetes tools (kubectl, Helm, Kind, K3d, Flux, ArgoCD) as Go libraries, requiring only Docker as an external dependency.

  • Local Development: Spin up a cluster with GitOps enabled to instantly deploy your Flux Kustomizations
  • CI Pipelines: Test that your GitOps configurations successfully deploy applications
  • Multiple Distributions: Support for Kind, K3d, and Talos clusters
  • GitOps Engines: Support for Flux and ArgoCD
  • Secret Management: Built-in SOPS integration for encrypted secrets

📖 Documentation • 📝 Read about the journey from .NET to Go

☸️ Platform Kubernetes Flux Talos Linux

Platform

A Flux GitOps-based Kubernetes cluster running on a Mac Mini and Raspberry Pis in my home. It demonstrates a dev-friendly approach to working with Kubernetes using Talos Linux as the operating system.

I use this cluster to learn and experiment with new technologies—striving to implement the latest CNCF projects to keep my skills sharp. I also run self-hosted services for entertainment, personal projects, and to own my own data.

Key Technologies: Cilium (CNI), Traefik (Ingress), cert-manager (TLS), SOPS (Secrets)

🔄 Reusable Workflows GitHub Actions

A collection of reusable GitHub Actions workflows that encapsulate common CI/CD patterns. Used across all DevantlerTech projects to ensure consistency and reduce duplication.

  • CI Workflows: Go testing/linting, .NET testing, documentation linting, GitOps validation
  • CD Workflows: Cluster bootstrap, GitOps deploy, GitHub Pages publish, application/library releases
  • Automation: Auto-merge for trusted bots, semantic-release, TODO scanning, Kyverno policy sync

⚡ Actions GitHub Actions

A collection of composite GitHub Actions that provide small, reusable components for CI/CD workflows.

  • Auto Merge: Approve and auto-merge PRs from trusted bots/users
  • Cleanup GHCR: Clean up old GitHub Container Registry packages
  • Flux GitOps Deploy: Push manifests to OCI and deploy using Flux
  • Setup KSail: Install KSail CLI via Homebrew
  • Install Cilium/Flux: Install Cilium and Flux in Kubernetes clusters
  • TODOs: Create GitHub issues from TODO comments in code

Inactive Projects

These projects are no longer actively maintained, but I still think they are interesting, and I would love to pick them up again if I find the time or opportunity to do so.


Completed Projects

Projects that have reached their end of life or I no longer actively maintain.

🚚 OCI Artifacts Kubernetes Open Container Initiative

OCI Artifacts

A spin-off from my Homelab project that simplifies GitOps deployments by distributing Kustomize and Flux HelmRelease components via OCI registries. This approach—inspired by shared libraries in traditional programming—allows deploying applications with a single line of code while maintaining the flexibility of regular Kustomize and Helm charts.

The OCI Artifacts use Flux Post Build Variables to inject values into components, exposing configurable settings that users can provide when deploying.

⬡ Data Product .NET

Data Product

My master thesis project: a data product inspired by the Data Mesh architectural pattern and Zhamak Dehghani’s book. Built in .NET using Source Generators to create data products from schema definitions and YAML configuration.

Users could define their data product in YAML and reference a schema to generate REST, GraphQL, streaming, observability, and more—all out of the box. The project was containerized for deployment to various orchestrators and follows CNCF best practices.

📄 Read the thesis

✍🏻 Pandoc Plus Markdown LaTeX

Pandoc Plus

A Docker image that packages Pandoc with LaTeX, PlantUML, and Lua filters to create LaTeX-styled scientific papers from Markdown. The image includes all necessary tools to produce high-quality papers with beautiful transformations of Markdown syntax to LaTeX best practices.

Being a Docker image makes it trivial to use in CI pipelines—enabling you to write scientific papers following software development best practices.

📄 Example output: My thesis

🤖 Star Wars Site .NET Umbraco Nomad

A Star Wars-themed site built during an Umbraco hiring process to showcase .NET and Umbraco skills. Built as a Blazor WebAssembly app fetching data from Umbraco Heartcore, deployed to a HashiCorp Nomad cluster for learning purposes.

The site is no longer running (the Heartcore instance was temporary), but the source code remains available!


School Projects

Projects completed during my Software Engineering studies at the University of Southern Denmark. These showcase my dedication to exploring new technologies and approaches to software engineering.

🌏 Exploration of State-of-the-Art Technology, Architectures and Tools to Create Future-Proof Data Spaces

⭐️ Graded 12/12 10th semester (MSc thesis)

Data Space as a Data Mesh

An exploration of whether a data space can be implemented as a data mesh, focusing on challenges and benefits for collaboration in the Danish energy sector. The study uses constructivism and the constructive research approach, employing grounded theory for fieldwork.

The research culminated in a prototype of a data mesh’s central component—a data product—demonstrating that the data mesh approach can be successfully applied to data spaces for better domain separation, discoverability, observability, and governance.

📄 Read the thesis

📊 Power Price Assistant

⭐️ Graded 12/12 9th semester

Power Price Assistant

A web app simulating a system that advises on electricity provider selection based on consumption patterns and user priorities.

🏗️ Simulated Assembly Line

⭐️ Graded 12/12 8th semester

A simulated assembly line with a self-constructed crane, rotating disk, and web camera. Programmed using our own Domain-Specific Language (DSL) that generated a client for execution. The client used MQTT to communicate with the embedded system.

🌊 EcoBeach

⭐️ Graded 7/12 7th semester

EcoBeach

A big data system that scraped satellite imagery from the Sentinel-2 satellite and processed them to analyze shoreline changes over time. Included an Android app for data visualization.

📄 Read the report

⬣ HexUML

⭐️ Graded 12/12 6th semester (BSc thesis)

HexUML

A generic transpiler framework for translating between text sources (e.g., Java to C#). The framework was used to generate AnyLogic models for a web application (EcosystemMapGenerator) I built for SDU during my work as a student programmer at the Maersk Mc-Kinney Moller Institute (February 2021 – November 2021).