Fleet management based on OpAMP. A Rust implementation of OpenTelemetry's OpAMP protocol with an API-first server and a native client that supervises many agents.
- Rust
- OpAMP
- Hexagonal
- Specs + ADRs
Markus Brigl · Model-driven and spec-driven development
I'm a software architect and fullstack developer in the field of model-driven and spec-driven development.
Product Owner at Würth IT Italy, Bolzano
INPUT
Model and spec
CORE
Generator · agent
OUTPUT
Running software
23 yrs
building software, since 2003
8 yrs
as CTO, 2016 to 2024
CAFM · GIS
enterprise domains
01 / Vision
Software should be described by what it means, not by the technology it happens to run on.
Since 2003 I have worked on one idea: describe the system first, then let tools produce the technology. From UML-based ERP frameworks and an Eclipse code generator to a low-code platform on hexagonal architecture, the stack changed many times. Today, with AI in the loop, the written specification takes the same role: specs and architecture decisions define the intent, and coding agents build against them. What stays is the description of intent.
STAYS
Model and spec
The description of intent
2003
ERP/CRM platform
Model-oriented Java · UML
2005
Eclipse code generator
UML2 designer · enterprise Java
2016
Low-code CAFM platform
MDA · hexagonal · Java, C++, Rust
2026
Spec-driven with agents
Specs · ADRs · coding agents
Describe what a system means, independent of any platform. Technologies change, the model stays.
Specifications and architecture decision records define intent before code. People decide, agents implement, and the spec is the contract between them.
Hexagonal architecture keeps business logic free of frameworks, so the stack can evolve without disrupting it.
Generators, templates and coding agents turn models and specs into running code, so effort goes into decisions instead of boilerplate.
02 / Projects
Selected repositories from my account and from the HiveVM organization.
Fleet management based on OpAMP. A Rust implementation of OpenTelemetry's OpAMP protocol with an API-first server and a native client that supervises many agents.
HiveVM CC, a parser generator forked from JavaCC. Tree building is defined inside the grammar; a Gradle plugin generates parsers in Java, C++ or Rust.
Node-based visual workflow engine and UI coordinator. A browser node editor on WebGL2 with a Rust engine compiled to WebAssembly, built for tens of thousands of nodes.
View and edit Git repositories. A Git client that draws history as a lane graph, as desktop app (Tauri), terminal app or read-only remote server.
SQLite loadable extension for GeoPackage file access. A fork of luciad/libgpkg, revived with a specification, conformance notes and ADRs.
Template for agentic development in a Dev Container. A written specification and architecture decision records guide the work, and one AGENTS.md rules file is read by all coding agents.
03 / Career
Every role since 2003, from a UML-based ERP platform to product ownership with AI in development.
2026 – today
NetEye: monitoring, observability and security
Product Owner of NetEye, with around 100 people across development and sales. Responsible for backlog, roadmap, stakeholders and prioritization up to the product vision. Brought AI into development at scale and fostered communication between the teams.
2025 – 2026
ERP for crafts, fruit and wine growing
Senior engineer in a small team. Modernized the development process from Subversion to Git with automatic builds, built a container-based integration test environment on real databases and introduced code generation for business applications. Brought in a graphical scheduler and declarative modeling, and developed a tunnel with automatic updates for secure remote access to customer devices such as POS systems and printers via the cloud.
2007 – 2024
FEATURED · 2016 – 2024
Enterprise low-code application platform for CAFM
A model-driven low-code platform for Computer-Aided Facility Management, used by large enterprise customers with several thousand employees. Every customer solution is described purely by a model of data, business logic, processes and UI, so it stays independent of technology and platform, and updates reach customers without software rollouts. Hexagonal architecture abstracts every dependency. Led a team of five to six developers in Bolzano and delivered full-stack, with clients for web browsers and native mobile devices.
2016
Territorium Online integrated into TOL GmbH
2008 – 2016
WebGIS 3.0 and mobile GIS
The third generation of the WebGIS platform, at around 30 customers, mostly public administrations, with several thousand users, built with a team of three to four. A layered architecture on the WMS and WFS standards, a UI fully in JavaScript and communication via REST. Native mobile apps for iOS and Android capture data in the field, store it offline and synchronize it, rendering maps on the device through a port of the MapServer C library. A model-driven web application brought GIS into facility management.
2007
Web GIS for public administrations
A web GIS application for public administrations in northern Italy and southern Germany, in a team of two. Designed an architecture with a clear separation of UI and business logic, and introduced version control and a ticket system.
2005 – 2006
UML2 designer and code generator for Eclipse
Co-founded with two colleagues to make software modelable end to end. A graphical UML2 designer plugin for the Eclipse IDE with automated code generation for enterprise Java applications and business process automation.
2003 – 2004
Model-oriented Java platform for ERP/CRM
A model-oriented Java platform for building ERP/CRM systems, which became the basis of the ERP system for the Würth Group. Grew from platform developer for the application layer to Requirements Engineer of the entire platform, in a team of about 15.