About:

Software developer and environmentalist passionate about open source and tech advocacy.

Website:

Specializations:

Interests:

Application security Different data models Open source Non-US-big-tech usage and funding

Outgoing Links:

Herman's blog
Subscribe to RSS:
Easily manage OData URLs through a proxy using ASP.NET's ForwardedHeadersMiddleware for accessible responses without complex configurations.
The post discusses how to enhance the security and structure of domain models in Entity Framework Core (EF Core) by using EF Core Power Tools (EFPT). It emphasizes the importance of making properties read-only and collections inac...
This blog post provides a detailed guide on how to use Azure DevOps APIs to create a scheduled task for backing up repositories in an Azure organization. It covers the necessary steps including user authentication, querying APIs f...
LikeC4 is a powerful text-to-diagram tool for software architecture that simplifies communication through multiple views and easy specifications.
This blog post discusses the importance of a Software Bill of Materials (SBOM) for managing libraries in software projects, particularly in response to vulnerabilities and license changes. It outlines a process for generating SBOM...
A guide on manually setting up a .NET development environment on Windows without admin access or script permissions, focusing on SDK installation and configuration.
The author discusses their experience with syncing a music collection across devices using Nextcloud, Picard, and LRCGET. After encountering issues with syncing changes from Android to Nextcloud, they explore alternatives like Amp...
The post discusses the differences between Azure Pipelines runtime and compile time expressions, specifically focusing on how to set a stage variable from another stage's output. It highlights the correct syntax for dependencies a...
The author shares their experience learning F# through the Falco framework while implementing localization for a web project. They discuss the challenges faced due to limited documentation and the differences in localization betwe...
JetBrains released a significant update for Rider 2025.3, which introduced new features but also caused issues with plugin updates and NuGet authentication. A bugfix (2025.3.0.1) was released shortly after, but it was not highligh...
The author shares their experience of setting up Hetzner Storage Share to manage their music collection, emphasizing the benefits of data privacy and control through Nextcloud. They detail their workflow for fixing music metadata ...
Xeovo VPN offers an impressively simple sign-up process and payment options, making it easy to bypass geoblocks for online purchases.
The text discusses the process of setting up a non-admin dotnet development environment in Windows using dotnet-install scripts, allowing for the installation of dotnet SDKs without requiring administrator permissions.
The author discusses their experience with Azure API Management, specifically how it mangled up a simple OpenApi specification and the issues it caused. They express frustration with the tool and invite thoughts and comments from ...
The text is a report on the ongoing battles in the tech industry, with victories and territories lost on both sides. It discusses specific projects and decisions made, as well as the impact of certain technologies and platforms.
The text discusses how to achieve effortless integration test isolation with .NET WebAPI integration tests, including initializing the database only once, sharing a database context between the test and the app, and test isolation...
The text explains how to set up automatic package updates on Azure Pipelines using standard update tools from your package manager. It provides templates for updating npm and nuget packages and creating pull requests. It also disc...
The text explains how to create a pull request from inside a pipeline using az repos pr create. It provides a template for creating a pull request from a source branch to a target branch, with various optional parameters. It also ...
The text discusses the use of Roslyn analyzers and .editorconfig to enforce code style and detect security issues in .NET projects. It provides detailed information on how to enable and configure Roslynator, SonarAnalyzer, and def...
The text discusses how to get free security scans with Azure Pipelines by combining package audits with Semgrep. It provides templates for package audits, npm audit, and static scanning with Semgrep, as well as instructions for vi...
The text discusses the use of 'npm audit' for dotnet, providing a workaround to achieve the same vulnerability detection workflow in .NET as in the NPM ecosystem.
The text discusses the use of EF Power Tools CLI in conjunction with MSBuild.Sdk.SqlProj for a smooth workflow in Database First development when targeting SQL databases. The author shares their experience and the benefits of usin...
The author talks about their experience listening to three albums of Haken and how it had a profound impact on their day, leading to a sense of empowerment and inspiration. They also mention the significance of Bandcamp Friday and...
The author discusses their experience running desktop apps in the browser, particularly Teams, Outlook, and Toggl Track, using Firefox. They highlight the benefits and drawbacks of this approach, including better control, navigati...