- MSc ETH in Mechanical Engineering in 2014
- 29. June 1984
- Fluent in German and English
- With Swiss & British citizenship
- Speaker at Basel One 2022 about software quality
I have a knack for enabling people and boosting teams. Product quality will improve and your team members will shine should you add me to one (or many) of your projects. Thanks to my love for quality, my passion for design and my keen ability to detect and solve issues, I consider myself a productive software engineer as well as a talented emerging architect.
As such, I thoroughly enjoy deep dives into hard problems, to then re-surface with a solution that just works. I preferably do that around .Net ecosystems, but have proven to be capable on other stacks as well.
In my current position as Subject Matter Expert Technical Quality I promote engineering excellence by organising internal meetup events about technology, software design and engineering practices. I enjoy establishing similar formats when working for client projects.
Contact: github, [TEL & EMAIL], linkedin
Most projects I've worked for revolved around the .Net ecosystem, which is where I am also most comfortable. However, I enjoy challenges as well as stepping out of my comfort zone every so often. As such, I've enjoyed working for a broad variety of target environments and architectures:
- Plugin development, for
- WPF desktop engineering apps
- medical instruments running customised Linux versions
- including the use of ONNX ML models
- Containerised event based architectures
- RabbitMQ & Docker
- Test automation frameworks
- python & squish
- Gherkin BDD
- Distributed systems in the (Azure) cloud
- Event Hub, Service Bus, Stream Analytics, Blob Storage & Cosmos DB
- Azure Web Apps (Angular) and Functions
- RESTful APIs
- Electron based desktop apps
- Vue.js & ASP.Net (Core)
- Service based architectures for desktop apps
- WPF, ZeroC ICE & MS SQL (2012)
- Versioning & deployment
- preferably git repos
- nuget package management
- Azure pipelines & github actions
- Quality & architecture monitoring
- Sonar Qube
- ndepend
- Benchmark DotNet
- Roslyn & analysers
3.2023 - 2.2024 @ ERNI AG, Manila, Philippines & Singapore
On architecture: High level cloud architectures (C4) & heading an architecture book club.
Due to my track record of improving quality in projects, I was sent to our subsidiary in Manila as a cultural bridge and ambassador of quality. We chose to set a focus on improving processes revolving around sales activities.
Additionally, I lead the (technical) design phase of multiple solutions aimed at the local market as well as supporting the sales team during client visits in the Philippines and Singapore.
Technology: Azure Cloud, .Net, Maui & Xamarin, BLE
10.2021 - 2.2023 @ ERNI AG for a client in Rotkreuz, Switzerland
Architecture: Microkernel architecture embedded in an event-driven system.
As a tech lead and architect I was an integral part in implementing cutting edge diagnostic instrument workflows. Technical lead of a full stack team developing an electron maintenance app. Complete re-write of a generalised ML algorithm instrument plugin using ONNX model. Also, I designed and lead the sw-development of a new plugin for the newest diagnostic instrument.
Technology: RabbitMQ, Docker, Asp.Net (core), electron, Vue.js, ONNX
9.2020 - 9.2021 @ ERNI AG for a client in Rotkreuz, Switzerland
Architecture: Event based architecture with a broker topology.
Supporting architect of an expert system cloud solution used to analyse and detect anomalies in the runtime data of various diagnostic instruments.
Lead a small team of developers implement new features. Analysed and fixed various performance bottlenecks caused by implementation mishaps through to non-optimal design.
Technology: Azure Cloud, .Net, Asp.Net (core), Specflow, MSTest
10.2019 - 8.2020 @ ERNI AG for a client in Rotkreuz, Switzerland
Architecture: Embedded in an event driven (mediator) architecture, implemented based around a command pattern.
Developer and development architect on the service software component for a high precision med-tech instrument. Improvement of core components and features (cancellation), aiding the team in design decisions and leading team members technically. Drive and support the transition from WPF to WebApp.
Technology: RabbitMQ, Docker, .Net, WPF, Specflow, MSTest
10.2018 - 4.2019 @ ERNI AG part time for a client in Thun, Switzerland
Architecture: Service based translation layer.
I acted as co-designer and product owner for a project done in collaboration with a shoring team in in Bratislava. The service's primary task is to serve as a stateless translation layer (wrapper) for a COM API that is exposed as an XML based protocol.
Technology: XML protocol over TCP/IP, COM API, .NET (core & Framework)
3.2018 - 3.2019 @ ERNI AG for a client in Thun, Switzerland
Architecture: Layered test architecture.
Support the team transitioning form auto-generated, but brittle and slow end-to-end tests, to more stable BDD tests that reflected requirements.
I improved robustness of a partially built internal framework by eliminating crashes and false positives, as well as improving performance form 5h runtime down to 2h.
Technology: Squish, BDD (Gherkin), python 3, Jenkins CI, SVN
1.2016 - 2.2018 @ Sensirion AG, Stäfa, Switzerland
Architecture: Event based architecture using the mediator topology, later evolving into microservices.
The core task was to build a control and monitoring software (desktop app) for a multi slot robotic sensor calibration system. Two unsuccessful attempts had been made previously. The following shortlist of my tactics where instrumental for success:
- Strict application of SOLID principles
- Temporal and logical decoupling of processors
- Simplification of design, leading to:
- New internally widely adopted command pattern implementation
- Independently testable components
Technology: .Net Framework, WPF, Beckhoff PLC, Sockets
1.2015 - 6.2015 @ Rapyuta Robotics AG, Zürich, Switzerland
I began work there as one of the first employees. I implemented the calibration algorithm and test set-up used to parametrise transformation matrices used to compensate raw sensor data. Other tasks included: Development of a test bed for electric propulsion motors, evaluation and acquisition of electric motors and evaluation of suppliers for carbon fibre based components.
Technology: python, C++, ROS
3.2013 - 12.2014 @ Sensirion AG, Stäfa, Switzerland
Architecture: Layered architecture with RPC using ZeroC's ICE.
My first job as a sw engineer. I designed a transparently parralelisable wrapper implementation of the RPC API targeting the firmware implementation of a calibration unit.
Technology: .Net Framework, ZeroC ICE
8.2012 - 2.2013 Internship @ Sensirion AG, Stäfa, Switzerland
8.2000 - 8.2004 Apprenticeship @ LCA Automation AG, Affoltern a.A., Switzerland
Since May 2019 for ERNI AG
During my time at ERNI AG I was involved in numerous consulting mandates. These typically involve my capability of quickly analysing a situation on a high level, understanding the status quo, identifying areas of interest (typically issues) and then coming up with viable ideas and solutions for the next steps. This has worked well irrespective of the technologies involved.
- Client meetings in Metro-Manila, Philippines and Singapore.
- Consulting for regular cloud applications
- Including performance reviews
- Consulting for AI/ML solutions embedded in medical and manufacturing environments
- Design Thinking workshop for a multi-domain manufacturer
- Cultural trainings bridging CH with PH
- Consulting for regular cloud applications
- Architecting a UI test framework using Squish by Qt for a cpp solution, Rotkreuz.
- The test framework was to be implemented using python
- Review and design extension of a solution based on a broker architecture, Schlieren.
- Workflow management system using Camunda
- The broker orchestrates interaction between Camunda workflows and python processor scripts
- Code review of
- service based system with focus on performance, Zürich.
- monolithic Xamarin application with focus on quality, Zürich.
- Knowledge transfer process set-up for a near shoring team, Bratislava, Slovakia.
- XML code-gen solution review and PoC, Zollikofen.
I use my passion for software engineering to connect components and technologies in a robust and maintainable fashion. This is supported by my love of connecting people and teams and their respective expertise.
I don't yet consider myself an architect outright, as the interplay between SW design (class level) and architecture (APIs, modules, technology) is still what fascinates me most. A bad design or implementation can (and will) thwart the most carefully designed architecture.
This love for the interplay of high and low level worlds is one of the factors that makes me a valuable team member, lead developer or co-architect. A selection of practices I enjoy establishing for effective team work and functioning architecture:
- Good PR discipline and enjoyable PR experience for all developers
- accompanied with a fit for purpose branching and deployment model
- Engaging tech-sessions or freaky friday sessions
- ideally where every team member can contribute
- Minimal need for command and control (SonarQube, ndepend)
- shaping awareness is far more sustainable and interesting for all involved
- Book club sessions based on Fundamentals of Software Architecture
- an excellent book for an entry in to architecture
In my view, there is hardly anything more fulfilling than creating a coherent, type safe and useful library that provides a public surface that is almost trivial to understand and integrate into larger systems. This is when I get into "The Flow" and can loose track of time entirely.
This passion together with my sharp eye for details and for the bigger picture is what makes me a productive engineer. Just as above, there are factors I believe are conductive to bringing this into software teams:
- Being a good team communicator and promoting the joy of producing high quality code.
- SOLID as a set of principles that can boost quality
- Composition over inheritance combined with aspects of functional programming is equally beneficial
- Freedom of development environment (within good measure).
- Open tools and tech: VSCode, Draw.io,
.editorconfig
, etc. - Developers know best how they are most productive
- Open tools and tech: VSCode, Draw.io,
- The benefit of deliberate use of design patterns.
- They are at least a means of communicating between developers
- The awareness of other programming paradigms and languages, for instance.
- The benefits of functional programming principles
- Rust's focus on safety & the novel concept of compile time ownership
- Awareness of the continued importance of algorithms and data structures.
- Even with modern hardware and cloud systems, a sound analysis of time and space complexity is crucial
- Where the targeted use of benchmarking can "prove" (and disprove!) practical benefits
- Unit testing as a means to produce better quality code.
- Refactoring and feature extension can be done faster and more reliable with a good set of unit tests
I just love exploring new ideas and technology, which leads me to regularly embark on technological adventures. Out of these many projects, I'd like to mention the project that is most mature: Quantities.
It is a .Net library to efficiently and safely handle physical quantities. A small code sample in C# is possibly most illustrative:
Time duration = Time.Of(2, Metric<Hour>()); // 2 h
Length kilometres = Length.Of(6, Si<Kilo, Metre>()); // 6 km
Length miles = kilometres.To(Imperial<Mile>()); // 3.7282 mi
Velocity slow = kilometres / duration; // 3 km/h
// (6km == 3.7282 mi)? --> true
Console.WriteLine($"({kilometres} == {miles})? -> {kilometres == miles}");
Even though I thoroughly enjoy software engineering, it is not the complete story of who I am, as I am also...
- an avid sailor
- a dancer in training
- a keen traveller and hiker
- travelling this wonderful planet we live on
- as well as getting to know the many cultures that live on it
- a tinkerer with single board computers
- keeping nanosecond time
- blocking adds on my home network
- providing VPN services
- an aspiring baker of sourdough bread