Freelance Software Engineer & Architect
Raphael Strotz
I build and improve backend systems that have to work in the real world — from architecture through to production.
C#/.NET · Distributed systems · Azure · Kubernetes · CI/CD
Available for freelance projects from November 2026
What I do
I’m a senior software engineer and architect with more than 15 years in the Microsoft and .NET ecosystem. My core is C#/.NET backend development — services, APIs, background workers, messaging, and the persistence and infrastructure around them.
I’m most useful on systems that are more than CRUD: multiple services, asynchronous processing, multi-tenancy, and the operational reality of running them in production. Architecture, for me, is part of engineering — not a separate activity done at a distance.
Selected experience
-
2023 – Present
Senior Software Engineer & Architect · Swiss GRC
Design and evolution of multi-tenant SaaS platforms with strong tenant isolation, automated provisioning, messaging and Kubernetes-based deployments.
Led the engineering team as Head Software Engineering, then deliberately moved back toward hands-on architecture and implementation.
-
2021 – 2023
Software Engineer · Franke Coffee Systems
Worked on a cloud-native Azure/AKS platform connecting more than 7,000 coffee machines — .NET backend services, distributed systems and IoT.
Infrastructure as Code, CI/CD and deployment automation, plus Vue.js microfrontends.
-
2018 – 2021
Software Engineer · Network 41
Modernized business-critical ASP.NET applications and integrations, migrating incrementally toward .NET Core rather than rewriting from scratch.
-
2013 – 2018
Software Engineer · JMC Software
Built .NET desktop and business applications, web systems, and ERP/third-party integrations.
-
2008 – 2012
Apprenticeship & Software Development · Data Unit
Started my professional C#/.NET career during a Swiss IT apprenticeship (application development), working on SAP Business One customizations and reporting.
How I work
-
Understand before changing
I want to know why a system looks the way it does before proposing to change it. The smallest useful improvement usually beats a rewrite.
-
Keep architecture proportional
No distributed systems, microservices or Kubernetes unless they solve a real problem. Complexity should be earned.
-
Design for failure
Networks fail, messages arrive twice, processes crash halfway through. The architecture should assume it, not hope otherwise.
-
Make systems observable
A system that works but can’t explain why it failed isn’t well operated. Logs and traces should tell the story.
-
Development and operations belong together
Application code, CI/CD and infrastructure are one concern. Developers should understand how their software is built, deployed and run.
Technologies
A curated slice, not the whole toolbox.
- Backend
- Data & messaging
- Cloud & platform
- CI/CD & observability
- Frontend (secondary)
Away from the keyboard
When I’m not tracing a problem through a distributed system, you’ll usually find me on a mountain bike or training karate (2nd Dan / Nidan).
Get in touch
Available for freelance engineering and architecture work from November 2026. The fastest way to reach me is email.