Daniel Betz
About me
Software Engineer and Solution Architect with 10+ years of experience building cloud and desktop applications on .NET and Microsoft Azure. I’ve been working with computers for as long as I can remember, driven by curiosity about how things work and how to make them work better. I enjoy designing pragmatic, sustainable systems and helping teams grow through shared understanding and thoughtful technical decisions.
Experience
Solution Architect, generic.de software technologies AG
April 2022 – December 2025 • Karlsruhe, Germany
- Designing and implementing small-to-medium solution architectures (Desktop & Microsoft Azure)
- Performing internal and external architecture reviews
- Improving company-wide knowledge transfer
- Continuing work from previous Software Developer position
Software Developer, generic.de software technologies AG
July 2016 – March 2022 • Karlsruhe, Germany
- Designed and implemented HMI, desktop and web applications with .NET, WPF and Angular
- Automated software builds and deployment
- Worked with customers to analyze requirements and evaluate potential solutions
- Taught in internal generic.de Academy
- Supported sales in project acquisition
Software Developer, LOCOM Software GmbH
February 2014 – June 2016 • Karlsruhe, Germany
- Designed and implemented desktop applications with .NET, WPF and WinForms
- Improved and extended in-house application framework
- Worked with back office to improve company website
Education
Bachelor of Science in Computer Science, Hochschule Karlsruhe
September 2009 – February 2014
Certificate of Proficiency in English for Professional Purposes, Hochschule Karlsruhe
July 2011
Technical Skills
Software development
- Languages: C#, TypeScript, JavaScript
- Basic knowledge: C, C++, Go, Rust, PHP, Java
- Frameworks & tools: .NET, ASP.NET Core, Angular, React, WPF
- Methods: Clean Code, Clean Architecture, Test-Driven Development
- Version control: Git (Azure DevOps, GitHub, GitLab), Perforce
- Agile: Scrum, Kanban
- Tools: Visual Studio, Visual Studio Code, Rider, LINQPad
- Protocols: HTTP, gRPC, SignalR, NATS, MQTT
- Databases: PostgreSQL, TimescaleDB, Microsoft SQL Server, Sqlite
Cloud & DevOps
- Platforms: Microsoft Azure, Microsoft Entra ID
- Infrastructure as Code: Terraform
- CI/CD: Azure DevOps, GitLab CI, GitHub Actions, Woodpecker
- Containers: Docker, Podman
- Monitoring: Event Viewer, Journal, OpenTelemetry, Prometheus, Grafana, Application Insights
- Software Composition Analysis: Trivy, Syft, Grype, CycloneDX scanners
- Static scanning: Roslyn analyzers, SonarCloud
Software design & architecture
- Clean Architecture, Event-Driven Architecture, Monolithic Architecture, Microservices
- Requirements Engineering
- Documentation (arc42, C4, IcePanel)
- Broad understanding of technology
General IT
- Expert-level knowledge in Windows, Linux
- Experience with many collaboration tools
- Experience with automation (PowerShell, Bash, Python, C#)
Leadership
- Technical and technological project leadership
- Project reviews/audits
- Recognized by supervisors as a reliable source for peer performance evaluation and feedback
Professional Projects
These are projects I found particularly interesting. I worked on these while employed/on contract.
Configuration software for revolving door control
Role: Software engineer, full-stack
The goal of this project was to create a replacement for the legacy MS-DOS configuration software, which was incompatible with 64-bit Windows. The old software and its proprietary serial communication protocol was mostly undocumented and needed to be reverse-engineered from the original C++ code.
- .NET Framework
- WPF
- Excel files via EPPlus to allow for easily modifiable base data
- Serial port communication for configuration
- Serial port communication for firmware upgrades
HMI for industrial laser cutting machines
Role: Software engineer, full-stack
Here, the customer took too long to create an in-house HMI framework built on WPF. They decided to skip ahead to newer technologies for UI building, ie. web technologies like HTML, CSS, JavaScript. The project had two phases: an exploration phase and an implementation phase.
During the exploration phase, the general feasibility of creating a WPF–web hybrid was explored. This resulted in a seamless integration, including the HMI’s custom on-screen keyboard and gesture controls.
After the go-ahead was given, hybrid development began and is continuing.
- .NET Framework
- Plugins
- WPF
- CefSharp
- Angular
- SignalR
Design software for thermal insulation of balconies
Role: Software engineer, mostly frontend
The web application created as part of this project allows designing the layout of a balcony and its load-bearing connection to the building. A calculation module then determines which building blocks to put where to handle the calculated forces.
Later in the project, a “meta-application” was created to handle undertakings with multiple balconies and also other kinds of load-bearing connections.
- ASP.NET Core
- Angular
- Interactive vector graphics via SVG
- Micro-frontends
Next-gen modular HMI concept
Role: Solution Architect
The previous HMI project, while successful, pushed the boundaries of the single-process .NET architecture, with plugins developed by multiple business units. A new architecture was needed: Message-oriented, decoupled and fault-tolerant, with a user interface fully based on web technologies and micro-frontends.
In this project, a proposal was created and its feasibility analyzed. The proposal was accepted and development is now underway.
- Message-driven architecture
- Microservice-like modules
- NATS as messaging platform
- Protocol Buffers
- ASP.NET Core
- SignalR
- Micro-frontends
Inline measurement software
Role: Solution Architect
The client, unsatisfied with available measurement software, decided to create their own. The software is fault-tolerant and modular, supporting multiple kinds of measurement hardware and fieldbus communication, with further expansion already underway.
A fault-tolerant multi-process architecture was created, with sub-processes encapsulating hardware communication (via third-party DLLs).
- ASP.NET Core
- Blazor Server
- gRPC
- Shared Memory
- Fault-tolerance
- PostgreSQL with TimescaleDB
- P/Invoke
Private Projects
resizeit2
This Firefox extension allows users to quickly resize a browser window to one of four presets, using configurable keyboard shortcuts or a toolbar button. Available on Mozilla Add-ons.
Download Cleaner Lite
A Firefox extension that removes finished downloads from the download history. Successor to an older XUL extension that had more features. Available on Mozilla Add-ons.
ConsoleProgressBar & ProgressHierarchy
A relatively simple progress bar for .NET console applications that can go backwards and show status messages, backed by a library to report progress on a tree of operations. Available on NuGet.org.