diff --git a/model.json b/model.json index 6fc1ee1..da5ad33 100644 --- a/model.json +++ b/model.json @@ -1,8 +1,14 @@ { - "commit": "db441743bf7fb952e607f5469ea126240b63a9ed", + "commit": "d26bc5732c5776f433f300b4df197a1f561decda", "root": "Robert Blust", "rootId": "identity", "types": [ + { + "type": "achievement-kind", + "folder": "achievement-kinds", + "owner": null, + "singular": false + }, { "type": "experience", "folder": "experiences", @@ -95,6 +101,139 @@ } ], "entities": [ + { + "id": "achievement-kinds/architecture", + "type": "achievement-kind", + "name": "Architecture", + "tagline": "What was designed: the structure a thing took and why.", + "fields": { + "source": "Local", + "rank": "30" + }, + "sections": [ + { + "heading": "What it means", + "text": "The shape of a system and its parts: a service cut, an interface or API, a data model or\nschema, a language or metamodel, an integration path, the platform a thing targets, and the\ntrade-off behind any of them. A decision that fixes how something is built, before it is built,\nbelongs here.\n\nIt is not the building, which is `Engineering`, and not the organization's shape, which is\n`Leadership`. Where a bullet names both the design and its implementation, it sits here when the\ndesign is what the claim rests on.", + "tables": [] + } + ], + "owner": null, + "path": "model/achievement-kinds/architecture.md" + }, + { + "id": "achievement-kinds/context", + "type": "achievement-kind", + "name": "Context", + "tagline": "What the entry is, for whom, and the part held in it.", + "fields": { + "source": "Local", + "rank": "10" + }, + "sections": [ + { + "heading": "What it means", + "text": "The bullet that says what this period was: the product, the mandate, the event, the client or\nemployer it was for, where it came from and what part the person played in it. A one-off entry\nnames itself here — the talk given, the event organized, the article published — because what it\nwas is the first thing a reader needs.\n\nIt is not what the work achieved. A scale figure, an award or a spin-off belongs to `Results`,\nand a decision taken inside the period belongs to `Leadership` or `Architecture`. A period that\nhad no context worth stating skips the kind rather than restating its own title.", + "tables": [] + } + ], + "owner": null, + "path": "model/achievement-kinds/context.md" + }, + { + "id": "achievement-kinds/engineering", + "type": "achievement-kind", + "name": "Engineering", + "tagline": "What was built, shipped and run.", + "fields": { + "source": "Local", + "rank": "40" + }, + "sections": [ + { + "heading": "What it means", + "text": "The work itself: code written, a platform stood up, a pipeline that releases it, the checks\nthat gate it, the data moved, the environment operated, the incidents answered. An automated\nmechanism belongs here even when it enforces a rule, because the mechanism is the thing that was\nbuilt.\n\nIt is not the decision that shaped the work, which is `Architecture`, and not the practice people\nfollow around it, which is `Ways of working`.", + "tables": [] + } + ], + "owner": null, + "path": "model/achievement-kinds/engineering.md" + }, + { + "id": "achievement-kinds/leadership", + "type": "achievement-kind", + "name": "Leadership", + "tagline": "What was decided or owned for other people.", + "fields": { + "source": "Local", + "rank": "20" + }, + "sections": [ + { + "heading": "What it means", + "text": "Strategy, governance and the calls that bound other people: what the organization would build\nand would not, how teams and roles were cut, who decided what and through which forum, the\nbudget held, the standards and compliance a company was held to, and the client work of advising,\nbidding and negotiating.\n\nIt is not the design of a system, which is `Architecture`, and not a rule about how work is done,\nwhich is `Ways of working`. Growing an individual — coaching, mentoring, teaching — is\n`Leadership` only where the claim is about developing people; a session explaining a thing to an\naudience is `Sharing`.", + "tables": [] + } + ], + "owner": null, + "path": "model/achievement-kinds/leadership.md" + }, + { + "id": "achievement-kinds/results", + "type": "achievement-kind", + "name": "Results", + "tagline": "What came of the work.", + "fields": { + "source": "Local", + "rank": "70" + }, + "sections": [ + { + "heading": "What it means", + "text": "Adoption and scale, revenue and cost outcomes, awards and recognition, the verdict of a bid,\nwhat the work became afterward, what it settled, and what it failed to reach. A lesson the period\nproduced belongs here, and so does a plainly stated limit: what was not finished, and why.\n\nIt is not the work that produced the outcome, and it is not a figure that describes the thing\nrather than its effect. Where a bullet carries both the building and its result, it sits under\nthe kind of the work when the claim is the work, and here when the claim is the outcome.", + "tables": [] + } + ], + "owner": null, + "path": "model/achievement-kinds/results.md" + }, + { + "id": "achievement-kinds/sharing", + "type": "achievement-kind", + "name": "Sharing", + "tagline": "What was said, written or taught to other people.", + "fields": { + "source": "Local", + "rank": "60" + }, + "sections": [ + { + "heading": "What it means", + "text": "Talks and their content, articles and documentation written for a reader who was not there,\ncourses and workshops run, events organized for an audience, and communities built or led. The\nbullet that says what a talk argued, or what a document explains, belongs here.\n\nIt is not the work the talk describes, which sits under its own kind, and not the decision to\npublish, which is `Leadership`. A document written only for a machine — an agent file, a\nprompt — is `Ways of working`.", + "tables": [] + } + ], + "owner": null, + "path": "model/achievement-kinds/sharing.md" + }, + { + "id": "achievement-kinds/ways-of-working", + "type": "achievement-kind", + "name": "Ways of working", + "tagline": "The method the work ran under.", + "fields": { + "source": "Local", + "rank": "50" + }, + "sections": [ + { + "heading": "What it means", + "text": "How the work was done rather than what was produced: the process followed, the specifications\nand briefs written before a build, the reviews and gates a change passed, the seats or roles that\ndid the work, the conventions everyone wrote to, and the rules held to on purpose.\n\nIt is not a rule enforced by a machine, which is `Engineering`, and not a decision about what the\norganization does, which is `Leadership`. A method taught to other people is `Sharing` when the\nclaim is the teaching and `Ways of working` when the claim is the method.", + "tables": [] + } + ], + "owner": null, + "path": "model/achievement-kinds/ways-of-working.md" + }, { "id": "experience-kinds/community", "type": "experience-kind", @@ -915,12 +1054,12 @@ [ "Agentic AI development", "Expert", - "Built LIKE MAGIC's internal AI marketplace on Claude, giving teams governed access to assistants and agents grounded in the Mental Model (2022–2026). Built CompanyGraph and GuestGraph agent-first under written conventions that encode the failure modes: an unresolvable reference is an error rather than a warning, and every validation pass names what it did not check (2026)." + "Built LIKE MAGIC's internal AI marketplace on Claude, giving teams governed access to assistants and agents grounded in the Mental Model (2022–2026). Defined the agents that ran a job search, one rating each posting against the experience and colleagues' feedback, one writing the application on a go and one checking the process and the correspondence (2026). Built CompanyGraph, GuestGraph and blust.ch through the agent seats the model defines, each under its own rulebook, and wrote CompanyGraph's agent conventions to encode the failure modes: an unresolvable reference is an error rather than a warning, and every validation pass names what it did not check (2026)." ], [ "Agile delivery", "Competent", - "Served as Scrum Master and technical lead on central UBS Wealth Management & Swiss Bank initiatives (2009–2015). Certified SAFe 4 Practitioner (2016)." + "Ran every 3AP project in Scrum, agile delivery being what the company's name stood for: As Agile As Possible (2015–2022). Certified SAFe 4 Practitioner (2016)." ], [ "AI governance", @@ -930,7 +1069,7 @@ [ "AI strategy", "Proficient", - "Authored and executed LIKE MAGIC's company-wide AI strategy, from the internal rollout of assistants across planning, delivery and operations to shipped customer-facing AI, with d3x, ailean and onsai integrated into the staff solution (2022–2026)." + "Authored and executed LIKE MAGIC's company-wide AI strategy, from the internal rollout of assistants across planning, delivery and operations to customer-facing AI delivered by opening the platform's API to d3x, ailean and onsai rather than running language models in it (2022–2026)." ], [ "AI tool integration (MCP)", @@ -940,52 +1079,52 @@ [ "API design", "Expert", - "Established API and data management for UBS Wealth Management & Swiss Bank with generated XML-Schema and WSDL service contracts (2009–2015). Set 3AP's reference architecture so the service cut decided what each service exposed (2015–2022). Gave Stay KooooK its API surface from the first commit, REST specified in OpenAPI, generated from the code and secured by OAuth 2.0 (2020–2022). Led LIKE MAGIC's API-first strategy to a partner API documented in the open, REST on OpenAPI 3.1 with webhook subscriptions and OAuth 2.0 scopes over property, reservation, guest, messaging, door access and task resources (2022–2026)." + "Defined UBS Wealth Management & Swiss Bank's interfaces and service contracts platform-independently in a central API and interface-portfolio repository, generating the XML-Schema and WSDL from them (2009–2015). Fixed how every service in 3AP's reference architecture exposed itself, REST specified contract-first in OpenAPI with OAuth 2.0 at the boundary (2015–2022). Designed Lost-Tag's service interface so finder and owner reached each other without either one's contact details reaching the other (2016–2021). Gave Stay KooooK its API surface from the first commit, REST specified contract-first in OpenAPI and secured by OAuth 2.0 (2020–2022). Led LIKE MAGIC's API-first strategy to a partner API documented in the open, REST on OpenAPI 3.1 with webhook subscriptions and OAuth 2.0 scopes over property, reservation, guest, messaging, door access and task resources (2022–2026). Designed and implemented GuestGraph's engine and connector APIs contract-first in OpenAPI, with a merge's explanation, its undoing and the review of uncertain matches as resources of their own (2026)." ], [ "Business architecture", "Expert", - "Drove business architecture and capability modeling on EMF/Ecore at UBS Wealth Management & Swiss Bank (2009–2015). Mapped LIKE MAGIC's 12 business domains as concepts with the capabilities under each, and cut the platform, the teams and the product strategy along that map (2022–2026)." + "Modeled UBS Wealth Management & Swiss Bank's business capabilities, concepts, processes and actors as one enterprise model on EMF/Ecore, which architects used to steer new projects toward decisions that fit the enterprise model (2009–2015). Presented that enterprise model to the Eclipse Modeling Platform Working Group, its business capabilities, concepts, processes and actors each a metamodel of one shared model (2010). Mapped LIKE MAGIC's 12 business domains as concepts with the capabilities under each, and cut the platform and the product strategy along that map (2022–2026)." ], [ "Business process modeling (BPMN, DMN)", "Proficient", - "Modeled the guest journey from booking to check-out in Camunda BPMN for Stay KooooK (2020–2022). Published the model as the subject of an article on monitoring a process by the message it is still waiting for (2021). Carried the model into LIKE MAGIC, where it ran the journey until the orchestration was replaced (2022–2023)." + "Modeled the guest journey from booking to check-out in Camunda BPMN for Stay KooooK (2020–2022). Published the model as the subject of an article on monitoring a process by the message it is still waiting for (2021). Carried the model into LIKE MAGIC and extended it there, running the journey until the orchestration was replaced (2022–2023)." ], [ "Change management", - "Proficient", + "Competent", "Replaced UBS Wealth Management & Business Banking's proprietary engineering process with a market-standard one as owner of its Analysis & Design discipline, coaching project teams into it (2004–2009). Drove LIKE MAGIC's productive rollout of AI assistants across planning, delivery and operations (2022–2026)." ], [ "CI/CD", - "Proficient", - "Put Jenkins and Sonar in the SDLC toolchain UBS Wealth Management & Swiss Bank released inside (2009–2015). Wrote the delivery pipeline into 3AP's reference architecture so a project inherited it rather than arranging its own, Jenkins at Swisscard, Flawa iQ and Lost-Tag, CircleCI at Conperi and Ursina (2015–2022). Released Lost-Tag's iOS app to the App Store from a scripted pipeline (2016–2021). Made the build the gate on 3AP's platform, every branch analyzed on SonarCloud with coverage attached and a green mainline deploying itself to the cluster (2019–2021). Set LIKE MAGIC's standards on GitHub Actions, with unit and integration tests on every run (2022–2026)." + "Expert", + "Put Jenkins and Sonar in the SDLC toolchain UBS Wealth Management & Swiss Bank released inside, each project's build and continuous integration generated from its design and the reference architecture (2009–2015). Wrote the delivery pipeline into 3AP's reference architecture so a project inherited it rather than arranging its own, moving it from Jenkins at Flawa iQ and Lost-Tag through CircleCI at Conperi and Ursina to GitHub Actions (2015–2022). Released Lost-Tag's iOS app to the App Store from a scripted pipeline (2016–2021). Made the build the gate on 3AP's platform, every branch analyzed on SonarCloud with coverage attached and a green mainline deploying itself to the cluster (2019–2021). Set LIKE MAGIC's standards on GitHub Actions, with unit and integration tests on every run (2022–2026). Required one shared conventions check beside each repository's own suite on every default branch in the family (2026). Added a pin test to the MCP server's deployment once a stale lockfile had built green on an older release than its pin named (2026)." ], [ "Cloud architecture", "Expert", - "Targeted 3AP's reference architecture at Kubernetes and no cloud in particular, so a client's platform was a deployment decision, Google Cloud at Aroov and Stay KooooK and AXA's own on-premise OpenShift (2015–2022). Ran 3AP's notification services on Swisscom's Cloud Foundry and Google Kubernetes Engine at the same time, one binding a broker as a managed service and the other running it as a container (2019). Owned LIKE MAGIC's production platform on Google Cloud (2022–2026). Designed GuestGraph for managed platform services without binding it to a provider (2026)." + "Targeted 3AP's reference architecture at Kubernetes and no cloud in particular, so a client's platform was a deployment decision, Google Cloud at Aroov and Stay KooooK and AXA's own on-premise OpenShift (2015–2022). Designed Flawa iQ's deployment on Swisscom's Cloud Foundry, services pushed with a manifest and the broker and database bound as managed services (2018–2019). Ran 3AP's notification services on Swisscom's Cloud Foundry and Google Kubernetes Engine at the same time, one binding a broker as a managed service and the other running it as a container (2019). Owned LIKE MAGIC's production platform on Google Cloud (2022–2026)." ], [ "Community building", "Expert", - "Built internal communities of practice at UBS and led the division's Java Chief Developer committee for two years (2004–2009). Co-led that committee for a further five years (2009–2015). Represented UBS in the Eclipse Modeling Platform Working Group (2010–2011). Co-organized the three Eclipse events UBS hosted in Zürich, MDD Day 2010 and Finance Day 2012 and 2014 (2010–2014). Served on the board of the Swiss Eclipse User Group within JUG Switzerland (2011–2014)." + "Built internal communities of practice at UBS and led the division's Java Chief Developer committee for two years (2004–2009). Co-led that committee for a further five years, the forum in which the division's lead engineers set common practice (2009–2015). Co-organized the three Eclipse events UBS hosted in Zürich, MDD Day 2010 and Finance Day 2012 and 2014 (2010–2014). Served on the board of the Swiss Eclipse User Group within JUG Switzerland (2011–2014)." ], [ "Company vision and strategy", - "Expert", + "Proficient", "Co-founded 3AP and sat on the management team that took it from 5 to about 70 people (2015–2022). Co-founded LIKE MAGIC and set its product, platform and AI strategy (2022–2026). Put two open-core products up for scrutiny with a billing model and a stated outcome each, a clean no included (2026)." ], [ "Consulting", "Proficient", - "Created the technical concepts, proposals and pitches for 3AP's client work as CTO and advised Credit Suisse, Swisscard, AXA and Mobiliar on the architecture behind theirs (2015–2022)." + "Created the technical concepts, proposals and pitches for 3AP's client work as CTO and advised Credit Suisse, Swisscard, AXA and Mobiliar on the architecture behind theirs, diagnosing the current system before recommending anything, as with Adcubum Syrius for AXA Health and Garaio REM for Aroov (2015–2022)." ], [ "Container orchestration (Kubernetes)", "Proficient", - "Built Conperi's platform on Google Kubernetes Engine from cluster creation up, GPU nodes included (2018–2020). Ran the Aroov and Stay KooooK backends on Google Kubernetes Engine (2019–2022). Stood up Ursina's whole environment, cluster, managed database, certificates, ingress and tunnels, from a script rather than a console (2020). Ran the LIKE MAGIC platform on Google Kubernetes Engine (2022–2026)." + "Engineered the reference deployment of 3AP's architecture on Google Kubernetes Engine (2015–2022). Built Conperi's platform on Google Kubernetes Engine from cluster creation up, GPU nodes included (2018–2020). Ran the LIKE MAGIC platform on Google Kubernetes Engine (2022–2026)." ], [ "Context engineering", @@ -994,68 +1133,68 @@ ], [ "Conversational AI", - "Proficient", - "Architected the integration of d3x, ailean and onsai into LIKE MAGIC's staff solution, unified multi-channel guest messaging with AI agents answering, guest insights and staff handover (2022–2026)." + "Competent", + "Opened LIKE MAGIC's API to conversational AI providers rather than running language models in the platform, so d3x, ailean and onsai integrated themselves into the staff solution, unified multi-channel guest messaging with AI agents answering, guest insights and staff collaboration (2022–2026)." ], [ "Data engineering", "Proficient", - "Fed Credit Suisse's Master Data Repository from static source-code analysis and several source systems (2016). Fed Flawa iQ's LoRaWAN telemetry into the ERP (2018–2019). Pulled 3AP's own staff directory and time records onto its platform, kept current by a scheduler rather than by anyone remembering (2019–2021). Built LIKE MAGIC's event and data hub, the sink for every business event its services published, ingested into BigQuery, idempotent on the event id so a redelivery cannot double-count and served back as a queryable event log (2022–2026)." + "Fed Credit Suisse's Master Data Repository by consuming the bank's existing source-code analysis and reading, transforming and loading the database schemas of its core systems (2016). Transformed Flawa iQ's LoRaWAN telemetry into the data its ERP needed and pushed it there (2018–2019). Pulled 3AP's own staff directory and time records onto its platform on a schedule, transforming each source, matching people across the directory and the billing system and reconciling records changed in both (2019–2021). Built LIKE MAGIC's event and data hub, the sink for every business event its services published, ingested into BigQuery, idempotent on the event id so a redelivery cannot double-count and served back as a queryable event log (2022–2026)." ], [ "Data governance", "Competent", - "Built Credit Suisse's Master Data Repository so data stewards could be assigned and the golden-source distribution across the core systems mapped (2016)." + "Built Credit Suisse's Master Data Repository so data stewards could be assigned and the golden-source distribution across the core systems mapped (2016). Built GuestGraph's governance into the engine, a steward deciding uncertain matches, every merge explainable and reversible and every source record immutable (2026)." ], [ "Data modeling", - "Proficient", - "Built the canonical data model for UBS Wealth Management & Swiss Bank's enterprise data management (2009–2015). Presented Eclipse data modeling at enterprise scale at Eclipse Day Florence, co-presented with the CDO project lead (2012). Designed the organization model behind the Flatland CDO Server bitemporally, what was in force on a date and what the repository said on a date kept as separate questions (2014–2022)." + "Expert", + "Built the canonical data model at the center of UBS Wealth Management & Swiss Bank's Integration Architecture Tool Chain, the model every interface was specified against (2009–2015). Presented Eclipse data modeling at enterprise scale at Eclipse Day Florence, co-presented with the CDO project lead (2012). Designed the organization model behind the Flatland CDO Server bitemporally, what was in force on a date and what the repository said on a date kept as separate questions (2014–2022). Designed the metamodel of Credit Suisse's Master Data Repository: data items, source systems and their golden-source mapping (2016)." ], [ "Data protection (GDPR)", "Competent", - "Ran LIKE MAGIC's GDPR compliance, including the guardrail that no internal context trained external LLMs (2022–2026)." + "Ran LIKE MAGIC's GDPR compliance as processor for the hotels as controllers, a data processing agreement in every customer contract, access and erasure requests answered through a defined procedure under an SLA and a guardrail that no internal context trained external LLMs (2022–2026)." ], [ "Database design", "Proficient", - "Designed DynaRep's repository on Oracle (2004–2009). Built the Swisscard rewrite on MSSQL (2015–2016). Set 3AP's reference architecture on MongoDB for AXA Health, Flawa iQ and Conperi, then moved it to PostgreSQL from Aroov onward once those platforms showed their data was read and written relationally (2015–2022). Ran LIKE MAGIC on PostgreSQL with R2DBC and jOOQ (2022–2026)." + "Set 3AP's reference architecture on MongoDB for AXA Health, Flawa iQ and Conperi, then moved it to PostgreSQL from Aroov onward, the first choice having followed document stores' momentum rather than the shape of the data (2015–2022). Designed AXA Health's MongoDB data model (2017–2019). Designed Flawa iQ's MongoDB data model for its device uplinks and configuration events (2018–2019). Designed Conperi's MongoDB data model for its claims and datasets (2018–2020). Designed Aroov's PostgreSQL schema (2019–2020). Gave each Stay KooooK microservice its own PostgreSQL schema (2020–2022). Put every LIKE MAGIC tenant on one shared PostgreSQL, each tenant's rows isolated by a discriminator built into the platform's framework and again by row-level security in the database, reached reactively through R2DBC and jOOQ (2022–2026)." ], [ "DevOps", - "Expert", + "Proficient", "Wrote the delivery pipeline into 3AP's reference architecture so a project inherited it rather than arranging its own, and established the company's delivery process and stack approvals (2015–2022). Built and ran LIKE MAGIC's production platform on Google Cloud as infrastructure as code, GitHub Actions running unit and integration tests on every change and the same team building and operating it (2022–2026)." ], [ "Domain-driven design", "Proficient", - "Drove UBS Wealth Management & Swiss Bank's business architecture and capability modeling on EMF/Ecore, where a canonical data model was what every interface contract in the division was defined against (2009–2015). Cut LIKE MAGIC's platform along its 12 business domains and the capabilities under each, so service and team boundaries followed the domain rather than the technical layering (2022–2026)." + "Partitioned UBS Wealth Management & Swiss Bank's application architecture into application domains, a taxonomy that classified every application system template and fixed the principles delineating one from another (2009–2015). Cut LIKE MAGIC's platform along its 12 business domains and the capabilities under each, so service boundaries followed the domain rather than the technical layering (2022–2026)." ], [ "Domain-specific language design", "Expert", - "Built DynaRep's repository-based modeling tool and its code generators for UBS mainframe service interfaces (2004–2009). Defined data types, interfaces and service contracts platform-independently on EMF and Xtext for UBS Wealth Management & Swiss Bank (2009–2015). Designed a reusable base vocabulary in Xcore for the Flatland CDO Server and an organization metamodel on top of it, where a derived feature is part of the language rather than code beside it (2014–2022)." + "Designed DynaRep's language for UBS mainframe service interfaces, implemented in Java as an Eclipse plugin with a graphical editor, with the code generators behind it (2004–2009). Designed the Xtext language UBS Wealth Management & Swiss Bank's projects defined their data types, interfaces and components in, platform-independently (2009–2015). Designed a reusable base vocabulary in Xcore for the Flatland CDO Server and an organization metamodel on top of it, where a derived feature is part of the language rather than code beside it (2014–2022)." ], [ "Engineering leadership", "Expert", - "Owned the Analysis & Design discipline in UBS Wealth Management & Business Banking and led the DynaRep project team of ten (2004–2009). Led the team that built UBS Wealth Management & Swiss Bank's Eclipse-based tooling platform and architected the SDLC toolchain several hundred engineers released inside (2009–2015). Owned the frame 3AP's engineering happened in as CTO, the organization and its roles, the reference architecture and stack and the approvals every engagement passed, through its scale to about 70 people in two countries (2015–2022). Set LIKE MAGIC's technology direction and developed its technical leadership from a founding team to 25, holding the platform and AI budget (2022–2026)." + "Owned the Analysis & Design discipline in UBS Wealth Management & Business Banking and led the DynaRep project team of ten (2004–2009). Led the team that built UBS Wealth Management & Swiss Bank's Eclipse-based tooling platform and architected the SDLC toolchain several hundred engineers released inside (2009–2015). Owned the frame 3AP's engineering happened in as CTO, the organization and its roles, the reference architecture and stack and the approvals every engagement passed, through its scale to about 70 people in two countries (2015–2022). Set LIKE MAGIC's technology direction and developed its technical leadership as the company grew from 5 to 25 people, holding the platform and AI budget (2022–2026)." ], [ "Enterprise architecture", "Expert", - "Architected the Integration Architecture Tool Chain for UBS Wealth Management & Swiss Bank around a canonical data model, with a central API and interface-portfolio repository and a role-based review every team's interfaces passed (2009–2015). Presented its design to the Swiss financial-services community at Eclipse Finance Day (2013)." + "Architected the Integration Architecture Tool Chain for UBS Wealth Management & Swiss Bank around a canonical data model, with a central API and interface-portfolio repository and a role-based review every team's interfaces passed (2009–2015). Presented its design to the Swiss financial-services community at Eclipse Finance Day (2013). Set the principles and reference architecture every 3AP client platform was built to, the service cut, the stack and the delivery pipeline decided once for all of them (2015–2022). Mapped LIKE MAGIC's 12 business domains to the capabilities under each and set the platform's direction along that map, API-first with an event and data hub (2022–2026)." ], [ "Event streaming", "Proficient", - "Ran Kafka as the streaming backbone of Conperi's processing pipeline (2018–2020). Built Stay KooooK's services as producers and consumers on Spring Cloud Stream over a Google Cloud Pub/Sub binder, bindings declared per service and the transport swappable underneath (2020–2022). Carried that into LIKE MAGIC at 89M+ platform events a year (2022–2026)." + "Ran Kafka as the streaming backbone of Conperi's processing pipeline, one topic per stage so each service consumed the output of the stage before it (2018–2020). Designed Stay KooooK's topic layout, redelivery handling and consumers that processed each event once, on Spring Cloud Stream over a Google Cloud Pub/Sub binder with bindings declared per service so the transport stayed swappable (2020–2022). Carried that into LIKE MAGIC at 89M+ platform events a year (2022–2026)." ], [ "Event-driven architecture", "Expert", - "Wrote event-driven communication into 3AP's reference architecture, so the platforms built to it carried their work as events (2015–2022). Built Flawa iQ to consume LoRaWAN device uplinks over AMQP (2018–2019). Ran Conperi's pipeline over a Kafka backbone (2018–2020). Separated accepting a message from delivering one on 3AP's platform, a queue per channel, so a slow vendor delays delivery instead of failing the caller (2019–2021). Built Aroov's backend on Google Cloud Pub/Sub as its event hub (2019–2020). Published and consumed every LIKE MAGIC business event through Pub/Sub (2022–2026)." + "Built Flawa iQ to consume LoRaWAN device uplinks over AMQP (2018–2019). Ran Conperi's pipeline over a Kafka backbone (2018–2020). Separated accepting a message from delivering one on 3AP's platform, a queue per channel, so a slow vendor delays delivery instead of failing the caller (2019–2021). Designed Aroov's event flow from Garaio REM, data fetched over SFTP on a schedule, transformed into events and published to Google Cloud Pub/Sub through Spring Cloud Stream (2019–2020). Designed Stay KooooK's integration services to take external events in over webhooks and WebSockets and publish them as internal events to Pub/Sub (2020–2022). Published and consumed every LIKE MAGIC business event through Pub/Sub (2022–2026)." ], [ "FinOps", @@ -1065,22 +1204,22 @@ [ "Frontend development", "Proficient", - "Built the model browser published with the Flatland CDO Server in AngularJS (2014–2022). Built the Swisscom delivery cockpit's React front end (2015). Built the Angular front end over Credit Suisse's Master Data Repository (2016). Carried Lost-Tag into a browser, a hybrid mobile application and a native iOS app in AngularJS (2016–2021). Built AXA Health's React and Next.js frontend (2017–2019). Built a React front end for Flawa iQ's sensor MVP (2018–2019). Owned Stay KooooK's React and TypeScript frontend (2020–2022). Set LIKE MAGIC's frontend on React, TypeScript and MUI (2022–2026)." + "Built the model browser published with the Flatland CDO Server in AngularJS (2014–2022). Built the Swisscom delivery cockpit's React front end (2015). Built the Angular front end over Credit Suisse's Master Data Repository (2016). Carried Lost-Tag into a browser, a hybrid mobile application and a native iOS app in AngularJS (2016–2021). Built AXA Health's React and Next.js frontend (2017–2019). Built a React front end for Flawa iQ's sensor MVP (2018–2019). Owned Stay KooooK's React and TypeScript frontend (2020–2022)." ], [ "Identity and access management", "Proficient", - "Wrote a plugin authenticating the Flatland CDO Server against LDAP, later taking bearer tokens at the REST boundary (2014–2022). Made identity 3AP's platform concern rather than each service's, Keycloak issuing tokens, social sign-in trusted into it and the gateway verifying before routing (2019–2021). Put Keycloak and OAuth2 in front of every route of the Ursina gateway, with a token relay written as a filter of its own because the framework's never refreshed the token (2020). Built zero-trust API boundaries into the LIKE MAGIC platform (2022–2026)." + "Wrote a plugin authenticating the Flatland CDO Server against LDAP, later taking bearer tokens at the REST boundary (2014–2022). Put OAuth 2.0 at the boundary of every service in 3AP's reference architecture (2015–2022). Made identity 3AP's platform concern rather than each service's, Keycloak issuing tokens, social sign-in trusted into it and the gateway verifying before routing (2019–2021). Put Keycloak and OAuth2 in front of every route of the Ursina gateway, with a token relay written as a filter of its own because the framework's never refreshed the token (2020). Built zero-trust API boundaries into the LIKE MAGIC platform, partners on the public API holding OAuth 2.0 tokens scoped to their resources, and guests and employees role-based ones (2022–2026)." ], [ "Incident management", "Proficient", - "Owned incident response for LIKE MAGIC's production platform, from the alert an SLO breach raised to the fix, on a multi-tenant SaaS where one incident reaches every tenant at once (2022–2026)." + "Owned incident response for LIKE MAGIC's production platform on a multi-tenant SaaS where one incident reaches every tenant at once, alerts routed automatically by severity to email, SMS and Slack under site reliability engineering, and critical, security-relevant incidents escalated to a board inside the information-security management (2022–2026)." ], [ "Information security management", "Competent", - "Built LIKE MAGIC's information-security management toward ISO 27001, in progress at exit, with GDPR compliance and zero-trust API boundaries (2022–2026)." + "Built LIKE MAGIC's information-security management toward ISO 27001, in progress at exit, with GDPR compliance, zero-trust API boundaries and an escalation board for critical, security-relevant incidents already running under it (2022–2026)." ], [ "Infrastructure as code", @@ -1090,32 +1229,32 @@ [ "Integration architecture", "Expert", - "Architected UBS Wealth Management & Swiss Bank's Integration Architecture Tool Chain, built to reduce point-to-point connections to an integration bus over defined concepts and open interface standards (2009–2015). Owned AXA Health's complete integration architecture into Adcubum Syrius (2017–2019). Reached from a cloud application into a broadband operator's own HBase and PostgreSQL for Ursina, over tunnels that left neither exposed (2020). Integrated 3 PMS, Mews, Apaleo and Oracle OHIP, 15+ smart-lock systems and 3 AI communication vendors into LIKE MAGIC (2022–2026)." + "Architected UBS Wealth Management & Swiss Bank's Integration Architecture Tool Chain, built to reduce point-to-point connections to an integration bus over defined concepts and open interface standards (2009–2015). Owned AXA Health's complete integration architecture into Adcubum Syrius (2017–2019). Reached from a cloud application into a broadband operator's own HBase and PostgreSQL for Ursina, over tunnels that left neither exposed (2020). Integrated 3 PMS (Mews, Apaleo and Oracle OHIP) and 15+ smart-lock systems into LIKE MAGIC, and opened its API so 3 AI communication vendors integrated themselves (2022–2026)." ], [ "IoT architecture", "Competent", - "Designed Flawa iQ's sensing and LoRaWAN connectivity and the backend ingesting device telemetry into the ERP (2018–2019)." + "Researched Flawa iQ's sensing to RFID-tagged modules, chose LoRaWAN for the MVP after weighing it against GSM and built the backend feeding device telemetry into the ERP (2018–2019)." ], [ "IT governance", - "Expert", + "Proficient", "Set the role-based review process for UBS Wealth Management & Swiss Bank's central interface-portfolio repository (2009–2015). Ran delivery governance and technology-stack approvals at 3AP (2015–2022)." ], [ "IT strategy", "Expert", - "Owned technology strategy and the reference architecture every engagement had to fit as 3AP's CTO (2015–2022). Defined LIKE MAGIC's platform strategy, API-first with a managed public API, an event and data hub and an MCP-server layer as the direction so agents consume the platform directly (2022–2026)." + "Owned technology strategy and the reference architecture every engagement had to fit as 3AP's CTO (2015–2022). Defined LIKE MAGIC's platform strategy, API-first with a managed public API and an event and data hub, evolving toward an MCP-server layer so agents consume the platform directly, and led the Camunda reassessment at renewal, recommending building on the engine before the decision went to removal (2022–2026)." ], [ "Java", "Expert", - "Built UBS's web portals in Java Portlets and JSP on IBM Portal Server (2001–2004). Built DynaRep's Eclipse plugins, web services and generators in Java (2004–2009). Built the Flatland CDO Server as an OSGi product in Java (2014–2022). Put Java and Spring Boot into 3AP's reference architecture so every platform built to it ran on them, Swisscard, AXA Health, Flawa iQ on Java 11, Conperi, Aroov and Stay KooooK (2015–2022). Ran LIKE MAGIC on Spring Boot and WebFlux (2022–2026)." + "Built UBS's web portals in Java Portlets and JSP on IBM Portal Server (2001–2004). Built DynaRep's Eclipse plugins, web services and generators in Java (2004–2009). Built the Flatland CDO Server as an OSGi product in Java (2014–2022). Put Java and Spring Boot into 3AP's reference architecture so every platform built to it ran on them, AXA Health, Flawa iQ on Java 11, Conperi, Aroov and Stay KooooK (2015–2022). Wrote Java on LIKE MAGIC's Spring Boot and WebFlux platform, including the reference implementation of each pattern its architecture used (2022–2026)." ], [ "Knowledge management", "Proficient", - "Established communities of practice at UBS (2004–2009). Built the LIKE MAGIC Mental Model as the organization's shared context layer (2022–2026). Published CompanyGraph so the same layer can be kept as Markdown in a repository with a history (2026)." + "Established communities of practice at UBS and kept the division's methodology and guidance in Rational Method Composer, published as its SDLC instance (2004–2009). Built the LIKE MAGIC Mental Model as the organization's shared context layer (2022–2026). Published CompanyGraph so the same layer can be kept as Markdown in a repository with a history (2026)." ], [ "Legacy modernization", @@ -1125,32 +1264,32 @@ [ "Machine learning", "Familiar", - "Architected the pipeline, the labeling tool and the serving path for Conperi, 3AP's applied-research proof of concept with ZHAW for reading health-insurance invoices (2018–2020). Followed the modeling closely enough to build what it needed, GPU training nodes, a labeled dataset where none existed and held-out evaluation reported per document; the models themselves were ZHAW's" + "Architected the pipeline, the labeling tool and the serving path for Conperi, 3AP's applied-research proof of concept with ZHAW for reading health-insurance invoices, and followed ZHAW's modeling closely enough to supply what it needed — GPU training nodes and a labeled dataset where none existed (2018–2020)." ], [ "Mentoring and coaching", "Proficient", - "Onboarded Java developers onto UBS's portal (2001–2004). Coached UBS project teams in the Analysis & Design methodology and built internal communities of practice (2004–2009). Mentored the engineers at 3AP as it scaled to about 70 people (2015–2022). Developed the technical leadership at LIKE MAGIC as it grew from 5 to 25 (2022–2026)." + "Coached UBS project teams in the Analysis & Design methodology and built internal communities of practice (2004–2009). Ran workshops with UBS engineering teams on the concepts of the Integration Architecture Tool Chain and helped build the UBS Academy's education on the software development lifecycle (2009–2015). Mentored 3AP's engineers through the reference architecture as the company scaled to about 70 people, developing its reference sample, explaining it to each team and guiding the developers building on it (2015–2022). Coached LIKE MAGIC's engineers through the technology gate and the Change Advisory Board, arguing in each review what a decision had to change to fit the architecture and stay compliant (2022–2026)." ], [ "Microservices architecture", "Expert", - "Authored 3AP's microservice reference architecture and built AXA Health, Flawa iQ and Aroov to it: event-driven, 12-factor, the service cut driven by business capability (2015–2022). Cut Lost-Tag into Spring Boot services behind a gateway with service discovery (2016–2021). Carried the architecture into LIKE MAGIC as the platform's own, booking, guest, profile, payment, door access, messaging, operation and analytics services, each contract-first and every vendor behind its own connector with a fallback path (2022–2026)." + "Authored 3AP's microservice reference architecture and built AXA Health to it: event-driven, 12-factor, the service cut driven by business capability (2015–2022). Cut Lost-Tag into Spring Boot services behind a gateway with service discovery (2016–2021). Designed the microservice cut of Flawa iQ's backend (2018–2019). Designed the microservice cut of Conperi's processing pipeline (2018–2020). Designed the microservice cut of Aroov's backend (2019–2020). Cut Stay KooooK into microservices, each holding its own schema in PostgreSQL (2020–2022). Carried the architecture into LIKE MAGIC as the platform's own, cut along its 12 business domains with booking, guest, payment and door access among the services, each contract-first and every vendor behind its own connector with a fallback path (2022–2026)." ], [ "MLOps", - "Competent", - "Set up Conperi's training and serving split, a training service, a registry versioning each model with the metadata to reproduce it and a separate serving service so a model could be replaced without redeploying its consumers (2018–2020). It stayed a proof of concept, so nothing here covers drift, rollback or retraining in production" + "Familiar", + "Set up Conperi's training and serving split — a training service, a registry versioning each model with the metadata to reproduce it and a separate serving service — so a model could be replaced without redeploying its consumers, in a proof of concept that never ran drift, rollback or retraining in production (2018–2020)." ], [ "Model-driven engineering", "Expert", - "Wrote the degree dissertation on Model-Driven Architecture for component-based and service-oriented architecture (2002–2006). Built UBS's DynaRep model-driven repository and code generator (2004–2009). Built the Eclipse-based Integration Architecture Tool Chain for UBS Wealth Management & Swiss Bank on EMF, Xcore, Xtext and Xtend with a CDO repository (2009–2015). Spoke on models as the enterprise's first-class artifacts at Eclipse MDD Day (2010). Presented Eclipse data modeling at enterprise scale at Eclipse Day Florence (2012). Built the Flatland CDO Server, an Eclipse CDO model repository serving any model over REST without code written for that model (2014–2022). Built Credit Suisse's Master Data Repository on it (2016)." + "Wrote the degree dissertation on Model-Driven Architecture for component-based and service-oriented architecture (2002–2006). Built UBS's DynaRep model-driven repository and code generator (2004–2009). Built the Eclipse-based Integration Architecture Tool Chain for UBS Wealth Management & Swiss Bank on EMF, Xcore, Xtext and Xtend with a CDO repository (2009–2015). Presented UBS's enterprise model and its generation path to the Eclipse Modeling Platform Working Group (2010). Spoke on models as the enterprise's first-class artifacts at Eclipse MDD Day (2010). Presented Eclipse data modeling at enterprise scale at Eclipse Day Florence (2012). Built the Flatland CDO Server, an Eclipse CDO model repository serving any model over REST without code written for that model (2014–2022). Built Credit Suisse's Master Data Repository on it from a metamodel of data items, source systems and golden-source mapping that the repository and its front end followed (2016)." ], [ "Multi-tenant SaaS architecture", "Proficient", - "Built and scaled LIKE MAGIC's multi-tenant hospitality SaaS platform, serving 90+ customers, 430+ properties and 16,000+ units across the DACH region as of 2026 (2022–2026)." + "Built and scaled LIKE MAGIC's multi-tenant hospitality SaaS platform to 90+ customers, 430+ properties and 16,000+ units across the DACH region, on one shared infrastructure chosen over a stack per customer for lower operating cost and a single deployment, each tenant isolated by a discriminator in the framework and by row-level security in the database (2022–2026)." ], [ "Observability", @@ -1160,57 +1299,57 @@ [ "Open-source stewardship", "Proficient", - "Published the Flatland CDO Server under the Eclipse Public License and kept it public for eight years, forked by three strangers and used as the foundation of Credit Suisse's Master Data Repository (2014–2022). Published CompanyGraph and GuestGraph as open core under Apache 2.0: a license saying what is open and what could be paid for, conventions for a contributor, specs keeping the rejected alternatives and a release contract of tags and manifests (2026)." + "Published the Flatland CDO Server under the Eclipse Public License in 2014 and kept it public since, forked by strangers building on it and used as the foundation of Credit Suisse's Master Data Repository (2014–2022). Published CompanyGraph and GuestGraph as open core under Apache 2.0, a license saying what is open and what could be paid for, with a release contract of tags and manifests (2026)." ], [ "Organization design", "Proficient", - "Defined UBS's department-wide role model, each role with its tasks and competencies, put through a formal consultation before it took effect (2004–2009). Described 3AP's own organization as a model rather than a chart on the Flatland CDO Server, circles inside circles, roles carrying responsibilities and assignments with a capacity and a validity window, answerable by date (2014–2022). Shaped 3AP's technology organization as it scaled to about 70 people, including a near-shore team in Serbia (2015–2022). Shaped LIKE MAGIC's as it grew to 25 (2022–2026)." + "Defined UBS's department-wide role model, each role with its tasks and competencies, put through a formal consultation before it took effect (2004–2009). Designed 3AP's structure of circles and roles as the company scaled to about 70 people, and kept it as a model on the Flatland CDO Server (2015–2022). Defined LIKE MAGIC's technology roles, the technical architect, the business architect and the site reliability engineer, and led the functional team they formed (2022–2026)." ], [ "Platform engineering", "Expert", - "Architected the SDLC toolchain for UBS Wealth Management & Swiss Bank, Jira, Confluence, GitHub Enterprise, Maven, Jenkins and Sonar (2009–2015). Built Conperi's platform from cluster creation to the Kafka backbone, tracing, the OAuth gateway and GPU nodes (2018–2020). Built the platform 3AP's own projects and internal systems started from, a running gateway, an identity provider and shared capabilities rather than an empty cluster (2019–2021). Owned the LIKE MAGIC platform as the product every team built on (2022–2026)." + "Architected the SDLC toolchain for UBS Wealth Management & Swiss Bank, Jira, Confluence, GitHub Enterprise, Maven, Jenkins and Sonar (2009–2015). Built Conperi's platform from cluster creation to the Kafka backbone, tracing, the OAuth gateway and GPU nodes, and made it self-service so ZHAW's researchers deployed model services and trained without asking 3AP (2018–2020). Built the platform 3AP's own projects and internal systems started from, a running gateway, an identity provider and shared capabilities rather than an empty cluster (2019–2021). Owned the LIKE MAGIC platform as the product every team built on, self-service so a team added a service, schemas or tables and the platform's CI/CD and infrastructure as code carried them to production (2022–2026)." ], [ "Process orchestration", "Expert", - "Owned the Camunda (Zeebe) orchestration of the guest journey at Stay KooooK (2020–2022). Published a runnable sample of the journey on Zeebe with the article on monitoring it (2021). Carried the orchestration into LIKE MAGIC, then led the reassessment at contract renewal and the move off it (2022–2023). Co-presented the platform at CamundaCon in Berlin (2022). Featured in Camunda's published case study citing a 95% self-check-in rate and 7,000 process instances per month (2023)." + "Owned the Camunda (Zeebe) orchestration of the guest journey at Stay KooooK (2020–2022). Published a runnable sample of the journey on Zeebe with the article on monitoring it (2021). Carried the orchestration into LIKE MAGIC, then led the reassessment at contract renewal, recommending building on the engine properly before the decision went to removal (2022–2023). Co-presented the platform at CamundaCon in Berlin, speaking to how it ran and monitored the guest journey on Camunda (2022). Featured in Camunda's published case study citing a 95% self-check-in rate and 7,000 process instances per month (2023)." ], [ "Product discovery", - "Competent", + "Familiar", "Put CompanyGraph and GuestGraph up for scrutiny in the open, each with a talk, a billing model and a stated outcome including a clean no (2026)." ], [ "Product management", - "Proficient", - "Defined and executed LIKE MAGIC's product and platform strategy as co-founder and Head of Technology, API-first with a managed public API, an event and data hub and three AI communication vendors integrated behind one staff inbox (2022–2026)." + "Competent", + "Defined and executed LIKE MAGIC's product and platform strategy as co-founder and Head of Technology, API-first with a managed public API, an event and data hub and three conversational AI providers integrating themselves into the staff solution through that API (2022–2026)." ], [ "Public speaking", "Proficient", - "Spoke at UBS-internal brown-bag sessions on modeling, toolchain and architecture (2009–2015). Spoke at Eclipse MDD Day on models as the enterprise's first-class artifacts (2010). Spoke at Eclipse Day Florence on data modeling at enterprise scale (2012). Spoke at Eclipse Finance Day on interface management in a large enterprise (2012). Spoke at Eclipse Finance Day on the UBS Integration Architecture Tool Chain (2013). Co-presented at CamundaCon in Berlin on how SV Group became a SaaS business on Camunda (2022). Gave a talk each on CompanyGraph and GuestGraph, deck, PDF and audio in German and English (2026)." + "Spoke at Eclipse MDD Day on models as the enterprise's first-class artifacts (2010). Spoke at Eclipse Day Florence on data modeling at enterprise scale (2012). Spoke at Eclipse Finance Day on interface management in a large enterprise (2012). Spoke at Eclipse Finance Day on the UBS Integration Architecture Tool Chain (2013). Co-presented at CamundaCon in Berlin on how SV Group became a SaaS business on Camunda (2022). Published a narrated introduction talk each on CompanyGraph and GuestGraph, deck, PDF and audio in German and English (2026)." ], [ "Requirements engineering", "Expert", - "Owned the Analysis & Design discipline in UBS Wealth Management & Business Banking's RUP rollout, replacing the proprietary process with a market-standard one, writing its modeling methodology in Rational Method Composer and coaching the division's teams into it (2004–2009). Modeled Lost-Tag's actors and their use cases before the platform was built (2016–2021). Writes a reviewed specification before every plan and build on CompanyGraph and GuestGraph (2026)." + "Owned the Analysis & Design discipline in UBS Wealth Management & Business Banking's RUP rollout, replacing the proprietary process with a market-standard one, writing its modeling methodology in Rational Method Composer and coaching the division's teams into it (2004–2009). Modeled Lost-Tag's actors and their use cases before the platform was built (2016–2021)." ], [ "Site reliability engineering", "Proficient", - "Owned site reliability for LIKE MAGIC's production platform across three environments, SLOs defined and alerted on, performance held as volume grew and automated weekly reporting against defined thresholds (2022–2026)." + "Owned site reliability for LIKE MAGIC's production platform, instrumented on Cloud Monitoring and Cloud Trace with alerting driven by defined SLOs and automated by severity to the people responsible (2022–2026)." ], [ "Software architecture", "Expert", - "Led development and delivery of UBS's WPS Portal application (2001–2004). Took software-architect responsibility for UBS's DynaRep platform (2004–2009). Set the reference architecture every 3AP engagement was built to (2015–2022). Owned Stay KooooK's complete front-to-back architecture on reactive Spring Boot WebFlux (2020–2022). Designed GuestGraph's identity-resolution engine from a written specification (2026)." + "Created the software architecture of UBS's WPS Portal application and led its development and delivery (2001–2004). Took software-architect responsibility for UBS's DynaRep platform (2004–2009). Set the reference architecture every 3AP engagement was built to (2015–2022). Owned Stay KooooK's complete front-to-back architecture on reactive Spring Boot WebFlux (2020–2022). Owned LIKE MAGIC's architecture decisions and wrote the reference implementation of each pattern its architecture used (2022–2026). Designed GuestGraph's identity-resolution engine from three written specifications (2026)." ], [ "Software engineering", "Expert", - "Built UBS's intranet and internet portals and the ACE Foundation beneath UBS Quotes (2001–2004). Architected and built DynaRep's Eclipse plugins, web services and code generators (2004–2009). Built the Swisscom delivery cockpit end to end (2015). Set the engineering practice of LIKE MAGIC's Spring Boot WebFlux platform, tests as part of finishing a feature rather than a phase after it (2022–2026)." + "Built UBS's intranet and internet portals and developed features of the ACE Foundation beneath UBS Quotes (2001–2004). Architected and built DynaRep's Eclipse plugins, web services and code generators (2004–2009). Built the Swisscom delivery cockpit end to end (2015). Wrote the reference implementation of each pattern on LIKE MAGIC's Spring Boot WebFlux platform, so a team built a new service from working code, unit and integration tests running on every pipeline (2022–2026)." ], [ "Software modeling (UML, SysML, C4)", @@ -1220,32 +1359,32 @@ [ "Software process engineering", "Expert", - "Owned the Analysis & Design discipline in the Rational Unified Process and Enterprise Unified Process rollout at UBS Wealth Management & Business Banking, replacing the proprietary process with a market standard (2004–2009). Architected the division's SDLC toolchain (2009–2015)." + "Owned the Analysis & Design discipline in the Rational Unified Process and Enterprise Unified Process rollout at UBS Wealth Management & Business Banking, replacing the proprietary process with a market standard, its methodology written in Rational Method Composer, published as the division's SDLC instance and coached into the project teams (2004–2009). Architected the division's SDLC toolchain (2009–2015)." ], [ "Software testing", - "Proficient", - "Built the Swisscard rewrite on Jenkins and JUnit, with tests as engineering practice rather than a phase after the build (2015–2016). Made unit and integration tests part of how a feature was finished across 3AP's client engagements, new behavior covered at the level that catches its regression (2015–2022). Ran them on every LIKE MAGIC pipeline on GitHub Actions (2022–2026)." + "Competent", + "Made unit and integration tests part of how a feature was finished across 3AP's client engagements, new behavior covered at the level that catches its regression (2015–2022). Ran them on every LIKE MAGIC pipeline on GitHub Actions (2022–2026). Held every blust.ch page to browser assertions and its share cards to comparison against the pages they were rendered from (2026)." ], [ "Solution architecture", "Expert", - "Led 3AP's client bids on solution architecture, public tenders under Swiss procurement law included (2015–2022). Designed Flawa iQ's RFID and LoRaWAN solution, delivered as 10 working prototypes (2018–2019). Designed Ursina's runtime, the path into the operator's network and the authentication boundary (2020). Owned Stay KooooK's solution architecture front to back and presented it at the winning pitch (2020–2022)." + "Led 3AP's client bids on solution architecture, public tenders under Swiss procurement law included (2015–2022). Designed Flawa iQ's RFID and LoRaWAN solution, delivered as 10 working prototypes (2018–2019). Designed Ursina's path into the operator's network and its authentication boundary (2020). Owned Stay KooooK's solution architecture front to back and presented it at the winning pitch (2020–2022)." ], [ "Solution selling", "Proficient", - "Led 3AP's client bids across proposal, pitch and negotiation, public tenders under Swiss procurement law included (2015–2022). Won Credit Suisse without a tender, a problem known inside the bank reached through the network and a proposed architecture rather than a specification (2016). Won AXA Health, Flawa iQ, Aroov and Stay KooooK on a solution architecture presented by the people who would build it (2017–2020). Put two open-core products in front of a professional network with a billing model each (2026)." + "Led 3AP's client bids on solution architecture, from technical concept to proposal and pitch, public tenders under Swiss procurement law included (2015–2022). Won Credit Suisse without a tender, a problem known inside the bank reached through the network and a proposed architecture rather than a specification (2016). Won AXA Health, Flawa iQ, Aroov and Stay KooooK by presenting the solution architecture in the pitch as the people who would build it (2017–2020)." ], [ "Spec-driven development", "Proficient", - "Built GuestGraph's identity-resolution engine and CompanyGraph, meta-model, tooling design and this reference instance, from written specifications, each reviewed before its plan and build, under conventions an agent pass enforces (2026)." + "Built GuestGraph's identity-resolution engine and CompanyGraph, meta-model, tooling design and this reference instance, from written specifications, each reviewed before its plan and build, under written conventions every repository in the family vendors (2026)." ], [ "Stakeholder management", - "Proficient", - "Advised clients including Credit Suisse, Swisscard, AXA and Mobiliar as 3AP's CTO and joined each project's ramp-up to negotiate with the client's security and platform organizations (2015–2022). Presented the solution architecture in the winning Aroov pitch (2019). Presented the solution architecture in the winning Stay KooooK pitch (2020)." + "Competent", + "Advised clients including Credit Suisse, Swisscard, AXA and Mobiliar as 3AP's CTO and joined each project's ramp-up to negotiate with the client's security and platform organizations (2015–2022)." ], [ "Storytelling", @@ -1255,12 +1394,12 @@ [ "Technical writing", "Expert", - "Wrote the Analysis & Design methodology and guidance a UBS division worked to (2004–2009). Published an article on process monitoring with BPMN, with the runnable sample it describes (2021). Built the LIKE MAGIC Mental Model as the organization's written context layer (2022–2026). Wrote CompanyGraph's conventions, design specs and worked example, prose other people follow for readers who were not in the room (2026)." + "Wrote the Analysis & Design methodology and guidance a UBS division worked to (2004–2009). Published an article on process monitoring with BPMN, with the runnable sample it describes (2021). Wrote the developer documentation for LIKE MAGIC's public API, which conversational AI providers and other partners integrated against without LIKE MAGIC building the integration (2022–2026). Wrote CompanyGraph's conventions, design specs and worked example, prose other people follow for readers who were not in the room (2026)." ], [ "Vendor management", "Proficient", - "Ran LIKE MAGIC's AI and automation tooling as a managed portfolio: Claude Code team licenses, multi-provider tooling across Claude, Gemini and Copilot and the call to self-host n8n on its own Kubernetes rather than take the hosted service (2022–2026). Led the same call on Camunda at contract renewal, where the platform used a fraction of the engine and the choice was to build on it or leave it (2022–2023)." + "Ran LIKE MAGIC's AI and automation tooling as a managed portfolio: Claude Code team licenses, multi-provider tooling across Claude, Gemini and Copilot and the call to self-host n8n on its own Kubernetes rather than take the hosted service (2022–2026). Led the same call on Camunda at contract renewal, where the platform used a fraction of the engine and the choice was to build on it or leave it, recommending building on it before the decision went to removal (2022–2023)." ] ] } @@ -1276,12 +1415,12 @@ [ "Agentic AI development", "Expert", - "Built LIKE MAGIC's internal AI marketplace on Claude, giving teams governed access to assistants and agents grounded in the Mental Model (2022–2026). Built CompanyGraph and GuestGraph agent-first under written conventions that encode the failure modes: an unresolvable reference is an error rather than a warning, and every validation pass names what it did not check (2026)." + "Built LIKE MAGIC's internal AI marketplace on Claude, giving teams governed access to assistants and agents grounded in the Mental Model (2022–2026). Defined the agents that ran a job search, one rating each posting against the experience and colleagues' feedback, one writing the application on a go and one checking the process and the correspondence (2026). Built CompanyGraph, GuestGraph and blust.ch through the agent seats the model defines, each under its own rulebook, and wrote CompanyGraph's agent conventions to encode the failure modes: an unresolvable reference is an error rather than a warning, and every validation pass names what it did not check (2026)." ], [ "Agile delivery", "Competent", - "Served as Scrum Master and technical lead on central UBS Wealth Management & Swiss Bank initiatives (2009–2015). Certified SAFe 4 Practitioner (2016)." + "Ran every 3AP project in Scrum, agile delivery being what the company's name stood for: As Agile As Possible (2015–2022). Certified SAFe 4 Practitioner (2016)." ], [ "AI governance", @@ -1291,7 +1430,7 @@ [ "AI strategy", "Proficient", - "Authored and executed LIKE MAGIC's company-wide AI strategy, from the internal rollout of assistants across planning, delivery and operations to shipped customer-facing AI, with d3x, ailean and onsai integrated into the staff solution (2022–2026)." + "Authored and executed LIKE MAGIC's company-wide AI strategy, from the internal rollout of assistants across planning, delivery and operations to customer-facing AI delivered by opening the platform's API to d3x, ailean and onsai rather than running language models in it (2022–2026)." ], [ "AI tool integration (MCP)", @@ -1301,52 +1440,52 @@ [ "API design", "Expert", - "Established API and data management for UBS Wealth Management & Swiss Bank with generated XML-Schema and WSDL service contracts (2009–2015). Set 3AP's reference architecture so the service cut decided what each service exposed (2015–2022). Gave Stay KooooK its API surface from the first commit, REST specified in OpenAPI, generated from the code and secured by OAuth 2.0 (2020–2022). Led LIKE MAGIC's API-first strategy to a partner API documented in the open, REST on OpenAPI 3.1 with webhook subscriptions and OAuth 2.0 scopes over property, reservation, guest, messaging, door access and task resources (2022–2026)." + "Defined UBS Wealth Management & Swiss Bank's interfaces and service contracts platform-independently in a central API and interface-portfolio repository, generating the XML-Schema and WSDL from them (2009–2015). Fixed how every service in 3AP's reference architecture exposed itself, REST specified contract-first in OpenAPI with OAuth 2.0 at the boundary (2015–2022). Designed Lost-Tag's service interface so finder and owner reached each other without either one's contact details reaching the other (2016–2021). Gave Stay KooooK its API surface from the first commit, REST specified contract-first in OpenAPI and secured by OAuth 2.0 (2020–2022). Led LIKE MAGIC's API-first strategy to a partner API documented in the open, REST on OpenAPI 3.1 with webhook subscriptions and OAuth 2.0 scopes over property, reservation, guest, messaging, door access and task resources (2022–2026). Designed and implemented GuestGraph's engine and connector APIs contract-first in OpenAPI, with a merge's explanation, its undoing and the review of uncertain matches as resources of their own (2026)." ], [ "Business architecture", "Expert", - "Drove business architecture and capability modeling on EMF/Ecore at UBS Wealth Management & Swiss Bank (2009–2015). Mapped LIKE MAGIC's 12 business domains as concepts with the capabilities under each, and cut the platform, the teams and the product strategy along that map (2022–2026)." + "Modeled UBS Wealth Management & Swiss Bank's business capabilities, concepts, processes and actors as one enterprise model on EMF/Ecore, which architects used to steer new projects toward decisions that fit the enterprise model (2009–2015). Presented that enterprise model to the Eclipse Modeling Platform Working Group, its business capabilities, concepts, processes and actors each a metamodel of one shared model (2010). Mapped LIKE MAGIC's 12 business domains as concepts with the capabilities under each, and cut the platform and the product strategy along that map (2022–2026)." ], [ "Business process modeling (BPMN, DMN)", "Proficient", - "Modeled the guest journey from booking to check-out in Camunda BPMN for Stay KooooK (2020–2022). Published the model as the subject of an article on monitoring a process by the message it is still waiting for (2021). Carried the model into LIKE MAGIC, where it ran the journey until the orchestration was replaced (2022–2023)." + "Modeled the guest journey from booking to check-out in Camunda BPMN for Stay KooooK (2020–2022). Published the model as the subject of an article on monitoring a process by the message it is still waiting for (2021). Carried the model into LIKE MAGIC and extended it there, running the journey until the orchestration was replaced (2022–2023)." ], [ "Change management", - "Proficient", + "Competent", "Replaced UBS Wealth Management & Business Banking's proprietary engineering process with a market-standard one as owner of its Analysis & Design discipline, coaching project teams into it (2004–2009). Drove LIKE MAGIC's productive rollout of AI assistants across planning, delivery and operations (2022–2026)." ], [ "CI/CD", - "Proficient", - "Put Jenkins and Sonar in the SDLC toolchain UBS Wealth Management & Swiss Bank released inside (2009–2015). Wrote the delivery pipeline into 3AP's reference architecture so a project inherited it rather than arranging its own, Jenkins at Swisscard, Flawa iQ and Lost-Tag, CircleCI at Conperi and Ursina (2015–2022). Released Lost-Tag's iOS app to the App Store from a scripted pipeline (2016–2021). Made the build the gate on 3AP's platform, every branch analyzed on SonarCloud with coverage attached and a green mainline deploying itself to the cluster (2019–2021). Set LIKE MAGIC's standards on GitHub Actions, with unit and integration tests on every run (2022–2026)." + "Expert", + "Put Jenkins and Sonar in the SDLC toolchain UBS Wealth Management & Swiss Bank released inside, each project's build and continuous integration generated from its design and the reference architecture (2009–2015). Wrote the delivery pipeline into 3AP's reference architecture so a project inherited it rather than arranging its own, moving it from Jenkins at Flawa iQ and Lost-Tag through CircleCI at Conperi and Ursina to GitHub Actions (2015–2022). Released Lost-Tag's iOS app to the App Store from a scripted pipeline (2016–2021). Made the build the gate on 3AP's platform, every branch analyzed on SonarCloud with coverage attached and a green mainline deploying itself to the cluster (2019–2021). Set LIKE MAGIC's standards on GitHub Actions, with unit and integration tests on every run (2022–2026). Required one shared conventions check beside each repository's own suite on every default branch in the family (2026). Added a pin test to the MCP server's deployment once a stale lockfile had built green on an older release than its pin named (2026)." ], [ "Cloud architecture", "Expert", - "Targeted 3AP's reference architecture at Kubernetes and no cloud in particular, so a client's platform was a deployment decision, Google Cloud at Aroov and Stay KooooK and AXA's own on-premise OpenShift (2015–2022). Ran 3AP's notification services on Swisscom's Cloud Foundry and Google Kubernetes Engine at the same time, one binding a broker as a managed service and the other running it as a container (2019). Owned LIKE MAGIC's production platform on Google Cloud (2022–2026). Designed GuestGraph for managed platform services without binding it to a provider (2026)." + "Targeted 3AP's reference architecture at Kubernetes and no cloud in particular, so a client's platform was a deployment decision, Google Cloud at Aroov and Stay KooooK and AXA's own on-premise OpenShift (2015–2022). Designed Flawa iQ's deployment on Swisscom's Cloud Foundry, services pushed with a manifest and the broker and database bound as managed services (2018–2019). Ran 3AP's notification services on Swisscom's Cloud Foundry and Google Kubernetes Engine at the same time, one binding a broker as a managed service and the other running it as a container (2019). Owned LIKE MAGIC's production platform on Google Cloud (2022–2026)." ], [ "Community building", "Expert", - "Built internal communities of practice at UBS and led the division's Java Chief Developer committee for two years (2004–2009). Co-led that committee for a further five years (2009–2015). Represented UBS in the Eclipse Modeling Platform Working Group (2010–2011). Co-organized the three Eclipse events UBS hosted in Zürich, MDD Day 2010 and Finance Day 2012 and 2014 (2010–2014). Served on the board of the Swiss Eclipse User Group within JUG Switzerland (2011–2014)." + "Built internal communities of practice at UBS and led the division's Java Chief Developer committee for two years (2004–2009). Co-led that committee for a further five years, the forum in which the division's lead engineers set common practice (2009–2015). Co-organized the three Eclipse events UBS hosted in Zürich, MDD Day 2010 and Finance Day 2012 and 2014 (2010–2014). Served on the board of the Swiss Eclipse User Group within JUG Switzerland (2011–2014)." ], [ "Company vision and strategy", - "Expert", + "Proficient", "Co-founded 3AP and sat on the management team that took it from 5 to about 70 people (2015–2022). Co-founded LIKE MAGIC and set its product, platform and AI strategy (2022–2026). Put two open-core products up for scrutiny with a billing model and a stated outcome each, a clean no included (2026)." ], [ "Consulting", "Proficient", - "Created the technical concepts, proposals and pitches for 3AP's client work as CTO and advised Credit Suisse, Swisscard, AXA and Mobiliar on the architecture behind theirs (2015–2022)." + "Created the technical concepts, proposals and pitches for 3AP's client work as CTO and advised Credit Suisse, Swisscard, AXA and Mobiliar on the architecture behind theirs, diagnosing the current system before recommending anything, as with Adcubum Syrius for AXA Health and Garaio REM for Aroov (2015–2022)." ], [ "Container orchestration (Kubernetes)", "Proficient", - "Built Conperi's platform on Google Kubernetes Engine from cluster creation up, GPU nodes included (2018–2020). Ran the Aroov and Stay KooooK backends on Google Kubernetes Engine (2019–2022). Stood up Ursina's whole environment, cluster, managed database, certificates, ingress and tunnels, from a script rather than a console (2020). Ran the LIKE MAGIC platform on Google Kubernetes Engine (2022–2026)." + "Engineered the reference deployment of 3AP's architecture on Google Kubernetes Engine (2015–2022). Built Conperi's platform on Google Kubernetes Engine from cluster creation up, GPU nodes included (2018–2020). Ran the LIKE MAGIC platform on Google Kubernetes Engine (2022–2026)." ], [ "Context engineering", @@ -1355,68 +1494,68 @@ ], [ "Conversational AI", - "Proficient", - "Architected the integration of d3x, ailean and onsai into LIKE MAGIC's staff solution, unified multi-channel guest messaging with AI agents answering, guest insights and staff handover (2022–2026)." + "Competent", + "Opened LIKE MAGIC's API to conversational AI providers rather than running language models in the platform, so d3x, ailean and onsai integrated themselves into the staff solution, unified multi-channel guest messaging with AI agents answering, guest insights and staff collaboration (2022–2026)." ], [ "Data engineering", "Proficient", - "Fed Credit Suisse's Master Data Repository from static source-code analysis and several source systems (2016). Fed Flawa iQ's LoRaWAN telemetry into the ERP (2018–2019). Pulled 3AP's own staff directory and time records onto its platform, kept current by a scheduler rather than by anyone remembering (2019–2021). Built LIKE MAGIC's event and data hub, the sink for every business event its services published, ingested into BigQuery, idempotent on the event id so a redelivery cannot double-count and served back as a queryable event log (2022–2026)." + "Fed Credit Suisse's Master Data Repository by consuming the bank's existing source-code analysis and reading, transforming and loading the database schemas of its core systems (2016). Transformed Flawa iQ's LoRaWAN telemetry into the data its ERP needed and pushed it there (2018–2019). Pulled 3AP's own staff directory and time records onto its platform on a schedule, transforming each source, matching people across the directory and the billing system and reconciling records changed in both (2019–2021). Built LIKE MAGIC's event and data hub, the sink for every business event its services published, ingested into BigQuery, idempotent on the event id so a redelivery cannot double-count and served back as a queryable event log (2022–2026)." ], [ "Data governance", "Competent", - "Built Credit Suisse's Master Data Repository so data stewards could be assigned and the golden-source distribution across the core systems mapped (2016)." + "Built Credit Suisse's Master Data Repository so data stewards could be assigned and the golden-source distribution across the core systems mapped (2016). Built GuestGraph's governance into the engine, a steward deciding uncertain matches, every merge explainable and reversible and every source record immutable (2026)." ], [ "Data modeling", - "Proficient", - "Built the canonical data model for UBS Wealth Management & Swiss Bank's enterprise data management (2009–2015). Presented Eclipse data modeling at enterprise scale at Eclipse Day Florence, co-presented with the CDO project lead (2012). Designed the organization model behind the Flatland CDO Server bitemporally, what was in force on a date and what the repository said on a date kept as separate questions (2014–2022)." + "Expert", + "Built the canonical data model at the center of UBS Wealth Management & Swiss Bank's Integration Architecture Tool Chain, the model every interface was specified against (2009–2015). Presented Eclipse data modeling at enterprise scale at Eclipse Day Florence, co-presented with the CDO project lead (2012). Designed the organization model behind the Flatland CDO Server bitemporally, what was in force on a date and what the repository said on a date kept as separate questions (2014–2022). Designed the metamodel of Credit Suisse's Master Data Repository: data items, source systems and their golden-source mapping (2016)." ], [ "Data protection (GDPR)", "Competent", - "Ran LIKE MAGIC's GDPR compliance, including the guardrail that no internal context trained external LLMs (2022–2026)." + "Ran LIKE MAGIC's GDPR compliance as processor for the hotels as controllers, a data processing agreement in every customer contract, access and erasure requests answered through a defined procedure under an SLA and a guardrail that no internal context trained external LLMs (2022–2026)." ], [ "Database design", "Proficient", - "Designed DynaRep's repository on Oracle (2004–2009). Built the Swisscard rewrite on MSSQL (2015–2016). Set 3AP's reference architecture on MongoDB for AXA Health, Flawa iQ and Conperi, then moved it to PostgreSQL from Aroov onward once those platforms showed their data was read and written relationally (2015–2022). Ran LIKE MAGIC on PostgreSQL with R2DBC and jOOQ (2022–2026)." + "Set 3AP's reference architecture on MongoDB for AXA Health, Flawa iQ and Conperi, then moved it to PostgreSQL from Aroov onward, the first choice having followed document stores' momentum rather than the shape of the data (2015–2022). Designed AXA Health's MongoDB data model (2017–2019). Designed Flawa iQ's MongoDB data model for its device uplinks and configuration events (2018–2019). Designed Conperi's MongoDB data model for its claims and datasets (2018–2020). Designed Aroov's PostgreSQL schema (2019–2020). Gave each Stay KooooK microservice its own PostgreSQL schema (2020–2022). Put every LIKE MAGIC tenant on one shared PostgreSQL, each tenant's rows isolated by a discriminator built into the platform's framework and again by row-level security in the database, reached reactively through R2DBC and jOOQ (2022–2026)." ], [ "DevOps", - "Expert", + "Proficient", "Wrote the delivery pipeline into 3AP's reference architecture so a project inherited it rather than arranging its own, and established the company's delivery process and stack approvals (2015–2022). Built and ran LIKE MAGIC's production platform on Google Cloud as infrastructure as code, GitHub Actions running unit and integration tests on every change and the same team building and operating it (2022–2026)." ], [ "Domain-driven design", "Proficient", - "Drove UBS Wealth Management & Swiss Bank's business architecture and capability modeling on EMF/Ecore, where a canonical data model was what every interface contract in the division was defined against (2009–2015). Cut LIKE MAGIC's platform along its 12 business domains and the capabilities under each, so service and team boundaries followed the domain rather than the technical layering (2022–2026)." + "Partitioned UBS Wealth Management & Swiss Bank's application architecture into application domains, a taxonomy that classified every application system template and fixed the principles delineating one from another (2009–2015). Cut LIKE MAGIC's platform along its 12 business domains and the capabilities under each, so service boundaries followed the domain rather than the technical layering (2022–2026)." ], [ "Domain-specific language design", "Expert", - "Built DynaRep's repository-based modeling tool and its code generators for UBS mainframe service interfaces (2004–2009). Defined data types, interfaces and service contracts platform-independently on EMF and Xtext for UBS Wealth Management & Swiss Bank (2009–2015). Designed a reusable base vocabulary in Xcore for the Flatland CDO Server and an organization metamodel on top of it, where a derived feature is part of the language rather than code beside it (2014–2022)." + "Designed DynaRep's language for UBS mainframe service interfaces, implemented in Java as an Eclipse plugin with a graphical editor, with the code generators behind it (2004–2009). Designed the Xtext language UBS Wealth Management & Swiss Bank's projects defined their data types, interfaces and components in, platform-independently (2009–2015). Designed a reusable base vocabulary in Xcore for the Flatland CDO Server and an organization metamodel on top of it, where a derived feature is part of the language rather than code beside it (2014–2022)." ], [ "Engineering leadership", "Expert", - "Owned the Analysis & Design discipline in UBS Wealth Management & Business Banking and led the DynaRep project team of ten (2004–2009). Led the team that built UBS Wealth Management & Swiss Bank's Eclipse-based tooling platform and architected the SDLC toolchain several hundred engineers released inside (2009–2015). Owned the frame 3AP's engineering happened in as CTO, the organization and its roles, the reference architecture and stack and the approvals every engagement passed, through its scale to about 70 people in two countries (2015–2022). Set LIKE MAGIC's technology direction and developed its technical leadership from a founding team to 25, holding the platform and AI budget (2022–2026)." + "Owned the Analysis & Design discipline in UBS Wealth Management & Business Banking and led the DynaRep project team of ten (2004–2009). Led the team that built UBS Wealth Management & Swiss Bank's Eclipse-based tooling platform and architected the SDLC toolchain several hundred engineers released inside (2009–2015). Owned the frame 3AP's engineering happened in as CTO, the organization and its roles, the reference architecture and stack and the approvals every engagement passed, through its scale to about 70 people in two countries (2015–2022). Set LIKE MAGIC's technology direction and developed its technical leadership as the company grew from 5 to 25 people, holding the platform and AI budget (2022–2026)." ], [ "Enterprise architecture", "Expert", - "Architected the Integration Architecture Tool Chain for UBS Wealth Management & Swiss Bank around a canonical data model, with a central API and interface-portfolio repository and a role-based review every team's interfaces passed (2009–2015). Presented its design to the Swiss financial-services community at Eclipse Finance Day (2013)." + "Architected the Integration Architecture Tool Chain for UBS Wealth Management & Swiss Bank around a canonical data model, with a central API and interface-portfolio repository and a role-based review every team's interfaces passed (2009–2015). Presented its design to the Swiss financial-services community at Eclipse Finance Day (2013). Set the principles and reference architecture every 3AP client platform was built to, the service cut, the stack and the delivery pipeline decided once for all of them (2015–2022). Mapped LIKE MAGIC's 12 business domains to the capabilities under each and set the platform's direction along that map, API-first with an event and data hub (2022–2026)." ], [ "Event streaming", "Proficient", - "Ran Kafka as the streaming backbone of Conperi's processing pipeline (2018–2020). Built Stay KooooK's services as producers and consumers on Spring Cloud Stream over a Google Cloud Pub/Sub binder, bindings declared per service and the transport swappable underneath (2020–2022). Carried that into LIKE MAGIC at 89M+ platform events a year (2022–2026)." + "Ran Kafka as the streaming backbone of Conperi's processing pipeline, one topic per stage so each service consumed the output of the stage before it (2018–2020). Designed Stay KooooK's topic layout, redelivery handling and consumers that processed each event once, on Spring Cloud Stream over a Google Cloud Pub/Sub binder with bindings declared per service so the transport stayed swappable (2020–2022). Carried that into LIKE MAGIC at 89M+ platform events a year (2022–2026)." ], [ "Event-driven architecture", "Expert", - "Wrote event-driven communication into 3AP's reference architecture, so the platforms built to it carried their work as events (2015–2022). Built Flawa iQ to consume LoRaWAN device uplinks over AMQP (2018–2019). Ran Conperi's pipeline over a Kafka backbone (2018–2020). Separated accepting a message from delivering one on 3AP's platform, a queue per channel, so a slow vendor delays delivery instead of failing the caller (2019–2021). Built Aroov's backend on Google Cloud Pub/Sub as its event hub (2019–2020). Published and consumed every LIKE MAGIC business event through Pub/Sub (2022–2026)." + "Built Flawa iQ to consume LoRaWAN device uplinks over AMQP (2018–2019). Ran Conperi's pipeline over a Kafka backbone (2018–2020). Separated accepting a message from delivering one on 3AP's platform, a queue per channel, so a slow vendor delays delivery instead of failing the caller (2019–2021). Designed Aroov's event flow from Garaio REM, data fetched over SFTP on a schedule, transformed into events and published to Google Cloud Pub/Sub through Spring Cloud Stream (2019–2020). Designed Stay KooooK's integration services to take external events in over webhooks and WebSockets and publish them as internal events to Pub/Sub (2020–2022). Published and consumed every LIKE MAGIC business event through Pub/Sub (2022–2026)." ], [ "FinOps", @@ -1426,22 +1565,22 @@ [ "Frontend development", "Proficient", - "Built the model browser published with the Flatland CDO Server in AngularJS (2014–2022). Built the Swisscom delivery cockpit's React front end (2015). Built the Angular front end over Credit Suisse's Master Data Repository (2016). Carried Lost-Tag into a browser, a hybrid mobile application and a native iOS app in AngularJS (2016–2021). Built AXA Health's React and Next.js frontend (2017–2019). Built a React front end for Flawa iQ's sensor MVP (2018–2019). Owned Stay KooooK's React and TypeScript frontend (2020–2022). Set LIKE MAGIC's frontend on React, TypeScript and MUI (2022–2026)." + "Built the model browser published with the Flatland CDO Server in AngularJS (2014–2022). Built the Swisscom delivery cockpit's React front end (2015). Built the Angular front end over Credit Suisse's Master Data Repository (2016). Carried Lost-Tag into a browser, a hybrid mobile application and a native iOS app in AngularJS (2016–2021). Built AXA Health's React and Next.js frontend (2017–2019). Built a React front end for Flawa iQ's sensor MVP (2018–2019). Owned Stay KooooK's React and TypeScript frontend (2020–2022)." ], [ "Identity and access management", "Proficient", - "Wrote a plugin authenticating the Flatland CDO Server against LDAP, later taking bearer tokens at the REST boundary (2014–2022). Made identity 3AP's platform concern rather than each service's, Keycloak issuing tokens, social sign-in trusted into it and the gateway verifying before routing (2019–2021). Put Keycloak and OAuth2 in front of every route of the Ursina gateway, with a token relay written as a filter of its own because the framework's never refreshed the token (2020). Built zero-trust API boundaries into the LIKE MAGIC platform (2022–2026)." + "Wrote a plugin authenticating the Flatland CDO Server against LDAP, later taking bearer tokens at the REST boundary (2014–2022). Put OAuth 2.0 at the boundary of every service in 3AP's reference architecture (2015–2022). Made identity 3AP's platform concern rather than each service's, Keycloak issuing tokens, social sign-in trusted into it and the gateway verifying before routing (2019–2021). Put Keycloak and OAuth2 in front of every route of the Ursina gateway, with a token relay written as a filter of its own because the framework's never refreshed the token (2020). Built zero-trust API boundaries into the LIKE MAGIC platform, partners on the public API holding OAuth 2.0 tokens scoped to their resources, and guests and employees role-based ones (2022–2026)." ], [ "Incident management", "Proficient", - "Owned incident response for LIKE MAGIC's production platform, from the alert an SLO breach raised to the fix, on a multi-tenant SaaS where one incident reaches every tenant at once (2022–2026)." + "Owned incident response for LIKE MAGIC's production platform on a multi-tenant SaaS where one incident reaches every tenant at once, alerts routed automatically by severity to email, SMS and Slack under site reliability engineering, and critical, security-relevant incidents escalated to a board inside the information-security management (2022–2026)." ], [ "Information security management", "Competent", - "Built LIKE MAGIC's information-security management toward ISO 27001, in progress at exit, with GDPR compliance and zero-trust API boundaries (2022–2026)." + "Built LIKE MAGIC's information-security management toward ISO 27001, in progress at exit, with GDPR compliance, zero-trust API boundaries and an escalation board for critical, security-relevant incidents already running under it (2022–2026)." ], [ "Infrastructure as code", @@ -1451,32 +1590,32 @@ [ "Integration architecture", "Expert", - "Architected UBS Wealth Management & Swiss Bank's Integration Architecture Tool Chain, built to reduce point-to-point connections to an integration bus over defined concepts and open interface standards (2009–2015). Owned AXA Health's complete integration architecture into Adcubum Syrius (2017–2019). Reached from a cloud application into a broadband operator's own HBase and PostgreSQL for Ursina, over tunnels that left neither exposed (2020). Integrated 3 PMS, Mews, Apaleo and Oracle OHIP, 15+ smart-lock systems and 3 AI communication vendors into LIKE MAGIC (2022–2026)." + "Architected UBS Wealth Management & Swiss Bank's Integration Architecture Tool Chain, built to reduce point-to-point connections to an integration bus over defined concepts and open interface standards (2009–2015). Owned AXA Health's complete integration architecture into Adcubum Syrius (2017–2019). Reached from a cloud application into a broadband operator's own HBase and PostgreSQL for Ursina, over tunnels that left neither exposed (2020). Integrated 3 PMS (Mews, Apaleo and Oracle OHIP) and 15+ smart-lock systems into LIKE MAGIC, and opened its API so 3 AI communication vendors integrated themselves (2022–2026)." ], [ "IoT architecture", "Competent", - "Designed Flawa iQ's sensing and LoRaWAN connectivity and the backend ingesting device telemetry into the ERP (2018–2019)." + "Researched Flawa iQ's sensing to RFID-tagged modules, chose LoRaWAN for the MVP after weighing it against GSM and built the backend feeding device telemetry into the ERP (2018–2019)." ], [ "IT governance", - "Expert", + "Proficient", "Set the role-based review process for UBS Wealth Management & Swiss Bank's central interface-portfolio repository (2009–2015). Ran delivery governance and technology-stack approvals at 3AP (2015–2022)." ], [ "IT strategy", "Expert", - "Owned technology strategy and the reference architecture every engagement had to fit as 3AP's CTO (2015–2022). Defined LIKE MAGIC's platform strategy, API-first with a managed public API, an event and data hub and an MCP-server layer as the direction so agents consume the platform directly (2022–2026)." + "Owned technology strategy and the reference architecture every engagement had to fit as 3AP's CTO (2015–2022). Defined LIKE MAGIC's platform strategy, API-first with a managed public API and an event and data hub, evolving toward an MCP-server layer so agents consume the platform directly, and led the Camunda reassessment at renewal, recommending building on the engine before the decision went to removal (2022–2026)." ], [ "Java", "Expert", - "Built UBS's web portals in Java Portlets and JSP on IBM Portal Server (2001–2004). Built DynaRep's Eclipse plugins, web services and generators in Java (2004–2009). Built the Flatland CDO Server as an OSGi product in Java (2014–2022). Put Java and Spring Boot into 3AP's reference architecture so every platform built to it ran on them, Swisscard, AXA Health, Flawa iQ on Java 11, Conperi, Aroov and Stay KooooK (2015–2022). Ran LIKE MAGIC on Spring Boot and WebFlux (2022–2026)." + "Built UBS's web portals in Java Portlets and JSP on IBM Portal Server (2001–2004). Built DynaRep's Eclipse plugins, web services and generators in Java (2004–2009). Built the Flatland CDO Server as an OSGi product in Java (2014–2022). Put Java and Spring Boot into 3AP's reference architecture so every platform built to it ran on them, AXA Health, Flawa iQ on Java 11, Conperi, Aroov and Stay KooooK (2015–2022). Wrote Java on LIKE MAGIC's Spring Boot and WebFlux platform, including the reference implementation of each pattern its architecture used (2022–2026)." ], [ "Knowledge management", "Proficient", - "Established communities of practice at UBS (2004–2009). Built the LIKE MAGIC Mental Model as the organization's shared context layer (2022–2026). Published CompanyGraph so the same layer can be kept as Markdown in a repository with a history (2026)." + "Established communities of practice at UBS and kept the division's methodology and guidance in Rational Method Composer, published as its SDLC instance (2004–2009). Built the LIKE MAGIC Mental Model as the organization's shared context layer (2022–2026). Published CompanyGraph so the same layer can be kept as Markdown in a repository with a history (2026)." ], [ "Legacy modernization", @@ -1486,32 +1625,32 @@ [ "Machine learning", "Familiar", - "Architected the pipeline, the labeling tool and the serving path for Conperi, 3AP's applied-research proof of concept with ZHAW for reading health-insurance invoices (2018–2020). Followed the modeling closely enough to build what it needed, GPU training nodes, a labeled dataset where none existed and held-out evaluation reported per document; the models themselves were ZHAW's" + "Architected the pipeline, the labeling tool and the serving path for Conperi, 3AP's applied-research proof of concept with ZHAW for reading health-insurance invoices, and followed ZHAW's modeling closely enough to supply what it needed — GPU training nodes and a labeled dataset where none existed (2018–2020)." ], [ "Mentoring and coaching", "Proficient", - "Onboarded Java developers onto UBS's portal (2001–2004). Coached UBS project teams in the Analysis & Design methodology and built internal communities of practice (2004–2009). Mentored the engineers at 3AP as it scaled to about 70 people (2015–2022). Developed the technical leadership at LIKE MAGIC as it grew from 5 to 25 (2022–2026)." + "Coached UBS project teams in the Analysis & Design methodology and built internal communities of practice (2004–2009). Ran workshops with UBS engineering teams on the concepts of the Integration Architecture Tool Chain and helped build the UBS Academy's education on the software development lifecycle (2009–2015). Mentored 3AP's engineers through the reference architecture as the company scaled to about 70 people, developing its reference sample, explaining it to each team and guiding the developers building on it (2015–2022). Coached LIKE MAGIC's engineers through the technology gate and the Change Advisory Board, arguing in each review what a decision had to change to fit the architecture and stay compliant (2022–2026)." ], [ "Microservices architecture", "Expert", - "Authored 3AP's microservice reference architecture and built AXA Health, Flawa iQ and Aroov to it: event-driven, 12-factor, the service cut driven by business capability (2015–2022). Cut Lost-Tag into Spring Boot services behind a gateway with service discovery (2016–2021). Carried the architecture into LIKE MAGIC as the platform's own, booking, guest, profile, payment, door access, messaging, operation and analytics services, each contract-first and every vendor behind its own connector with a fallback path (2022–2026)." + "Authored 3AP's microservice reference architecture and built AXA Health to it: event-driven, 12-factor, the service cut driven by business capability (2015–2022). Cut Lost-Tag into Spring Boot services behind a gateway with service discovery (2016–2021). Designed the microservice cut of Flawa iQ's backend (2018–2019). Designed the microservice cut of Conperi's processing pipeline (2018–2020). Designed the microservice cut of Aroov's backend (2019–2020). Cut Stay KooooK into microservices, each holding its own schema in PostgreSQL (2020–2022). Carried the architecture into LIKE MAGIC as the platform's own, cut along its 12 business domains with booking, guest, payment and door access among the services, each contract-first and every vendor behind its own connector with a fallback path (2022–2026)." ], [ "MLOps", - "Competent", - "Set up Conperi's training and serving split, a training service, a registry versioning each model with the metadata to reproduce it and a separate serving service so a model could be replaced without redeploying its consumers (2018–2020). It stayed a proof of concept, so nothing here covers drift, rollback or retraining in production" + "Familiar", + "Set up Conperi's training and serving split — a training service, a registry versioning each model with the metadata to reproduce it and a separate serving service — so a model could be replaced without redeploying its consumers, in a proof of concept that never ran drift, rollback or retraining in production (2018–2020)." ], [ "Model-driven engineering", "Expert", - "Wrote the degree dissertation on Model-Driven Architecture for component-based and service-oriented architecture (2002–2006). Built UBS's DynaRep model-driven repository and code generator (2004–2009). Built the Eclipse-based Integration Architecture Tool Chain for UBS Wealth Management & Swiss Bank on EMF, Xcore, Xtext and Xtend with a CDO repository (2009–2015). Spoke on models as the enterprise's first-class artifacts at Eclipse MDD Day (2010). Presented Eclipse data modeling at enterprise scale at Eclipse Day Florence (2012). Built the Flatland CDO Server, an Eclipse CDO model repository serving any model over REST without code written for that model (2014–2022). Built Credit Suisse's Master Data Repository on it (2016)." + "Wrote the degree dissertation on Model-Driven Architecture for component-based and service-oriented architecture (2002–2006). Built UBS's DynaRep model-driven repository and code generator (2004–2009). Built the Eclipse-based Integration Architecture Tool Chain for UBS Wealth Management & Swiss Bank on EMF, Xcore, Xtext and Xtend with a CDO repository (2009–2015). Presented UBS's enterprise model and its generation path to the Eclipse Modeling Platform Working Group (2010). Spoke on models as the enterprise's first-class artifacts at Eclipse MDD Day (2010). Presented Eclipse data modeling at enterprise scale at Eclipse Day Florence (2012). Built the Flatland CDO Server, an Eclipse CDO model repository serving any model over REST without code written for that model (2014–2022). Built Credit Suisse's Master Data Repository on it from a metamodel of data items, source systems and golden-source mapping that the repository and its front end followed (2016)." ], [ "Multi-tenant SaaS architecture", "Proficient", - "Built and scaled LIKE MAGIC's multi-tenant hospitality SaaS platform, serving 90+ customers, 430+ properties and 16,000+ units across the DACH region as of 2026 (2022–2026)." + "Built and scaled LIKE MAGIC's multi-tenant hospitality SaaS platform to 90+ customers, 430+ properties and 16,000+ units across the DACH region, on one shared infrastructure chosen over a stack per customer for lower operating cost and a single deployment, each tenant isolated by a discriminator in the framework and by row-level security in the database (2022–2026)." ], [ "Observability", @@ -1521,57 +1660,57 @@ [ "Open-source stewardship", "Proficient", - "Published the Flatland CDO Server under the Eclipse Public License and kept it public for eight years, forked by three strangers and used as the foundation of Credit Suisse's Master Data Repository (2014–2022). Published CompanyGraph and GuestGraph as open core under Apache 2.0: a license saying what is open and what could be paid for, conventions for a contributor, specs keeping the rejected alternatives and a release contract of tags and manifests (2026)." + "Published the Flatland CDO Server under the Eclipse Public License in 2014 and kept it public since, forked by strangers building on it and used as the foundation of Credit Suisse's Master Data Repository (2014–2022). Published CompanyGraph and GuestGraph as open core under Apache 2.0, a license saying what is open and what could be paid for, with a release contract of tags and manifests (2026)." ], [ "Organization design", "Proficient", - "Defined UBS's department-wide role model, each role with its tasks and competencies, put through a formal consultation before it took effect (2004–2009). Described 3AP's own organization as a model rather than a chart on the Flatland CDO Server, circles inside circles, roles carrying responsibilities and assignments with a capacity and a validity window, answerable by date (2014–2022). Shaped 3AP's technology organization as it scaled to about 70 people, including a near-shore team in Serbia (2015–2022). Shaped LIKE MAGIC's as it grew to 25 (2022–2026)." + "Defined UBS's department-wide role model, each role with its tasks and competencies, put through a formal consultation before it took effect (2004–2009). Designed 3AP's structure of circles and roles as the company scaled to about 70 people, and kept it as a model on the Flatland CDO Server (2015–2022). Defined LIKE MAGIC's technology roles, the technical architect, the business architect and the site reliability engineer, and led the functional team they formed (2022–2026)." ], [ "Platform engineering", "Expert", - "Architected the SDLC toolchain for UBS Wealth Management & Swiss Bank, Jira, Confluence, GitHub Enterprise, Maven, Jenkins and Sonar (2009–2015). Built Conperi's platform from cluster creation to the Kafka backbone, tracing, the OAuth gateway and GPU nodes (2018–2020). Built the platform 3AP's own projects and internal systems started from, a running gateway, an identity provider and shared capabilities rather than an empty cluster (2019–2021). Owned the LIKE MAGIC platform as the product every team built on (2022–2026)." + "Architected the SDLC toolchain for UBS Wealth Management & Swiss Bank, Jira, Confluence, GitHub Enterprise, Maven, Jenkins and Sonar (2009–2015). Built Conperi's platform from cluster creation to the Kafka backbone, tracing, the OAuth gateway and GPU nodes, and made it self-service so ZHAW's researchers deployed model services and trained without asking 3AP (2018–2020). Built the platform 3AP's own projects and internal systems started from, a running gateway, an identity provider and shared capabilities rather than an empty cluster (2019–2021). Owned the LIKE MAGIC platform as the product every team built on, self-service so a team added a service, schemas or tables and the platform's CI/CD and infrastructure as code carried them to production (2022–2026)." ], [ "Process orchestration", "Expert", - "Owned the Camunda (Zeebe) orchestration of the guest journey at Stay KooooK (2020–2022). Published a runnable sample of the journey on Zeebe with the article on monitoring it (2021). Carried the orchestration into LIKE MAGIC, then led the reassessment at contract renewal and the move off it (2022–2023). Co-presented the platform at CamundaCon in Berlin (2022). Featured in Camunda's published case study citing a 95% self-check-in rate and 7,000 process instances per month (2023)." + "Owned the Camunda (Zeebe) orchestration of the guest journey at Stay KooooK (2020–2022). Published a runnable sample of the journey on Zeebe with the article on monitoring it (2021). Carried the orchestration into LIKE MAGIC, then led the reassessment at contract renewal, recommending building on the engine properly before the decision went to removal (2022–2023). Co-presented the platform at CamundaCon in Berlin, speaking to how it ran and monitored the guest journey on Camunda (2022). Featured in Camunda's published case study citing a 95% self-check-in rate and 7,000 process instances per month (2023)." ], [ "Product discovery", - "Competent", + "Familiar", "Put CompanyGraph and GuestGraph up for scrutiny in the open, each with a talk, a billing model and a stated outcome including a clean no (2026)." ], [ "Product management", - "Proficient", - "Defined and executed LIKE MAGIC's product and platform strategy as co-founder and Head of Technology, API-first with a managed public API, an event and data hub and three AI communication vendors integrated behind one staff inbox (2022–2026)." + "Competent", + "Defined and executed LIKE MAGIC's product and platform strategy as co-founder and Head of Technology, API-first with a managed public API, an event and data hub and three conversational AI providers integrating themselves into the staff solution through that API (2022–2026)." ], [ "Public speaking", "Proficient", - "Spoke at UBS-internal brown-bag sessions on modeling, toolchain and architecture (2009–2015). Spoke at Eclipse MDD Day on models as the enterprise's first-class artifacts (2010). Spoke at Eclipse Day Florence on data modeling at enterprise scale (2012). Spoke at Eclipse Finance Day on interface management in a large enterprise (2012). Spoke at Eclipse Finance Day on the UBS Integration Architecture Tool Chain (2013). Co-presented at CamundaCon in Berlin on how SV Group became a SaaS business on Camunda (2022). Gave a talk each on CompanyGraph and GuestGraph, deck, PDF and audio in German and English (2026)." + "Spoke at Eclipse MDD Day on models as the enterprise's first-class artifacts (2010). Spoke at Eclipse Day Florence on data modeling at enterprise scale (2012). Spoke at Eclipse Finance Day on interface management in a large enterprise (2012). Spoke at Eclipse Finance Day on the UBS Integration Architecture Tool Chain (2013). Co-presented at CamundaCon in Berlin on how SV Group became a SaaS business on Camunda (2022). Published a narrated introduction talk each on CompanyGraph and GuestGraph, deck, PDF and audio in German and English (2026)." ], [ "Requirements engineering", "Expert", - "Owned the Analysis & Design discipline in UBS Wealth Management & Business Banking's RUP rollout, replacing the proprietary process with a market-standard one, writing its modeling methodology in Rational Method Composer and coaching the division's teams into it (2004–2009). Modeled Lost-Tag's actors and their use cases before the platform was built (2016–2021). Writes a reviewed specification before every plan and build on CompanyGraph and GuestGraph (2026)." + "Owned the Analysis & Design discipline in UBS Wealth Management & Business Banking's RUP rollout, replacing the proprietary process with a market-standard one, writing its modeling methodology in Rational Method Composer and coaching the division's teams into it (2004–2009). Modeled Lost-Tag's actors and their use cases before the platform was built (2016–2021)." ], [ "Site reliability engineering", "Proficient", - "Owned site reliability for LIKE MAGIC's production platform across three environments, SLOs defined and alerted on, performance held as volume grew and automated weekly reporting against defined thresholds (2022–2026)." + "Owned site reliability for LIKE MAGIC's production platform, instrumented on Cloud Monitoring and Cloud Trace with alerting driven by defined SLOs and automated by severity to the people responsible (2022–2026)." ], [ "Software architecture", "Expert", - "Led development and delivery of UBS's WPS Portal application (2001–2004). Took software-architect responsibility for UBS's DynaRep platform (2004–2009). Set the reference architecture every 3AP engagement was built to (2015–2022). Owned Stay KooooK's complete front-to-back architecture on reactive Spring Boot WebFlux (2020–2022). Designed GuestGraph's identity-resolution engine from a written specification (2026)." + "Created the software architecture of UBS's WPS Portal application and led its development and delivery (2001–2004). Took software-architect responsibility for UBS's DynaRep platform (2004–2009). Set the reference architecture every 3AP engagement was built to (2015–2022). Owned Stay KooooK's complete front-to-back architecture on reactive Spring Boot WebFlux (2020–2022). Owned LIKE MAGIC's architecture decisions and wrote the reference implementation of each pattern its architecture used (2022–2026). Designed GuestGraph's identity-resolution engine from three written specifications (2026)." ], [ "Software engineering", "Expert", - "Built UBS's intranet and internet portals and the ACE Foundation beneath UBS Quotes (2001–2004). Architected and built DynaRep's Eclipse plugins, web services and code generators (2004–2009). Built the Swisscom delivery cockpit end to end (2015). Set the engineering practice of LIKE MAGIC's Spring Boot WebFlux platform, tests as part of finishing a feature rather than a phase after it (2022–2026)." + "Built UBS's intranet and internet portals and developed features of the ACE Foundation beneath UBS Quotes (2001–2004). Architected and built DynaRep's Eclipse plugins, web services and code generators (2004–2009). Built the Swisscom delivery cockpit end to end (2015). Wrote the reference implementation of each pattern on LIKE MAGIC's Spring Boot WebFlux platform, so a team built a new service from working code, unit and integration tests running on every pipeline (2022–2026)." ], [ "Software modeling (UML, SysML, C4)", @@ -1581,32 +1720,32 @@ [ "Software process engineering", "Expert", - "Owned the Analysis & Design discipline in the Rational Unified Process and Enterprise Unified Process rollout at UBS Wealth Management & Business Banking, replacing the proprietary process with a market standard (2004–2009). Architected the division's SDLC toolchain (2009–2015)." + "Owned the Analysis & Design discipline in the Rational Unified Process and Enterprise Unified Process rollout at UBS Wealth Management & Business Banking, replacing the proprietary process with a market standard, its methodology written in Rational Method Composer, published as the division's SDLC instance and coached into the project teams (2004–2009). Architected the division's SDLC toolchain (2009–2015)." ], [ "Software testing", - "Proficient", - "Built the Swisscard rewrite on Jenkins and JUnit, with tests as engineering practice rather than a phase after the build (2015–2016). Made unit and integration tests part of how a feature was finished across 3AP's client engagements, new behavior covered at the level that catches its regression (2015–2022). Ran them on every LIKE MAGIC pipeline on GitHub Actions (2022–2026)." + "Competent", + "Made unit and integration tests part of how a feature was finished across 3AP's client engagements, new behavior covered at the level that catches its regression (2015–2022). Ran them on every LIKE MAGIC pipeline on GitHub Actions (2022–2026). Held every blust.ch page to browser assertions and its share cards to comparison against the pages they were rendered from (2026)." ], [ "Solution architecture", "Expert", - "Led 3AP's client bids on solution architecture, public tenders under Swiss procurement law included (2015–2022). Designed Flawa iQ's RFID and LoRaWAN solution, delivered as 10 working prototypes (2018–2019). Designed Ursina's runtime, the path into the operator's network and the authentication boundary (2020). Owned Stay KooooK's solution architecture front to back and presented it at the winning pitch (2020–2022)." + "Led 3AP's client bids on solution architecture, public tenders under Swiss procurement law included (2015–2022). Designed Flawa iQ's RFID and LoRaWAN solution, delivered as 10 working prototypes (2018–2019). Designed Ursina's path into the operator's network and its authentication boundary (2020). Owned Stay KooooK's solution architecture front to back and presented it at the winning pitch (2020–2022)." ], [ "Solution selling", "Proficient", - "Led 3AP's client bids across proposal, pitch and negotiation, public tenders under Swiss procurement law included (2015–2022). Won Credit Suisse without a tender, a problem known inside the bank reached through the network and a proposed architecture rather than a specification (2016). Won AXA Health, Flawa iQ, Aroov and Stay KooooK on a solution architecture presented by the people who would build it (2017–2020). Put two open-core products in front of a professional network with a billing model each (2026)." + "Led 3AP's client bids on solution architecture, from technical concept to proposal and pitch, public tenders under Swiss procurement law included (2015–2022). Won Credit Suisse without a tender, a problem known inside the bank reached through the network and a proposed architecture rather than a specification (2016). Won AXA Health, Flawa iQ, Aroov and Stay KooooK by presenting the solution architecture in the pitch as the people who would build it (2017–2020)." ], [ "Spec-driven development", "Proficient", - "Built GuestGraph's identity-resolution engine and CompanyGraph, meta-model, tooling design and this reference instance, from written specifications, each reviewed before its plan and build, under conventions an agent pass enforces (2026)." + "Built GuestGraph's identity-resolution engine and CompanyGraph, meta-model, tooling design and this reference instance, from written specifications, each reviewed before its plan and build, under written conventions every repository in the family vendors (2026)." ], [ "Stakeholder management", - "Proficient", - "Advised clients including Credit Suisse, Swisscard, AXA and Mobiliar as 3AP's CTO and joined each project's ramp-up to negotiate with the client's security and platform organizations (2015–2022). Presented the solution architecture in the winning Aroov pitch (2019). Presented the solution architecture in the winning Stay KooooK pitch (2020)." + "Competent", + "Advised clients including Credit Suisse, Swisscard, AXA and Mobiliar as 3AP's CTO and joined each project's ramp-up to negotiate with the client's security and platform organizations (2015–2022)." ], [ "Storytelling", @@ -1616,12 +1755,12 @@ [ "Technical writing", "Expert", - "Wrote the Analysis & Design methodology and guidance a UBS division worked to (2004–2009). Published an article on process monitoring with BPMN, with the runnable sample it describes (2021). Built the LIKE MAGIC Mental Model as the organization's written context layer (2022–2026). Wrote CompanyGraph's conventions, design specs and worked example, prose other people follow for readers who were not in the room (2026)." + "Wrote the Analysis & Design methodology and guidance a UBS division worked to (2004–2009). Published an article on process monitoring with BPMN, with the runnable sample it describes (2021). Wrote the developer documentation for LIKE MAGIC's public API, which conversational AI providers and other partners integrated against without LIKE MAGIC building the integration (2022–2026). Wrote CompanyGraph's conventions, design specs and worked example, prose other people follow for readers who were not in the room (2026)." ], [ "Vendor management", "Proficient", - "Ran LIKE MAGIC's AI and automation tooling as a managed portfolio: Claude Code team licenses, multi-provider tooling across Claude, Gemini and Copilot and the call to self-host n8n on its own Kubernetes rather than take the hosted service (2022–2026). Led the same call on Camunda at contract renewal, where the platform used a fraction of the engine and the choice was to build on it or leave it (2022–2023)." + "Ran LIKE MAGIC's AI and automation tooling as a managed portfolio: Claude Code team licenses, multi-provider tooling across Claude, Gemini and Copilot and the call to self-host n8n on its own Kubernetes rather than take the hosted service (2022–2026). Led the same call on Camunda at contract renewal, where the platform used a fraction of the engine and the choice was to build on it or leave it, recommending building on it before the decision went to removal (2022–2023)." ] ] } @@ -1706,7 +1845,7 @@ "sections": [ { "heading": "Achievements", - "text": "- Completed UBS's IT-Developer program: an eight-month course from October 1999, followed by a ten-month internship, graduating in March 2001.\n- Laid the foundation for nearly 14 further years and three roles within UBS Group IT.", + "text": "### Context\n\n- Completed UBS's IT-Developer program: an eight-month course from October 1999, followed by a ten-month internship, graduating in March 2001.\n\n### Results\n\n- Laid the foundation for nearly 14 further years and three roles within UBS Group IT.", "tables": [] } ], @@ -1732,14 +1871,13 @@ "skills": [ "Java", "Software engineering", - "Mentoring and coaching", "Software architecture" ] }, "sections": [ { "heading": "Achievements", - "text": "- Developed intranet and internet web portals on IBM Portal Server (Java Portlets, JSP, XML).\n- Led development and project delivery of the WPS Portal application, including its maintenance and extension.\n- Co-developed the ACE Foundation, the base that UBS Quotes and the Client Advisor Workbench were built on.\n- Onboarded Java developers onto the portal.", + "text": "### Context\n\n- Developed intranet and internet web portals on IBM Portal Server (Java Portlets, JSP, XML).\n\n### Leadership\n\n- Led the WPS Portal application's development and project delivery, including its maintenance and extension.\n- Onboarded Java developers onto the portal.\n\n### Architecture\n\n- Created the software architecture of the WPS Portal application, so domain-specific applications developed by other departments could be integrated into it.\n\n### Engineering\n\n- Developed features of the ACE Foundation, the base that UBS Quotes and the Client Advisor Workbench were built on.", "tables": [] } ], @@ -1763,14 +1901,13 @@ "end": "2006", "organization": "Fachhochschule Aargau", "skills": [ - "Model-driven engineering", - "Software architecture" + "Model-driven engineering" ] }, "sections": [ { "heading": "Achievements", - "text": "- Earned a four-year part-time degree awarded by the University of Applied Sciences of Argovia (Fachhochschule Aargau) and taught at AKAD, carrying the protected title Dipl. Wirtschaftsinformatiker FH.\n- Majored in Technology Engineering: software and web engineering, systems and network programming, IT management.\n- Combined computer science, business administration and project management.\n- Wrote the degree dissertation on Model-Driven Architecture (MDA) for component-based and service-oriented architecture (SOA).", + "text": "### Context\n\n- Earned a four-year part-time degree awarded by the University of Applied Sciences of Argovia (Fachhochschule Aargau) and taught at AKAD, carrying the protected title Dipl. Wirtschaftsinformatiker FH.\n- Majored in Technology Engineering: software and web engineering, systems and network programming, IT management.\n- Combined computer science, business administration and project management.\n\n### Sharing\n\n- Wrote the degree dissertation on Model-Driven Architecture (MDA) for component-based and service-oriented architecture (SOA).", "tables": [] } ], @@ -1810,14 +1947,13 @@ "Domain-specific language design", "Software architecture", "Integration architecture", - "Legacy modernization", - "Database design" + "Legacy modernization" ] }, "sections": [ { "heading": "Achievements", - "text": "- Owned the Analysis & Design discipline in the rollout of a software development life cycle based on the Rational Unified Process and the Enterprise Unified Process for UBS Wealth Management & Business Banking (WM&BB), replacing the proprietary engineering process with a market-standard one that the division's project teams then worked to.\n- Developed methodology and guidance for service and data modeling (Rational Method Composer, UML) — how a requirement was elicited, written and carried into a design the delivery teams worked from.\n- Architected and built “DynaRep – Dynamic Repository”, a repository-based modeling tool for managing UBS mainframe service interfaces — Eclipse plugins, web services and code generators producing the COBOL/Java service implementations (Java, SOAP, Oracle, MDSD).\n- Took on software-architect and project-management responsibility for the DynaRep platform, leading its project team of ten.\n- Defined the department-wide role model — each role with its tasks and the competencies it carried — and put it through a formal consultation before it took effect.\n- Worked with the Eclipse Modeling project from inside the methodology work — bringing requirements to it, reviewing concepts and building prototypes — and the cross-industry working group grew out of that cooperation.\n- Joined the division's Java Chief Developer committee and led it for two years.\n- Coached project teams in applying the methodology and built internal communities of practice.", + "text": "### Context\n\n- Owned the Analysis & Design discipline in the rollout of a software development life cycle based on the Rational Unified Process and the Enterprise Unified Process for UBS Wealth Management & Business Banking (WM&BB), replacing the proprietary engineering process with a market-standard one that the division's project teams then worked to.\n\n### Leadership\n\n- Took on software-architect and project-management responsibility for the DynaRep platform, leading its project team of ten.\n- Defined the department-wide role model — each role with its tasks and the competencies it carried — and put it through a formal consultation before it took effect.\n- Joined the division's Java Chief Developer committee and led it for two years.\n- Coached project teams in applying the methodology and built internal communities of practice.\n\n### Architecture\n\n- Architected and built “DynaRep – Dynamic Repository”, a repository-based modeling tool for managing UBS mainframe service interfaces — Eclipse plugins, web services and code generators producing the COBOL/Java service implementations (Java, SOAP, Oracle, MDSD).\n- Designed the domain-specific language DynaRep's interfaces were modeled in, implemented in Java as an Eclipse plugin with a graphical editor.\n\n### Ways of working\n\n- Developed methodology and guidance for service and data modeling (Rational Method Composer, UML) — how a requirement was elicited, written and carried into a design the delivery teams worked from.\n- Kept that guidance in Rational Method Composer and published it as the division's SDLC instance, the one place project teams looked up how a discipline was done.\n\n### Results\n\n- Worked with the Eclipse Modeling project from inside the methodology work — bringing requirements to it, reviewing concepts and building prototypes — and the cross-industry working group grew out of that cooperation.", "tables": [] } ], @@ -1844,7 +1980,6 @@ "Enterprise architecture", "Business architecture", "Domain-driven design", - "Agile delivery", "Model-driven engineering", "Domain-specific language design", "Integration architecture", @@ -1855,14 +1990,15 @@ "CI/CD", "Engineering leadership", "Software process engineering", - "Public speaking", - "Community building" + "Community building", + "Software architecture", + "Mentoring and coaching" ] }, "sections": [ { "heading": "Achievements", - "text": "- Architected the SDLC toolchain for UBS Wealth Management & Swiss Bank — the environment several hundred engineers across the division planned, built and released in (Jira, Confluence, GitHub Enterprise, Maven, Jenkins, Sonar), including the offshore-capable setup for decentralized agile development and its security and network design for external partner access.\n- Created the application architecture of the Integration Architecture Tool Chain for the division, built to reduce large numbers of point-to-point connections to an integration bus over defined concepts and open interface standards.\n- Cut it into three parts along the roles that used it: the canonical data model and the conformance measurement, both for the business domain architects who governed that model, and interface design for the developers and software architects who specified their interfaces against it.\n- The data model part held the canonical model itself and the platform-independent definitions of data types, interfaces and service contracts, generated the XML-Schema and WSDL artifacts from them, kept the central API and interface-portfolio repository and ran the role-based review every team's interfaces had to pass.\n- The conformance part analyzed source code across the estate, the mainframe included, producing EMF graphs held in the CDO model repository and an automated metric for the technical coupling of software components and applications, which identified interactions between subsystems not conforming to the architecture's specifications.\n- Built the whole on Eclipse EMF, Xcore, Xtext and Xtend with a CDO model repository, drawing on outcomes from the Eclipse Modeling Platform Working Group.\n- Managed the tool portfolio supporting the software development process.\n- Drove the division's business architecture and capability modeling on EMF/Ecore, representing UBS internationally in the Eclipse Modeling Platform Working Group alongside Airbus, Ericsson, Alcatel-Lucent, SBB and SWIFT among others.\n- Co-organized the Eclipse events that brought the open-source modeling community to UBS in Zürich — MDD Day in 2010, then the Eclipse Finance Days, the Swiss forum for cross-company exchange on open source in financial services, in 2012 and 2014.\n- Built UBS's network into open-source communities and their standards, assessing where the firm could adopt them.\n- Continued on the division's Java Chief Developer committee, co-leading it for five years — the forum in which its lead engineers set common practice.\n- Led the team that implemented the tooling platform, an integrated Eclipse Modeling Framework stack built for model-based engineering, scalability and collaboration.\n- Scrum Master and technical lead in central WM&SB initiatives.\n- Spoke at UBS-internal brown-bag sessions on modeling, toolchain and architecture.", + "text": "### Leadership\n\n- Continued on the division's Java Chief Developer committee, co-leading it for five years — the forum in which its lead engineers set common practice.\n- Led the team that implemented the tooling platform, an integrated Eclipse Modeling Framework stack built for model-based engineering, scalability and collaboration.\n\n### Architecture\n\n- Architected the SDLC toolchain for UBS Wealth Management & Swiss Bank — the environment several hundred engineers across the division planned, built and released in (Jira, Confluence, GitHub Enterprise, Maven, Jenkins, Sonar), including the offshore-capable setup for decentralized agile development and its security and network design for external partner access.\n- Created the application architecture of the Integration Architecture Tool Chain for the division, built to reduce large numbers of point-to-point connections to an integration bus over defined concepts and open interface standards.\n- Cut it into three parts along the roles that used it: the canonical data model and the conformance measurement, both for the business domain architects who governed that model, and interface design for the developers and software architects who specified their interfaces against it.\n- The data model part held the canonical model itself and the platform-independent definitions of data types, interfaces and service contracts, generated the XML-Schema and WSDL artifacts from them, kept the central API and interface-portfolio repository and ran the role-based review every team's interfaces had to pass.\n- The conformance part analyzed source code across the estate, the mainframe included, producing EMF graphs held in the CDO model repository and an automated metric for the technical coupling of software components and applications, which identified interactions between subsystems not conforming to the architecture's specifications.\n- Designed the textual language, built on Xtext, that projects defined their data types, interfaces and components in.\n- Drove the division's business architecture and capability modeling on EMF/Ecore, representing UBS internationally in the Eclipse Modeling Platform Working Group alongside Airbus, Ericsson, Alcatel-Lucent, SBB and SWIFT among others.\n- Modeled the division's business capabilities, concepts, processes and actors as parts of one enterprise model, which architects used to steer new projects toward decisions that fit the enterprise model.\n- Partitioned the application architecture into application domains, which classified each application system template and fixed the principles that delineated one from another.\n\n### Engineering\n\n- Built the Integration Architecture Tool Chain on Eclipse EMF, Xcore, Xtext and Xtend with a CDO model repository, drawing on outcomes from the Eclipse Modeling Platform Working Group.\n- Generated each project's build and continuous integration from its design and the reference architecture, on the Jenkins and Sonar the toolchain provided.\n\n### Ways of working\n\n- Managed the tool portfolio supporting the software development process.\n- Scrum Master and technical lead in central WM&SB initiatives.\n\n### Sharing\n\n- Co-organized the Eclipse events that brought the open-source modeling community to UBS in Zürich — MDD Day in 2010, then the Eclipse Finance Days, the Swiss forum for cross-company exchange on open source in financial services, in 2012 and 2014.\n- Built UBS's network into open-source communities and their standards, assessing where the firm could adopt them.\n- Spoke at UBS-internal brown-bag sessions on modeling, toolchain and architecture.\n- Ran workshops with the engineering teams on the concepts behind the Integration Architecture Tool Chain.\n- Helped build the UBS Academy's education on the software development lifecycle, integration architecture one part of it.", "tables": [] }, { @@ -1901,7 +2037,7 @@ "sections": [ { "heading": "Achievements", - "text": "- Co-organized Eclipse MDD Day on October 28, 2010 and hosted it at UBS in Zürich-Altstetten, with itemis co-supporting — the first of the Eclipse events brought to UBS.\n- Presented “User Story: Models as First Class Citizens in the Enterprise”, on a program with Ed Merks (EMF project lead), Sven Efftinge (Xtext project lead), Eike Stepper (CDO project lead) and practitioners from SAP, Robert Bosch, RWE and Nord/LB.", + "text": "### Context\n\n- Co-organized Eclipse MDD Day on October 28, 2010 and hosted it at UBS in Zürich-Altstetten, with itemis co-supporting — the first of the Eclipse events brought to UBS.\n- Presented “User Story: Models as First Class Citizens in the Enterprise”, on a program with Ed Merks (EMF project lead), Sven Efftinge (Xtext project lead), Eike Stepper (CDO project lead) and practitioners from SAP, Robert Bosch, RWE and Nord/LB.\n\n### Sharing\n\n- Argued that requirements, analysis and design belong in formal models rather than prose, and demonstrated a proof-of-concept SDLC modeling platform on CDO and EMF.\n\n### Results\n\n- Named what the proof of concept had shown the Eclipse Modeling Platform still lacked: compare and merge for parallel work, traceability across metamodels and metamodel evolution that migrates existing instances.", "tables": [] }, { @@ -1975,13 +2111,14 @@ "organization": "Eclipse Foundation", "skills": [ "Model-driven engineering", - "Community building" + "Domain-specific language design", + "Business architecture" ] }, "sections": [ { "heading": "Achievements", - "text": "- Represented UBS in a cross-industry Eclipse Foundation initiative to build an integrated, open-source modeling toolchain — contributing alongside Airbus, Alcatel-Lucent, Atos, CEA LIST, Ericsson, Euranova, Fraunhofer FOKUS, Geensys, Generic Concept, itemis, Obeo, SBB and SWIFT.", + "text": "### Context\n\n- Represented UBS in a cross-industry Eclipse Foundation initiative to build an integrated, open-source modeling toolchain — contributing alongside Airbus, Alcatel-Lucent, Atos, CEA LIST, Ericsson, Euranova, Fraunhofer FOKUS, Geensys, Generic Concept, itemis, Obeo, SBB and SWIFT.\n\n### Sharing\n\n- Presented how UBS used the platform, in June 2010: one shared enterprise model assembled from Ecore metamodels designed one per problem domain (business capabilities, concepts, processes, actors, components, interfaces, data types), constrained in OCL and governed as it changed.\n- Showed each project refining that model and initializing its development and continuous integration from the design and a reference architecture by model-to-model and model-to-text transformation.", "tables": [] }, { @@ -2061,7 +2198,7 @@ "sections": [ { "heading": "Achievements", - "text": "- Board member of the Swiss Eclipse User Group — the Eclipse Special Interest Group within JUG Switzerland — from 2011 to 2014.\n- Co-organized the annual Eclipse DemoCamp (Zürich) and Eclipse Finance Day.", + "text": "### Context\n\n- Board member of the Swiss Eclipse User Group — the Eclipse Special Interest Group within JUG Switzerland — from 2011 to 2014.\n\n### Sharing\n\n- Co-organized the annual Eclipse DemoCamp (Zürich) and Eclipse Finance Day.", "tables": [] }, { @@ -2135,7 +2272,7 @@ "sections": [ { "heading": "Achievements", - "text": "- Presented “Eclipse Data Modeling at an Enterprise Scale” at Eclipse Day Florence on May 4, 2012, co-presented with Eike Stepper, lead of the Eclipse CDO project.\n- Covered the conformance half of the work as well as the modeling: source-code analysis rendered as EMF graphs, checked against the architecture's rules for interactions that broke a defined boundary.", + "text": "### Context\n\n- Presented “Eclipse Data Modeling at an Enterprise Scale” at Eclipse Day Florence on May 4, 2012, co-presented with Eike Stepper, lead of the Eclipse CDO project.\n\n### Sharing\n\n- Covered the conformance half of the work as well as the modeling: source-code analysis rendered as EMF graphs, checked against the architecture's rules for interactions that broke a defined boundary.", "tables": [] } ], @@ -2162,15 +2299,15 @@ "role": "Speaker", "skills": [ "Integration architecture", - "Software modeling (UML, SysML, C4)", "Model-driven engineering", - "Public speaking" + "Public speaking", + "Domain-specific language design" ] }, "sections": [ { "heading": "Achievements", - "text": "- Presented “Interface Management in a Large Enterprise” at Eclipse Finance Day on October 16, 2012 in Zürich, on UBS's Integration Architecture initiative: an end-to-end process and tooling to identify, specify, design and govern the interfaces between parts of the IT system.\n- The published abstract describes what the toolchain did: capture actual communication patterns through source-code analysis, produce EMF-based graphs that identify non-conformant interactions, hold platform-independent data types and interface specifications with policies, check conformance to architectural rules, generate XML-Schema and WSDL and run governance through a central repository with role-based reviews.", + "text": "### Context\n\n- Presented “Interface Management in a Large Enterprise” at Eclipse Finance Day on October 16, 2012 in Zürich, on UBS's Integration Architecture initiative: an end-to-end process and tooling to identify, specify, design and govern the interfaces between parts of the IT system.\n\n### Sharing\n\n- The published abstract describes what the toolchain did: capture actual communication patterns through source-code analysis, produce EMF-based graphs that identify non-conformant interactions, hold platform-independent data types and interface specifications with policies, check conformance to architectural rules, generate XML-Schema and WSDL and run governance through a central repository with role-based reviews.\n- Demonstrated the toolchain live: the textual language projects wrote their data types and components in, built on Xtext, and the enterprise repository on CDO holding the UBS component model at about 25,000 objects and 50,000 references, around 1% of them changing daily.", "tables": [] }, { @@ -2244,7 +2381,7 @@ "sections": [ { "heading": "Achievements", - "text": "- Presented “UBS Integration Architecture Tool Chain” at Eclipse Finance Day on November 5, 2013 at the Credit Suisse Tower in Zürich — the integration and interface toolchain built for UBS Wealth Management & Swiss Bank.\n- Where the 2012 talk was the initiative, this one was the toolchain's design: coarse-grained interfaces defined and maintained platform-independently with code generators producing the platform-specific implementations, a clear separation of interface definition from implementation from instantiation, versioning and ownership and cross-references as properties of the artifacts themselves and continuous integration over the models.", + "text": "### Context\n\n- Presented “UBS Integration Architecture Tool Chain” at Eclipse Finance Day on November 5, 2013 at the Credit Suisse Tower in Zürich — the integration and interface toolchain built for UBS Wealth Management & Swiss Bank.\n\n### Sharing\n\n- Where the 2012 talk was the initiative, this one was the toolchain's design: coarse-grained interfaces defined and maintained platform-independently with code generators producing the platform-specific implementations, a clear separation of interface definition from implementation from instantiation, versioning and ownership and cross-references as properties of the artifacts themselves and continuous integration over the models.\n- Presented the standardized interface layer between the front applications and the core banking system as a design and governance matter at enterprise level, every model owned by a component of the UBS component model and cross-referenceable from another context only where marked shared.", "tables": [] }, { @@ -2316,7 +2453,7 @@ "sections": [ { "heading": "Achievements", - "text": "- Co-organized Eclipse Finance Day on October 31, 2014 for the JUG Swiss Eclipse User Group, alongside Matthias Zimmermann of BSI and Serano Colameo of itemis.\n- Brought the conference to UBS in Zürich Altstetten, giving Swiss financial institutions a venue to compare open-source practice.", + "text": "### Context\n\n- Co-organized Eclipse Finance Day on October 31, 2014 for the JUG Swiss Eclipse User Group, alongside Matthias Zimmermann of BSI and Serano Colameo of itemis.\n- Brought the conference to UBS in Zürich Altstetten, giving Swiss financial institutions a venue to compare open-source practice.", "tables": [] } ], @@ -2345,7 +2482,6 @@ "Domain-specific language design", "Data modeling", "Frontend development", - "Organization design", "API design", "Identity and access management", "Java" @@ -2354,7 +2490,7 @@ "sections": [ { "heading": "Achievements", - "text": "- Published the server in August 2014 and kept it public since, under the Eclipse Public License: seven people have starred it and three have forked it to build on, none of whom he knows.\n- Published a client beside it that browses any model the server holds rather than one model in particular, so a new metamodel is explorable without a screen built for it, and the organization above was worked with through that client.\n- Ran it in a bank. Credit Suisse's Master Data Repository was built on this server in 2016, which is a heavier kind of adoption than a fork: a regulated institution depending on it, and the same person answering for both the product and the delivery.\n- Made the REST interface generic by going through EMF's reflective API rather than generated accessors, so a model added to the repository is readable and writable the same day without an endpoint written for its types.\n- Shipped it as something to run rather than assemble — an OSGi product with its own target platform, build and product tests, packaged as a container image — because a model repository that takes a week to stand up is one nobody tries.\n- Wrote a plugin authenticating CDO sessions against LDAP, and later took bearer tokens at the REST boundary, so the repository could sit behind the same identity as everything around it.\n- Designed a base vocabulary every model on top inherits — identity, naming, description, comments, hyperlinks, free-form properties, ratings and a global search marker — so the models above it describe their own domain and nothing else.\n- Described 3AP's own organization in that vocabulary: circles nested inside circles, roles carrying responsibilities and an assignment joining a person to a role in a circle with a capacity and a validity window, which is what makes the structure answerable by date rather than only as it stands today.\n- Kept two kinds of time apart, which is what makes the model answerable rather than merely current. A role assignment carries the dates it was in force, and every derived figure has a by-date twin, so the organization can be asked what it looked like on a given day. Underneath, the repository keeps every revision and the interface takes a point in time, so it can also be asked what it said on a given day — and refuses a write against a past one, because history is not a thing to correct.\n- Derived the questions a management team actually asks from that model instead of maintaining answers by hand — a circle's capacity including everything nested under it, who leads or deputizes where, which roles are assigned but unmatched and which are defined and unfilled.", + "text": "### Context\n\n- Published the server in August 2014 and kept it public since, under the Eclipse Public License, starred and forked by strangers building on it.\n\n### Architecture\n\n- Published a client beside it that browses any model the server holds rather than one model in particular, so a new metamodel is explorable without a screen built for it, and the organization above was worked with through that client.\n- Made the REST interface generic by going through EMF's reflective API rather than generated accessors, so a model added to the repository is readable and writable the same day without an endpoint written for its types.\n- Designed a base vocabulary every model on top inherits — identity, naming, description, comments, hyperlinks, free-form properties, ratings and a global search marker — so the models above it describe their own domain and nothing else.\n- Wrote the base vocabulary and the organization metamodel in Xcore, so a derived figure such as free capacity is a feature of the language rather than code beside it.\n- Described 3AP's own organization in that vocabulary: circles nested inside circles, roles carrying responsibilities and an assignment joining a person to a role in a circle with a capacity and a validity window, which is what makes the structure answerable by date rather than only as it stands today.\n- Kept two kinds of time apart, which is what makes the model answerable rather than merely current. A role assignment carries the dates it was in force, and every derived figure has a by-date twin, so the organization can be asked what it looked like on a given day. Underneath, the repository keeps every revision and the interface takes a point in time, so it can also be asked what it said on a given day — and refuses a write against a past one, because history is not a thing to correct.\n- Derived the questions a management team actually asks from that model instead of maintaining answers by hand — a circle's capacity including everything nested under it, who leads or deputizes where, which roles are assigned but unmatched and which are defined and unfilled.\n\n### Engineering\n\n- Shipped it as something to run rather than assemble — an OSGi product with its own target platform, build and product tests, packaged as a container image — because a model repository that takes a week to stand up is one nobody tries.\n- Wrote a plugin authenticating CDO sessions against LDAP, and later took bearer tokens at the REST boundary, so the repository could sit behind the same identity as everything around it.\n\n### Results\n\n- Ran it in a bank. Credit Suisse's Master Data Repository was built on this server in 2016, which is a heavier kind of adoption than a fork: a regulated institution depending on it, and the same person answering for both the product and the delivery.", "tables": [] }, { @@ -2417,6 +2553,7 @@ "skills": [ "IT strategy", "IT governance", + "Enterprise architecture", "Engineering leadership", "Stakeholder management", "Consulting", @@ -2435,13 +2572,14 @@ "Software architecture", "Java", "Database design", - "Event-driven architecture" + "Agile delivery", + "Identity and access management" ] }, "sections": [ { "heading": "Achievements", - "text": "- Co-founded 3AP AG in November 2014 and went operative in February 2015 after leaving UBS; member of the management team.\n- The company scaled from 5 to about 70 people, including a near-shore team in Serbia.\n- Owned technology strategy, reference architecture and delivery governance.\n- Set the reference architecture and technology stack every client engagement had to fit, and joined the ramp-up of each new project to negotiate with the client's security and platform organizations so the delivery fit their environment.\n- Wrote that reference architecture as an event-driven, 12-factor microservice design on Java and Spring Boot, with the service cut driven by business capability, its delivery pipeline part of the definition rather than a thing each project arranged for itself — the shape AXA Health, Flawa iQ, Conperi, Aroov and Stay KooooK were each built to, and the one that platform carried into LIKE MAGIC.\n- Put the reference architecture on MongoDB and later moved it to PostgreSQL. The first choice followed the momentum document stores had at the time rather than the shape of the data AXA Health, Flawa iQ and Conperi actually held; from Aroov onward the default was relational, and it has stayed relational through Stay KooooK and LIKE MAGIC.\n- Targeted Kubernetes and no cloud in particular, which is why the same architecture ran on Google Cloud at Aroov and Stay KooooK and on AXA's own on-premise OpenShift: a client's platform was a deployment decision rather than an architectural one.\n- Delivered flagship client platforms as lead architect and hands-on engineer across insurance, real-estate, IoT and hospitality.\n- One of them, the SV Group hospitality platform, became LIKE MAGIC — a spin-off from SV Group.\n- Created technical concepts, proposals and pitches.\n- Advised clients including Credit Suisse, Swisscard, AXA and Mobiliar (the driver behind Aroov).\n- Led client bids with a focus on solution architecture, across both public and private sector — including public tenders under Swiss procurement law / WTO rules.\n- Mentored the engineers as the company grew from 5 to about 70, the near-shore team in Serbia included.\n- Established software-delivery processes, technology-stack approvals and sustainable DevOps practices.\n- Made unit and integration tests part of how a feature was finished rather than a phase after it — new behavior covered at the level that catches its regression the next time the code is touched, which is where the coverage earns its keep.", + "text": "### Context\n\n- Co-founded 3AP AG in November 2014 and went operative in February 2015 after leaving UBS; member of the management team.\n\n### Leadership\n\n- Owned technology strategy, reference architecture and delivery governance.\n- Designed the company's structure of circles and roles as it grew, kept as a model on the Flatland CDO Server so capacity and gaps could be read from it rather than kept by hand.\n- Set the reference architecture and technology stack every client engagement had to fit, and joined the ramp-up of each new project to negotiate with the client's security and platform organizations so the delivery fit their environment.\n- Delivered flagship client platforms as lead architect and hands-on engineer across insurance, real-estate, IoT and hospitality.\n- Created technical concepts, proposals and pitches.\n- Advised clients including Credit Suisse, Swisscard, AXA and Mobiliar (the driver behind Aroov), diagnosing the client's current system before recommending anything.\n- Led client bids with a focus on solution architecture, across both public and private sector — including public tenders under Swiss procurement law / WTO rules.\n- Mentored the engineers through the reference architecture as the company grew from 5 to about 70, the near-shore team in Serbia included, by developing its reference sample, explaining it to each team and guiding the developers building on it.\n\n### Architecture\n\n- Wrote that reference architecture as an event-driven, 12-factor microservice design on Java and Spring Boot, with the service cut driven by business capability, its delivery pipeline part of the definition rather than a thing each project arranged for itself — the shape AXA Health, Flawa iQ, Conperi, Aroov and Stay KooooK were each built to, and the one that platform carried into LIKE MAGIC.\n- Fixed how every service in it exposed itself: REST specified contract-first in OpenAPI, with OAuth 2.0 at the boundary.\n- Put the reference architecture on MongoDB and later moved it to PostgreSQL. The first choice followed the momentum document stores had at the time rather than the shape of the data AXA Health, Flawa iQ and Conperi actually held; from Aroov onward the default was relational, and it has stayed relational through Stay KooooK and LIKE MAGIC.\n- Targeted Kubernetes and no cloud in particular, which is why the same architecture ran on Google Cloud at Aroov and Stay KooooK and on AXA's own on-premise OpenShift: a client's platform was a deployment decision rather than an architectural one.\n\n### Engineering\n\n- Moved the reference architecture's delivery pipeline as the tooling moved, from Jenkins at Flawa iQ and Lost-Tag to CircleCI at Conperi and Ursina and then to GitHub Actions.\n- Engineered the reference deployment of that architecture on Google Kubernetes Engine, so the target platform was a running cluster and not a diagram.\n\n### Ways of working\n\n- Established software-delivery processes, technology-stack approvals and sustainable DevOps practices.\n- Ran every project in Scrum, agile delivery being what the company's name stood for: As Agile As Possible.\n- Made unit and integration tests part of how a feature was finished rather than a phase after it — new behavior covered at the level that catches its regression the next time the code is touched, which is where the coverage earns its keep.\n\n### Results\n\n- The company scaled from 5 to about 70 people, including a near-shore team in Serbia.\n- One of the flagship client platforms, the SV Group hospitality platform, became LIKE MAGIC — a spin-off from SV Group.", "tables": [] }, { @@ -2513,16 +2651,14 @@ "skills": [ "API design", "Java", - "Software testing", - "Database design", - "CI/CD", - "Legacy modernization" + "Legacy modernization", + "Integration architecture" ] }, "sections": [ { "heading": "Achievements", - "text": "- One of 3AP's first client mandates: replaced a proprietary Informatica Data Services SOAP layer fronting the core platform with a Spring Boot / Spring WS implementation — preserving the existing WSDL contract so no consumer had to change.\n- Built on Spring Boot / Spring Data / Spring WS with Jenkins, JUnit and MSSQL.", + "text": "### Context\n\n- One of 3AP's first client mandates: replaced a proprietary Informatica Data Services SOAP layer fronting the core platform with a Spring Boot / Spring WS implementation — preserving the existing WSDL contract so no consumer had to change.\n\n### Engineering\n\n- Built on Spring Boot / Spring Data / Spring WS with Jenkins, JUnit and MSSQL.", "tables": [] } ], @@ -2557,7 +2693,7 @@ "sections": [ { "heading": "Achievements", - "text": "- Early 3AP client mandate for Swisscom: as integration architect and developer, built a real-time cockpit that surfaces agile delivery status on a TV dashboard.\n- Integrated and aggregated data from Rally (agile ALM) and HP Quality Center (test management) via MuleSoft (Mule ESB): the Agile Release Train broken down into sprints per project/team, and test coverage against Quality Center.\n- Built with MuleSoft and the Rally and Quality Center REST/SOAP APIs, with a React front end putting the release train on a wall-mounted screen.", + "text": "### Context\n\n- Early 3AP client mandate for Swisscom: as integration architect and developer, built a real-time cockpit that surfaces agile delivery status on a TV dashboard.\n\n### Engineering\n\n- Integrated and aggregated data from Rally (agile ALM) and HP Quality Center (test management) via MuleSoft (Mule ESB): the Agile Release Train broken down into sprints per project/team, and test coverage against Quality Center.\n- Built with MuleSoft and the Rally and Quality Center REST/SOAP APIs, with a React front end putting the release train on a wall-mounted screen.\n- Built the backend on Spring Boot in Java over a CDO model repository: the Mule flows transformed the Rally and Quality Center data into facts held in CDO, and an API designed for the cockpit exposed those facts to the React front end.", "tables": [] } ], @@ -2588,13 +2724,14 @@ "Solution architecture", "Solution selling", "Software architecture", - "Frontend development" + "Frontend development", + "Data modeling" ] }, "sections": [ { "heading": "Achievements", - "text": "- Built the Master Data Repository (MDR) for Credit Suisse Client Data Management — managing data items and classifying their source systems so data stewards could be assigned, and mapping the distribution of data across the core systems (golden source vs. slave), identified and visualized for governance.\n- Delivered to satisfy a FINMA regulatory requirement.\n- Won without a tender: the problem was known inside the bank and reached 3AP through its network, and the work followed a proposed solution architecture rather than a specification.\n- Implemented on the Flatland CDO Server rather than on stock Eclipse CDO — the model repository published as open source two years earlier, brought to a bank as the foundation of paid work — with a front end built along the same lines as the generic model browser published beside that server, and fed by static source-code analysis and several data sources to discover and connect the model.", + "text": "### Context\n\n- Built the Master Data Repository (MDR) for Credit Suisse Client Data Management — managing data items and classifying their source systems so data stewards could be assigned, and mapping the distribution of data across the core systems (golden source vs. slave), identified and visualized for governance.\n\n### Leadership\n\n- Delivered to satisfy a FINMA regulatory requirement.\n\n### Architecture\n\n- Designed the metamodel of data items, source systems and their golden-source mapping, and let the repository and its front end follow from it.\n\n### Engineering\n\n- Implemented on the Flatland CDO Server rather than on stock Eclipse CDO — the model repository published as open source two years earlier, brought to a bank as the foundation of paid work — with a front end built along the same lines as the generic model browser published beside that server, and fed by static source-code analysis and several data sources to discover and connect the model.\n- Built the ingestion that filled it from two sources: the output of the bank's existing source-code analysis and the database schemas of the core systems, both read and transformed on the way in.\n\n### Results\n\n- Won without a tender: the problem was known inside the bank and reached 3AP through its network, and the work followed a proposed solution architecture rather than a specification.", "tables": [] }, { @@ -2673,7 +2810,7 @@ "sections": [ { "heading": "Achievements", - "text": "- A consumer lost-and-found service for Digibonum AG that is still running: an owner registers a tagged valuable, a finder scans the tag or types its identifier on the website and the owner is notified without either side seeing the other's details until they agree to meet.\n- Modeled the system before building it and kept the model with it — the two actors, the use cases each of them has, the domain classes and a component view naming every service and the interface it offers, in UML alongside the code rather than in a document beside it.\n- Cut the platform into Spring Boot services behind a gateway with service discovery, generated from JHipster so that a new service arrived with its build, its tests and its security already wired.\n- Carried the same product into a browser, a hybrid mobile application and a native iOS app with a barcode scanner, all against one set of service interfaces, and released the iOS app to the store from a scripted pipeline.\n- Delivered it in five languages, Georgian among them, and integrated the shop the tags are sold through rather than building a second one.\n- Ran it on Cloud Foundry for the first years and saw it through to Kubernetes on Google Cloud, a platform outliving two runtimes underneath it.\n- Stayed with it for five years and 621 commits, from the first setup to the last rebrand, which is the part a proof of concept never tests.", + "text": "### Context\n\n- A consumer lost-and-found service for Digibonum AG that is still running: an owner registers a tagged valuable, a finder scans the tag or types its identifier on the website and the owner is notified without either side seeing the other's details until they agree to meet.\n\n### Architecture\n\n- Modeled the system before building it and kept the model with it — the two actors, the use cases each of them has, the domain classes and a component view naming every service and the interface it offers, in UML alongside the code rather than in a document beside it.\n- Cut the platform into Spring Boot services behind a gateway with service discovery, generated from JHipster so that a new service arrived with its build, its tests and its security already wired.\n- Designed the service interfaces so the finder and the owner reached each other through them without either one's contact details reaching the other.\n\n### Engineering\n\n- Carried the same product into a browser, a hybrid mobile application and a native iOS app with a barcode scanner, all against one set of service interfaces, and released the iOS app to the store from a scripted pipeline.\n- Delivered it in five languages, Georgian among them, and integrated the shop the tags are sold through rather than building a second one.\n- Ran it on Cloud Foundry for the first years and saw it through to Kubernetes on Google Cloud, a platform outliving two runtimes underneath it.\n\n### Results\n\n- Stayed with it for five years and 621 commits, from the first setup to the last rebrand, which is the part a proof of concept never tests.", "tables": [] }, { @@ -2708,7 +2845,7 @@ "sections": [ { "heading": "Achievements", - "text": "- Completed the SAFe 4.0 for Teams course and passed the SAFe Practitioner certification, effective October 18, 2016 (certificate 28616437–8064).\n- The certification was valid through October 18, 2017 and was not renewed; the practice it taught still shapes how delivery is run.", + "text": "### Context\n\n- Completed the SAFe 4.0 for Teams course and passed the SAFe Practitioner certification, effective October 18, 2016 (certificate 28616437–8064).\n\n### Results\n\n- The certification was valid through October 18, 2017 and was not renewed; the practice it taught still shapes how delivery is run.", "tables": [] } ], @@ -2739,7 +2876,6 @@ "Java", "Integration architecture", "Microservices architecture", - "CI/CD", "Frontend development", "Solution architecture", "Solution selling", @@ -2749,7 +2885,7 @@ "sections": [ { "heading": "Achievements", - "text": "- A digital-first self-service platform for complementary health insurance — customers and brokers configure products, calculate quotes and purchase policies across two integrated apps over one backend.\n- Built its signature automated health-insurer switching service: AXA sells only complementary insurance, not the mandatory basic insurance (which, by Swiss law, every resident must hold and no insurer may refuse). The service compares basic-insurance premiums each year and automatically moves AXA's complementary-insurance customers to the cheapest basic insurer — saving about CHF 426 per year on average, with AXA taking no basic-insurance commission to keep the advice neutral.\n- Owned the complete integration architecture and its implementation, including the integration with the core insurance system Adcubum Syrius.\n- Built the Java/Spring Boot and Node.js backend with GraphQL APIs over MongoDB, to 3AP's microservice reference architecture and its delivery pipeline.\n- Built the React/Next.js frontend on AXA's own on-premise OpenShift — a platform the insurer ran itself, so the architecture had its elasticity without its managed services.\n- Won the work in a competitive pitch, presenting the solution architecture as the people who would build it.\n- Placed 3rd at the 2017 Swiss Insurance Innovation Prize.", + "text": "### Context\n\n- A digital-first self-service platform for complementary health insurance — customers and brokers configure products, calculate quotes and purchase policies across two integrated apps over one backend.\n\n### Leadership\n\n- Diagnosed what the core insurance system Adcubum Syrius allowed an integration to do before advising on it.\n- Owned the complete integration architecture and its implementation, including the integration with Syrius.\n\n### Architecture\n\n- Designed the platform's software architecture: the microservice cut behind the two apps, the API both front ends were built against and the MongoDB data model beneath them.\n\n### Engineering\n\n- Built its signature automated health-insurer switching service: AXA sells only complementary insurance, not the mandatory basic insurance (which, by Swiss law, every resident must hold and no insurer may refuse). The service compares basic-insurance premiums each year and automatically moves AXA's complementary-insurance customers to the cheapest basic insurer — saving about CHF 426 per year on average, with AXA taking no basic-insurance commission to keep the advice neutral.\n- Built the Java/Spring Boot and Node.js backend with GraphQL APIs over MongoDB, to 3AP's microservice reference architecture and its delivery pipeline.\n- Built the React/Next.js frontend on AXA's own on-premise OpenShift — a platform the insurer ran itself, so the architecture had its elasticity without its managed services.\n\n### Results\n\n- Won the work in a competitive pitch, presenting the solution architecture as the people who would build it.\n- Placed 3rd at the 2017 Swiss Insurance Innovation Prize.", "tables": [] }, { @@ -2829,7 +2965,6 @@ "Database design", "Container orchestration (Kubernetes)", "Platform engineering", - "CI/CD", "MLOps", "Machine learning", "Event-driven architecture", @@ -2839,7 +2974,7 @@ "sections": [ { "heading": "Achievements", - "text": "- An applied-research proof of concept for AXA Health: reading scanned invoices well enough to process a health-insurance claim without a person retyping it, built by 3AP with ZHAW as research partner.\n- Architected the processing pipeline to 3AP's microservice reference architecture, on MongoDB and as Kafka-streamed services — Java and Spring Boot for the entry point, the gateway and the dataset management, Python inside the four services that did the modeling, which is the polyglot half of that architecture actually used — region detection over the scanned page, extraction of what was found, classification of the extracted positions and a quality gate before anything downstream trusted the result.\n- Put every service on a build pipeline from the first commit, including the rule that stops a build when nothing in its own subdirectory changed — a monorepo of eight services otherwise rebuilds all of them for one edit.\n- Built and ran the platform underneath it on Google Kubernetes Engine, from cluster creation to the Kafka backbone, the document store, distributed tracing, the OAuth gateway in front of the services and GPU nodes in the one region that had them so models could be trained where the data already was.\n- Built the labeling tool that made training possible: a browser application for drawing regions over an invoice and naming what each one held. Labeled invoices were the bottleneck the whole project ran into, and none existed before this.\n- Set up the training and serving split around the models — a service that trains, a registry that versions each model with the metadata to reproduce it and a separate service that serves the chosen version — so a model could be replaced without redeploying what consumed it.\n- ZHAW made the modeling calls. The computer-vision work and the classifier that read a claim's positions were theirs; the pipeline they ran inside, the data that fed them and the path their output took to a consumer were 3AP's.\n- Ended as a proof of concept, which is what the funding instrument is for. Nothing from it went into production at AXA.", + "text": "### Context\n\n- An applied-research proof of concept for AXA Health: reading scanned invoices well enough to process a health-insurance claim without a person retyping it, built by 3AP with ZHAW as research partner.\n\n### Leadership\n\n- ZHAW made the modeling calls. The computer-vision work and the classifier that read a claim's positions were theirs; the pipeline they ran inside, the data that fed them and the path their output took to a consumer were 3AP's.\n\n### Architecture\n\n- Architected the processing pipeline to 3AP's microservice reference architecture, on MongoDB and as Kafka-streamed services — Java and Spring Boot for the entry point, the gateway and the dataset management, Python inside the four services that did the modeling, which is the polyglot half of that architecture actually used — region detection over the scanned page, extraction of what was found, classification of the extracted positions and a quality gate before anything downstream trusted the result.\n- Designed the microservice cut of the pipeline, one service per pipeline stage.\n- Designed the streams as one Kafka topic per pipeline stage, so each service consumed the output of the stage before it and no stage called another directly.\n- Designed the MongoDB data model the pipeline held its claims and datasets in.\n- Set up the training and serving split around the models — a service that trains, a registry that versions each model with the metadata to reproduce it and a separate service that serves the chosen version — so a model could be replaced without redeploying what consumed it.\n\n### Engineering\n\n- Put every service on a build pipeline from the first commit, including the rule that stops a build when nothing in its own subdirectory changed — a monorepo of eight services otherwise rebuilds all of them for one edit.\n- Built and ran the platform underneath it on Google Kubernetes Engine, from cluster creation to the Kafka backbone, the document store, distributed tracing, the OAuth gateway in front of the services and GPU nodes in the one region that had them so models could be trained where the data already was.\n- Made that platform self-service for ZHAW's researchers: they deployed a new model service and trained on the GPU nodes on their own, without asking 3AP.\n- Built the labeling tool that made training possible: a browser application for drawing regions over an invoice and naming what each one held. Labeled invoices were the bottleneck the whole project ran into, and none existed before this.\n\n### Results\n\n- Ended as a proof of concept, which is what the funding instrument is for. Nothing from it went into production at AXA.", "tables": [] } ], @@ -2870,20 +3005,18 @@ "Solution selling", "Microservices architecture", "Event-driven architecture", - "CI/CD", "IoT architecture", "Data engineering", "Frontend development", "Java", "Database design", - "Cloud architecture", - "API design" + "Cloud architecture" ] }, "sections": [ { "heading": "Achievements", - "text": "- An IoT first-aid kit for FLAWA AG that keeps itself stocked and compliant — Swiss firms are legally required to maintain first-aid supplies, so the kit detects missing or expired modules in real time and automatically triggers reordering, removing manual checks.\n- Ran the initial sensing research — how to detect the absence of an item within a defined volume — and selected RFID-tagged modules as the approach.\n- Evaluated the connectivity options (LoRaWAN vs. GSM); built the MVP on Swisscom's LoRaWAN network, with GSM selected for the later production version.\n- Together with comtac AG (a canton-Zürich LoRaWAN electronics specialist), delivered an MVP of 10 working prototypes (RFID modules + LoRaWAN, backend on Google Cloud).\n- Built a small React front end for the MVP so the sensor readings could be seen rather than inferred from the telemetry.\n- Built the backend to 3AP's microservice reference architecture on Spring and Java 11, released through a Jenkins pipeline — consuming device uplink and configuration events over AMQP from Swisscom's LoRaWAN broker, holding them in a reactive MongoDB repository, pushing them on to the client as server-sent events and feeding the data into the ERP over an API, which closes the loop so consumed or expired modules trigger automatic reordering.\n- Won the work in a competitive pitch, on a solution architecture for a problem the client had described rather than specified.\n- Won the “smart IoT” Award 2021, University of St. Gallen.", + "text": "### Context\n\n- An IoT first-aid kit for FLAWA AG that keeps itself stocked and compliant — Swiss firms are legally required to maintain first-aid supplies, so the kit detects missing or expired modules in real time and automatically triggers reordering, removing manual checks.\n\n### Architecture\n\n- Ran the initial sensing research — how to detect the absence of an item within a defined volume — and selected RFID-tagged modules as the approach.\n- Evaluated the connectivity options (LoRaWAN vs. GSM); built the MVP on Swisscom's LoRaWAN network, with GSM selected for the later production version.\n- Designed the microservice cut of the backend, separating the telemetry ingestion from the communication with the ERP.\n- Designed the MongoDB data model the device uplinks and configuration events were held in.\n- Designed the backend's deployment on Swisscom Application Cloud, Swisscom's Cloud Foundry: each service pushed with a manifest, with the message broker and the database bound to it as managed services rather than run beside it.\n\n### Engineering\n\n- Together with comtac AG (a canton-Zürich LoRaWAN electronics specialist), delivered an MVP of 10 working prototypes (RFID modules + LoRaWAN, backend on Swisscom Application Cloud).\n- Built a small React front end for the MVP so the sensor readings could be seen rather than inferred from the telemetry.\n- Built the backend to 3AP's microservice reference architecture on Spring and Java 11, released through a Jenkins pipeline — consuming device uplink and configuration events over AMQP from Swisscom's LoRaWAN broker, holding them in a reactive MongoDB repository, pushing them on to the client as server-sent events and feeding the data into the ERP over an API, which closes the loop so consumed or expired modules trigger automatic reordering.\n- Transformed the raw telemetry on the platform's side into the data the ERP needed, then pushed it to the ERP.\n\n### Results\n\n- Won the work in a competitive pitch, presenting the solution architecture for a problem the client had described rather than specified.\n- Won the “smart IoT” Award 2021, University of St. Gallen.", "tables": [] }, { @@ -2965,7 +3098,7 @@ "sections": [ { "heading": "Achievements", - "text": "- A platform of the company's own, so that a project or an internal system started from a running gateway, a running identity provider and shared capabilities rather than from an empty cluster — one architecture, drawn in the repository, with everything reaching the internet through a single reverse proxy that terminates TLS and enforces strict transport security.\n- Made identity the platform's job rather than each service's: Keycloak issuing the tokens, social sign-in trusted into it and the gateway verifying the token before routing, so a service behind it receives requests already authenticated and no service holds a login of its own.\n- Put the company's own administration on it — a directory service reading from Google Directory, time tracking pulling from the system the company billed through and a scheduler running the jobs that keep both current — because internal work justifies a platform the same way client work does, and it was the first thing to prove it.\n- Gave the organization model an interface a normal application can use: a GraphQL service reading the CDO repository through its client, which is what turned circles, roles and assignments from something only a modeling tool could open into something a front end could ask questions of.\n- A notification service any project could call instead of integrating messaging vendors of its own: one authenticated POST, delivered as e-mail, SMS or a Slack message, with the vendor behind each channel a detail of the platform rather than of the project.\n- Ran the same services on two clouds at once, which was the point of building them in the open like this: pushed to Swisscom's Cloud Foundry with a manifest and a bound message broker, and deployed to Google Kubernetes Engine as containers with the broker running beside them. Only the deployment descriptor and a Spring profile differed, so what a project depended on was the service and not the cloud under it.\n- Separated accepting a message from delivering one — the receiving service publishes to a queue for each channel and a service per channel consumes it — so a vendor that is slow or down delays delivery instead of failing the caller.\n- Traced a message across that hand-off with Spring Cloud Sleuth, so a message that never arrived can be followed past the queue rather than lost at it, and wired each service's health endpoint to its readiness and liveness probes with a request and a limit set for every container.\n- Made the build the gate: every branch and every pull request analyzed on SonarCloud with test coverage attached, container images built without a Dockerfile to write and a green build on the mainline deploying itself to the cluster.\n- Modeled both platforms' own vocabularies side by side in PlantUML beside the code — organization, space, application and a bound service on one; project, cluster, pod and an exposing service on the other — so that what the two call the same thing, and where they genuinely differ, could be read rather than argued about.\n- Retired the Cloud Foundry half in November 2019 once 3AP settled on its own Google Cloud platform, having established what it was built to establish.", + "text": "### Context\n\n- A platform of the company's own, so that a project or an internal system started from a running gateway, a running identity provider and shared capabilities rather than from an empty cluster — one architecture, drawn in the repository, with everything reaching the internet through a single reverse proxy that terminates TLS and enforces strict transport security.\n\n### Architecture\n\n- Made identity the platform's job rather than each service's: Keycloak issuing the tokens, social sign-in trusted into it and the gateway verifying the token before routing, so a service behind it receives requests already authenticated and no service holds a login of its own.\n- Gave the organization model an interface a normal application can use: a GraphQL service reading the CDO repository through its client, which is what turned circles, roles and assignments from something only a modeling tool could open into something a front end could ask questions of.\n- A notification service any project could call instead of integrating messaging vendors of its own: one authenticated POST, delivered as e-mail, SMS or a Slack message, with the vendor behind each channel a detail of the platform rather than of the project.\n- Separated accepting a message from delivering one — the receiving service publishes to a queue for each channel and a service per channel consumes it — so a vendor that is slow or down delays delivery instead of failing the caller.\n- Modeled both platforms' own vocabularies side by side in PlantUML beside the code — organization, space, application and a bound service on one; project, cluster, pod and an exposing service on the other — so that what the two call the same thing, and where they genuinely differ, could be read rather than argued about.\n\n### Engineering\n\n- Put the company's own administration on it — a directory service reading from Google Directory, time tracking pulling from the system the company billed through and a scheduler running the jobs that keep both current — because internal work justifies a platform the same way client work does, and it was the first thing to prove it.\n- Made those jobs more than copies: they transformed what each source delivered, matched people across the directory and the billing system, reconciled a record that had changed in both and checked the result before it replaced what the platform held.\n- Ran the same services on two clouds at once, which was the point of building them in the open like this: pushed to Swisscom's Cloud Foundry with a manifest and a bound message broker, and deployed to Google Kubernetes Engine as containers with the broker running beside them. Only the deployment descriptor and a Spring profile differed, so what a project depended on was the service and not the cloud under it.\n- Traced a message across the queue hand-off with Spring Cloud Sleuth, so a message that never arrived can be followed past the queue rather than lost at it, and wired each service's health endpoint to its readiness and liveness probes with a request and a limit set for every container.\n- Made the build the gate: every branch and every pull request analyzed on SonarCloud with test coverage attached, container images built without a Dockerfile to write and a green build on the mainline deploying itself to the cluster.\n\n### Results\n\n- Retired the Cloud Foundry half in November 2019 once 3AP settled on its own Google Cloud platform, having established what it was built to establish.", "tables": [] } ], @@ -2991,24 +3124,19 @@ "organization": "Aroov", "role": "Backend & Integration Architect", "skills": [ - "Cloud architecture", "Database design", - "Container orchestration (Kubernetes)", "Event-driven architecture", "Microservices architecture", - "CI/CD", "API design", - "Java", "Integration architecture", "Solution selling", - "Stakeholder management", "Solution architecture" ] }, "sections": [ { "heading": "Achievements", - "text": "- Digital rental platform — applicants apply for apartments in a few clicks; property managers get automated workflows and radically simpler applicant communication.\n- Founded by Mobiliar and Garaio REM (2019), merged with market leader flatfox.ch (2021).\n- Created the backend architecture — 3AP's microservice reference architecture in its event-driven form, delivery pipeline included, on Google Cloud (Spring Boot, Kubernetes/GKE, Cloud Pub/Sub) — and the first of the platforms to hold its data in PostgreSQL rather than a document store.\n- Designed the integration architecture connecting Aroov to Garaio REM, one of Switzerland's leading property-management systems (and an Aroov co-founder).\n- Presented the solution architecture in the winning sales pitch.\n- One of four winners of the Digital Top 10 2021, voted by over 5,000 participants ahead of the Digital Real Estate Summit.", + "text": "### Context\n\n- Digital rental platform — applicants apply for apartments in a few clicks; property managers get automated workflows and radically simpler applicant communication.\n\n### Leadership\n\n- Presented the solution architecture in the winning sales pitch.\n\n### Architecture\n\n- Created the backend architecture — 3AP's microservice reference architecture in its event-driven form, delivery pipeline included, on Google Cloud (Spring Boot, Kubernetes/GKE, Cloud Pub/Sub) — and the first of the platforms to hold its data in PostgreSQL rather than a document store.\n- Designed Aroov's own microservice cut and its PostgreSQL schema.\n- Designed the integration architecture connecting Aroov to Garaio REM, a Swiss property-management system and an Aroov co-founder, after first diagnosing what Garaio REM offered for integration.\n- Designed the event flow behind that integration: Garaio REM's data fetched over SFTP on a schedule, transformed into events and published to Google Cloud Pub/Sub through Spring Cloud Stream.\n- Designed the REST API the Aroov front end was built against.\n\n### Results\n\n- Founded by Mobiliar and Garaio REM (2019), merged with market leader flatfox.ch (2021).\n- One of four winners of the Digital Top 10 2021, voted by over 5,000 participants ahead of the Digital Real Estate Summit.", "tables": [] }, { @@ -3074,9 +3202,6 @@ "organization": "SV Group", "role": "Lead Architect", "skills": [ - "Cloud architecture", - "CI/CD", - "Container orchestration (Kubernetes)", "Process orchestration", "Business process modeling (BPMN, DMN)", "Java", @@ -3084,7 +3209,6 @@ "Database design", "Integration architecture", "Software architecture", - "Stakeholder management", "Solution architecture", "Solution selling", "Event-driven architecture", @@ -3096,7 +3220,7 @@ "sections": [ { "heading": "Achievements", - "text": "- A digital hospitality platform for SV Group (“Stay KooooK”) putting the entire guest journey in one app — book, pay, check in, open the room, check out — replacing manual reception and paper processes (a 63-room hotel runs on just 2.4 FTE, ex-housekeeping).\n- Owned the complete architecture, front to back, built to 3AP's microservice reference architecture and the last project to be: React and TypeScript frontend, MUI from 2021; reactive Spring Boot WebFlux backend publishing and consuming through Spring Cloud Stream over Pub/Sub; Camunda (Zeebe) process orchestration; Google Cloud, Kubernetes and PostgreSQL.\n- Ran it on a delivery pipeline from the first week, three days after the repository opened.\n- Gave the platform its own API surface from the first commit — REST specified in OpenAPI and generated from the code, secured by OAuth 2.0 — which is the one LIKE MAGIC later published.\n- Built the integrations into Apaleo PMS and Salto KS smart-door access.\n- Presented the solution architecture at the winning pitch.\n- Won Best Use of Technology at the Serviced Apartment Awards 2021; was nominated for the Best Swiss Web Award 2021 (Innovation).\n- The platform became LIKE MAGIC, a spin-off from SV Group, and co-founding it was the reason for leaving 3AP.\n- As likeMagic, the platform won gold for Best Digital Transformation and silver for Customer Driven Business Change and Transformation at the European Customer Experience Awards 2022.", + "text": "### Context\n\n- A digital hospitality platform for SV Group (“Stay KooooK”) putting the entire guest journey in one app — book, pay, check in, open the room, check out — replacing manual reception and paper processes (a 63-room hotel runs on just 2.4 FTE, ex-housekeeping).\n\n### Leadership\n\n- Owned the complete architecture, front to back, built to 3AP's microservice reference architecture and the last project to be: React and TypeScript frontend, MUI from 2021; reactive Spring Boot WebFlux backend publishing and consuming through Spring Cloud Stream over Pub/Sub; Camunda (Zeebe) process orchestration; Google Cloud, Kubernetes and PostgreSQL.\n- Presented the solution architecture at the winning pitch.\n\n### Architecture\n\n- Designed the software architecture and the microservice cut, each microservice holding its own schema in PostgreSQL.\n- Modeled the guest journey from booking to check-out in Camunda BPMN, the model the Zeebe engine ran and LIKE MAGIC later carried over.\n- Designed the event-driven architecture: integration services took external events in over webhooks and WebSockets, transformed them into internal events and published them to Google Cloud Pub/Sub.\n- Designed the event streams themselves on Spring Cloud Stream, bindings declared per service so the transport underneath could be swapped: the topic layout, redelivery handling and consumers that processed each event once.\n- Gave the platform its own API surface from the first commit — REST specified contract-first in OpenAPI, secured by OAuth 2.0 — which is the one LIKE MAGIC later published.\n\n### Engineering\n\n- Wrote the integration and security parts of the reactive Spring Boot WebFlux backend in Java.\n- Ran it on a delivery pipeline from the first week, three days after the repository opened.\n- Built the integrations into Apaleo PMS and Salto KS smart-door access.\n\n### Results\n\n- Won Best Use of Technology at the Serviced Apartment Awards 2021; was nominated for the Best Swiss Web Award 2021 (Innovation).\n- The platform became LIKE MAGIC, a spin-off from SV Group, and co-founding it was the reason for leaving 3AP.\n- As likeMagic, the platform won gold for Best Digital Transformation and silver for Customer Driven Business Change and Transformation at the European Customer Experience Awards 2022.", "tables": [] }, { @@ -3184,7 +3308,7 @@ "id": "profiles/robert-blust/experiences/2020-ursina-fault-labeling", "type": "experience", "name": "Ursina", - "tagline": "3AP · Architect — the runtime, the path into a broadband operator's network and the authentication boundary of a tool that turns network faults into a labeled training set.", + "tagline": "3AP · Architect — the software architecture, the path into a broadband operator's network and the authentication boundary of a tool that turns network faults into a labeled training set.", "fields": { "source": "Local", "kind": "Project", @@ -3196,16 +3320,18 @@ "Solution architecture", "Cloud architecture", "Integration architecture", - "Container orchestration (Kubernetes)", - "CI/CD", "Identity and access management", - "Java" + "Java", + "Software architecture", + "Microservices architecture", + "Database design", + "Software engineering" ] }, "sections": [ { "heading": "Achievements", - "text": "- A tool for a cable-broadband operator that turns network faults into a training set: an operator assigns a cause to a device over a time window, a scheduled job proposes assignments from event mappings and every assignment carries a verification status, so what reaches the training database has been accepted by a person rather than inferred.\n- Designed the path from a public cloud application to the operator's own data platform — device telemetry read from an HBase cluster on their network and the labeled set held in their PostgreSQL — over tunnels that kept both databases unexposed.\n- Built the runtime on Google Kubernetes Engine as a script that creates it: the cluster, the managed PostgreSQL, certificate issuance and renewal, an nginx ingress on a fixed address, the tunnels and the routing, in nine steps run in order. What a console can build, only the person who clicked it can rebuild.\n- Wrote the API gateway in Java and Spring Cloud Gateway, with Keycloak as the identity provider and OAuth2 in front of every route.\n- Implemented the gateway's token relay as a filter of its own, because the framework's relay handed on an access token without refreshing it and a session outlived its token. It follows Spring's own authorized-client exchange filter and cites the upstream issue it stands in for, so it can be deleted when that closes.\n- Put the monorepo on a build pipeline that tested each package and pushed images to a registry before deploying, with static analysis reporting on every build.", + "text": "### Context\n\n- A tool for a cable-broadband operator that turns network faults into a training set: an operator assigns a cause to a device over a time window, a scheduled job proposes assignments from event mappings and every assignment carries a verification status, so what reaches the training database has been accepted by a person rather than inferred.\n\n### Architecture\n\n- Designed the software architecture, the microservice cut and the database design, on 3AP's reference architecture.\n- Designed the path from a public cloud application to the operator's own data platform — device telemetry read from an HBase cluster on their network and the labeled set held in their PostgreSQL — over tunnels that kept both databases unexposed.\n\n### Engineering\n\n- Wrote the API gateway in Java and Spring Cloud Gateway, with Keycloak as the identity provider and OAuth2 in front of every route.\n- Implemented the gateway's token relay as a filter of its own, because the framework's relay handed on an access token without refreshing it and a session outlived its token. It follows Spring's own authorized-client exchange filter and cites the upstream issue it stands in for, so it can be deleted when that closes.\n- Put the monorepo on a build pipeline that tested each package and pushed images to a registry before deploying, with static analysis reporting on every build.", "tables": [] } ], @@ -3241,7 +3367,7 @@ "sections": [ { "heading": "Achievements", - "text": "- Published “Process Monitoring with BPMN” on 3AP's engineering blog on June 3, 2021, making the case that a process model is worth keeping at runtime and not only at design time.\n- Set out a way to watch a guest journey without touching the services that run it: every system already posts webhooks, so a monitor correlates those events against a model of the journey and knows where each booking has got to.\n- Turned each milestone into a receive task waiting for its message — booking confirmed, onboarding notification, online check-in, property access issued, check-out — with a boundary timer beside it, so the alert fires on the message that never came rather than on an error somebody has to notice.\n- Published a runnable sample alongside it, still public: a Spring Boot service taking the webhooks behind an OpenAPI description, a Zeebe engine and Camunda Operate in one Docker Compose file and the guest-journey model itself.\n- Put BPMN and Zeebe to work in the open a year before the CamundaCon talk and two before the published case study, while the platform they describe was still being built.", + "text": "### Context\n\n- Published “Process Monitoring with BPMN” on 3AP's engineering blog on June 3, 2021, making the case that a process model is worth keeping at runtime and not only at design time.\n\n### Architecture\n\n- Set out a way to watch a guest journey without touching the services that run it: every system already posts webhooks, so a monitor correlates those events against a model of the journey and knows where each booking has got to.\n- Turned each milestone into a receive task waiting for its message — booking confirmed, onboarding notification, online check-in, property access issued, check-out — with a boundary timer beside it, so the alert fires on the message that never came rather than on an error somebody has to notice.\n\n### Engineering\n\n- Published a runnable sample alongside it, still public: a Spring Boot service taking the webhooks behind an OpenAPI description, a Zeebe engine and Camunda Operate in one Docker Compose file and the guest-journey model itself, Stay KooooK's own.\n\n### Results\n\n- Put BPMN and Zeebe to work in the open a year before the CamundaCon talk and two before the published case study, while the platform they describe was still being built.", "tables": [] }, { @@ -3305,6 +3431,7 @@ "AI governance", "API design", "Business architecture", + "Enterprise architecture", "Domain-driven design", "Multi-tenant SaaS architecture", "Microservices architecture", @@ -3328,7 +3455,6 @@ "Engineering leadership", "IT strategy", "Product management", - "Frontend development", "Event streaming", "Data engineering", "Knowledge management", @@ -3341,13 +3467,14 @@ "Change management", "Mentoring and coaching", "Company vision and strategy", - "Organization design" + "Organization design", + "Software architecture" ] }, "sections": [ { "heading": "Achievements", - "text": "- Co-founder and Head of Technology of LIKE MAGIC AG.\n- Owned the technology direction and developed the technical leadership as the company grew from 5 to 25 people.\n- Built and scaled a multi-tenant hospitality SaaS platform serving 90+ customers, 430+ properties and 16,000+ units across the DACH region — processing 1.5M+ reservations, 8.1M+ guest communications and 89M+ platform events annually, integrating 3 PMS (Mews, Apaleo, Oracle OHIP) and 15+ smart-lock systems into a unified guest experience.\n- Developed and executed the company-wide AI strategy — governance under a Human Oversight principle, organizational knowledge management and the productive rollout of AI assistants across plan, change and run; data-privacy guardrails (no internal context used to train external LLMs), multi-provider tooling (Claude, Gemini, Copilot, n8n) and cost governance.\n- Defined and executed the product and platform strategy across 12 business domains (L0 concepts, L1 capabilities) — API-first, with a managed public API and event/data hub, evolving toward an MCP-server layer so AI agents consume the platform directly.\n- Cut the platform into services by business capability — booking, guest, profile, payment, door access, messaging, operation and analytics — each stateless, self-contained, horizontally scalable and contract-first, with every integrated vendor reached through its own connector carrying a fallback path behind the realtime one.\n- Drove process orchestration with Camunda for the end-to-end guest journey (Booking → Check-in → Stay → Check-out), carried over from Stay KooooK and run until 2023.\n- Led the reassessment when the Camunda contract came up for renewal: the platform used a fraction of what the engine offered, so the choice was to build on it properly or take it out. Recommended building on it; the decision went to removal, and the orchestration was replaced with the platform's own in April 2023.\n- Featured in a Camunda reference case citing a 95% self-check-in rate, 9.0/10 guest happiness and 7,000 process instances per month.\n- Owned the production cloud platform (site reliability engineering, incident management, performance), built as Infrastructure-as-Code on Google Cloud with DevOps and CI/CD standards, unit and integration tests running on every pipeline.\n- Instrumented it on Cloud Monitoring and Cloud Trace with alerting driven by defined SLOs, end-to-end traceability and continuous monitoring being architecture principles the services were built to rather than instrumentation added afterward.\n- Built the LIKE MAGIC Mental Model — a structured organizational knowledge base (roles, processes, features, strategies, architecture decisions) that serves as the shared context layer for AI-assisted operations.\n- Kept it in step with the systems it described through MCP rather than bespoke integrations — Atlassian, Google Drive and Slack servers wired into the agent that maintained it, reading and writing Confluence pages, Jira issues, Google Docs and Sheets, each command scoped to a named allowlist of the tools it was allowed to call.\n- Built an internal AI marketplace on Claude (Claude Cowork) — giving teams governed access to AI assistants and agents, grounded in the Mental Model.\n- Architected the integration of AI communication vendors (d3x, ailean and onsai) into the staff solution — unified multi-channel guest messaging with AI agents answering, guest insights and staff collaboration.\n- Budget holder for the cloud platform and AI tooling — forecast and governed spend across dev, test and production, with consumption KPIs defined in the Mental Model and weekly actuals generated automatically from the Google Cloud billing API, routed to owners by role when a threshold was breached.\n- Held platform cost flat as volume grew to 89M+ events annually, through continuous database and code optimization.\n- Built information-security management: ISO 27001 (in progress), GDPR compliance and zero-trust API boundaries.\n- Published and consumed the platform's events through Spring Cloud Stream over a Pub/Sub binder, so a service declared its bindings and the transport stayed swappable underneath them.\n- Built the event and data hub every service published its business events to — ingesting them into BigQuery for analytics, idempotent on the event id so a redelivery cannot double-count and serving them back as a queryable event log with webhook subscriptions for systems that needed them pushed.\n- Tech stack: Java, Spring Boot / WebFlux, Spring Cloud GCP, Spring Cloud Stream, PostgreSQL, R2DBC/jOOQ, Google Pub/Sub, BigQuery, GraphQL, React / TypeScript / MUI, Kubernetes (GKE), Camunda BPMN, GitHub Actions.", + "text": "### Context\n\n- Co-founder and Head of Technology of LIKE MAGIC AG.\n\n### Leadership\n\n- Owned the technology direction and developed the technical leadership as the company grew from 5 to 25 people.\n- Held the technology gate at intake, discovery and delivery of the product cycle and led the Change Advisory Board that ISO 27001 requires, arguing in each review what had to change for a decision to fit the architecture and stay compliant.\n- Used each gate and board review to coach the engineers who brought the decision.\n- Owned the platform's architecture decisions, each recorded with its status.\n- Defined the technology roles, technical architect, business architect and site reliability engineer, and led the functional team they formed.\n- Developed and executed the company-wide AI strategy — governance under a Human Oversight principle, organizational knowledge management and the productive rollout of AI assistants across plan, change and run; data-privacy guardrails (no internal context used to train external LLMs), multi-provider tooling (Claude, Gemini, Copilot, n8n) and cost governance.\n- Managed the AI and automation tooling as a portfolio: Claude Code team licenses, multi-provider tooling across Claude, Gemini and Copilot and self-hosting n8n on the platform's own Kubernetes rather than taking the hosted service.\n- Defined and executed the product and platform strategy across 12 business domains (L0 concepts, L1 capabilities) — API-first, with a managed public API and event/data hub, evolving toward an MCP-server layer so AI agents consume the platform directly.\n- Led the reassessment when the Camunda contract came up for renewal: the platform used a fraction of what the engine offered, so the choice was to build on it properly or take it out. Recommended building on it; the decision went to removal, and the orchestration was replaced with the platform's own in April 2023.\n- Budget holder for the cloud platform and AI tooling — forecast and governed spend across dev, test and production, with consumption KPIs defined in the Mental Model and weekly actuals generated automatically from the Google Cloud billing API, routed to owners by role when a threshold was breached.\n- Built information-security management: ISO 27001 (in progress), GDPR compliance and zero-trust API boundaries.\n- Set up the escalation board for critical, security-relevant incidents inside the information-security management.\n- Set LIKE MAGIC up as processor, with the hotels as controllers and a data processing agreement in every customer contract.\n\n### Architecture\n\n- Put every customer on one shared infrastructure rather than a stack per customer, for lower operating cost and a single deployment, and paid for it up front: each tenant isolated by a discriminator built into the platform's framework and again by row-level security in the database.\n- Specified the public API in OpenAPI 3.1 over property, reservation, guest, messaging, door access and task resources, with webhook subscriptions and OAuth 2.0 scopes.\n- Cut the platform into services along its 12 business domains and the capabilities under each — booking, guest, profile, payment, door access, messaging, operation and analytics among them — each stateless, self-contained, horizontally scalable and contract-first.\n- Reached every integrated vendor through its own connector, with a fallback path behind the realtime one.\n- Kept the language models out of the platform and opened its API to conversational AI providers instead, so each provider integrated itself rather than being integrated by LIKE MAGIC — d3x, ailean and onsai came into the staff solution that way, with unified multi-channel guest messaging, AI agents answering, guest insights and staff collaboration.\n- Published and consumed the platform's events through Spring Cloud Stream over a Pub/Sub binder, so a service declared its bindings and the transport stayed swappable underneath them.\n\n### Engineering\n\n- Wrote Java on the platform, including the reference implementation of each pattern the architecture used, so a team built a new service from working code rather than from a description.\n- Drove process orchestration with Camunda for the end-to-end guest journey (Booking → Check-in → Stay → Check-out), carried over from Stay KooooK and run until 2023, its BPMN model extended as the platform grew.\n- Owned the production cloud platform (site reliability engineering, incident management, performance), built as infrastructure as code on Google Cloud with DevOps and CI/CD standards, unit and integration tests running on every pipeline.\n- Instrumented it on Cloud Monitoring and Cloud Trace with alerting driven by defined SLOs, end-to-end traceability and continuous monitoring being architecture principles the services were built to rather than instrumentation added afterward.\n- Built the LIKE MAGIC Mental Model — a structured organizational knowledge base (roles, processes, features, strategies, architecture decisions) that serves as the shared context layer for AI-assisted operations.\n- Shipped the Mental Model as a skill into the company's Claude environment, so every assistant worked from the same context.\n- Kept it in step with the systems it described through MCP rather than bespoke integrations — Atlassian, Google Drive and Slack servers wired into the agent that maintained it, reading and writing Confluence pages, Jira issues, Google Docs and Sheets, each command scoped to a named allowlist of the tools it was allowed to call.\n- Built an internal AI marketplace on Claude (Claude Cowork) — giving teams governed access to AI assistants and agents, grounded in the Mental Model.\n- Made every API boundary check its caller: partners on the public API held OAuth 2.0 tokens scoped to the resources they were granted, and guests and employees held role-based tokens.\n- Automated production monitoring and alerting by severity under site reliability engineering, notifying the people responsible by email, SMS and Slack.\n- Built the event and data hub every service published its business events to — ingesting them into BigQuery for analytics, idempotent on the event id so a redelivery cannot double-count and serving them back as a queryable event log with webhook subscriptions for systems that needed them pushed.\n\n### Ways of working\n\n- Made the platform self-service for the teams building on it: a team added a new service, or new schemas and tables, on its own, carried to production by the platform's CI/CD and infrastructure as code rather than by a request to a central team.\n- Had the team that built a service also operate it in production.\n- Answered data subject requests for access and erasure through a defined procedure under an SLA.\n\n### Sharing\n\n- Wrote the developer documentation for the public API, the reference partners integrated against on their own.\n\n### Results\n\n- Built and scaled a multi-tenant hospitality SaaS platform serving 90+ customers, 430+ properties and 16,000+ units across the DACH region — processing 1.5M+ reservations, 8.1M+ guest communications and 89M+ platform events annually, integrating 3 PMS (Mews, Apaleo, Oracle OHIP) and 15+ smart-lock systems into a unified guest experience.\n- Held platform cost flat as volume grew to 89M+ events annually, through continuous database and code optimization.", "tables": [] }, { @@ -3489,7 +3616,7 @@ "sections": [ { "heading": "Achievements", - "text": "- Co-presented *“From 'Intrapreneurs' to 'Entrepreneurs' in 6 months with user-centric innovation – Powered by Camunda”* with Markus Feller at CamundaCon 2022 in Berlin on October 5–6, 2022: how SV Group launched a new hotel brand through the crisis and turned it into a white-label SaaS business, LIKE MAGIC, on Camunda Platform 8.\n- Featured in Camunda's video *“Talking Process Orchestration with likeMagic's Robert Blust”*.", + "text": "### Context\n\n- Co-presented *“From 'Intrapreneurs' to 'Entrepreneurs' in 6 months with user-centric innovation – Powered by Camunda”* with Markus Feller at CamundaCon 2022 in Berlin on October 5–6, 2022: how SV Group launched a new hotel brand through the crisis and turned it into a white-label SaaS business, LIKE MAGIC, on Camunda Platform 8.\n\n### Sharing\n\n- Took the orchestration part of the talk: how the platform ran and monitored the guest journey on Camunda.\n\n### Results\n\n- Featured in Camunda's video *“Talking Process Orchestration with likeMagic's Robert Blust”*.", "tables": [] }, { @@ -3552,7 +3679,7 @@ "sections": [ { "heading": "Achievements", - "text": "- Featured in Camunda's published case study “How SV Group launched an industry-disrupting platform in 6 months with Camunda” on the SV Group hospitality platform, cited there as “CTO of likeMagic” — the case study's own wording for a role whose title was Head of Technology.", + "text": "### Context\n\n- Featured in Camunda's published case study “How SV Group launched an industry-disrupting platform in 6 months with Camunda” on the SV Group hospitality platform, cited there as “CTO of likeMagic” — the case study's own wording for a role whose title was Head of Technology.\n\n### Sharing\n\n- Explained there why the platform needed process monitoring: booking processes from several microservices had to be integrated with hotel onboarding, so Camunda watched each critical point of the guest journey within its expected time and alerted the team around the clock when one failed or ran late.\n\n### Results\n\n- The case study cites a 95% self-check-in rate, 9.0/10 guest happiness and 7,000 process instances per month.", "tables": [] } ], @@ -3576,14 +3703,13 @@ "end": "2026-09-04", "skills": [ "Agentic AI development", - "Context engineering", - "Technical writing" + "Context engineering" ] }, "sections": [ { "heading": "Achievements", - "text": "- Kept the CV as one source of truth in Markdown and YAML and made each application a small overlay that selects, reorders and overrides, never a copy — so a correction reached every dossier, and git recorded exactly what was sent where.\n- Rendered the web page and the PDF from the same HTML and one stylesheet, and generated the full dossier per application with one command: CV, cover letter, diplomas and references.\n- Prepared 28 tailored applications in German or English, one per posting, of which 25 were submitted, and kept every interview note, salary figure and reply beside the overlay that produced it.\n- Worked it with an AI coding agent under a written agent file: the honesty line it may not cross, the two trackers it must keep in step, and the traps in the template it must not fall into.\n- Held the same honesty line in every dossier: no certification claimed that was not held, no cloud named that had not been run, a gap stated rather than covered.\n- Became the seed of the model. The experience files, the skills and the references were written here first, then generalized into CompanyGraph and moved into the mental-model repository, which has mastered them since Sep 4, 2026.", + "text": "### Architecture\n\n- Kept the CV as one source of truth in Markdown and YAML and made each application a small overlay that selects, reorders and overrides, never a copy — so a correction reached every dossier, and git recorded exactly what was sent where.\n\n### Engineering\n\n- Rendered the web page and the PDF from the same HTML and one stylesheet, and generated the full dossier per application with one command: CV, cover letter, diplomas and references.\n\n### Ways of working\n\n- Worked it with an AI coding agent under a written agent file: the honesty line it may not cross, the two trackers it must keep in step, and the traps in the template it must not fall into.\n- Defined agents for each step of an application: one analyzed a posting against the experience and the feedback from colleagues and rated the match; another wrote the application when the rating was a go; a third checked the process and the correspondence.\n- Held the same honesty line in every dossier: no certification claimed that was not held, no cloud named that had not been run, a gap stated rather than covered.\n\n### Results\n\n- Prepared 28 tailored applications in German or English, one per posting, of which 25 were submitted, and kept every interview note, salary figure and reply beside the overlay that produced it.\n- Became the seed of the model. The experience files, the skills and the references were written here first, then generalized into CompanyGraph and moved into the mental-model repository, which has mastered them since Sep 4, 2026.", "tables": [] }, { @@ -3611,16 +3737,18 @@ "start": "2026-08", "url": "https://blust.ch", "skills": [ + "Agentic AI development", "Public speaking", "Technical writing", "Frontend development", - "CI/CD" + "CI/CD", + "Software testing" ] }, "sections": [ { "heading": "Achievements", - "text": "- Published the profile page, a principles page, an ideas page and two narrated talks, The Mental Model and Essential Complexity — each bilingual, self-contained and presentable from a file with no server running.\n- Built the model and timeline pages from the mental-model repository at a pinned commit, so the page shows what the model says and a corrected fact is one commit in one place.\n- Held every page to a rendered check rather than a diff: browser assertions on every page, share cards compared against the pages they were rendered from, and a pin guard that fails the build when a dependency is behind its release.\n- Generated the narration from the speaker notes on a content hash, so editing one note regenerates one clip.\n- Shared its typography, chrome and page checks with guestgraph.io and companygraph.io through one design system, released over 50 times in its first week and taken by every site by pin.", + "text": "### Context\n\n- Published the profile page, a principles page, an ideas page and two narrated talks, The Mental Model and Essential Complexity — each bilingual with a PDF, self-contained and presentable from a file with no server running.\n\n### Architecture\n\n- Built the model and timeline pages from the mental-model repository at a pinned commit, so the page shows what the model says and a corrected fact is one commit in one place.\n- Shared its typography, chrome and page checks with guestgraph.io and companygraph.io through one design system, released over 50 times in its first week and taken by every site by pin.\n\n### Engineering\n\n- Held every page to a rendered check rather than a diff: browser assertions on every page, share cards compared against the pages they were rendered from, and a pin guard that fails the build when a dependency is behind its release.\n- Required one shared conventions check beside each repository's own suite on every default branch in the family, called from one reusable workflow at a pinned tag.\n- Generated the narration from the speaker notes on a content hash, so editing one note regenerates one clip.\n\n### Ways of working\n\n- Built it through the agent seats the model defines, each under its own rulebook and none of them deciding, with the Owner reviewing and merging.\n- Set the family's written voice and rules in `WRITING.md`, and briefed and reviewed every page the Writer seat drafted to those rules.", "tables": [] } ], @@ -3644,14 +3772,13 @@ "end": "2026-09", "skills": [ "Agentic AI development", - "Spec-driven development", - "Technical writing" + "Spec-driven development" ] }, "sections": [ { "heading": "Achievements", - "text": "- Gave the break one question: what I like doing, rather than what I am used to being hired for. The answer came out as modeling, and AI used with responsibility inside a company rather than merely used; the role that fits it is an architect's.\n- Held the question open across two tracks at once, hands-on engineering and architecture, and let the market answer it: 25 applications between Jun 9 and Aug 20, 2026 — 16 for senior engineering roles, 5 for architect roles, 3 for leadership roles and 1 for a business engineer.\n- Reached an interview or an invitation to one in 12 of the 25, and an offer in one, accepted. Withdrew from 7 processes myself, each at an interview stage, one of them the week before a final round of five people. Was declined by 10 — 7 on the dossier alone, 3 after an interview, 2 of the 10 because the position was filled meanwhile. 6 never answered.\n- Read the outcome by track: all 3 leadership applications led to an interview, 7 of the 16 engineering ones did, 2 of the 5 architect ones did, and the offer taken was one of those two.\n- Learned what the declines and the rounds said. An employer reads a former CTO applying for an engineering role as a flight risk unless the stay is stated first — three employers in 27 years. The story of going back near the code has to be told as a choice and not as a step down. And an honest line on what I do not have, no TOGAF, no AWS, no Kotlin, costs fit on paper and buys credibility in the room.\n- Asked four former colleagues, one of them a former direct report, for written feedback on my strengths and the role they see me in, and wrote a self-assessment from the same material before deciding. All four named depth, knowledge sharing and caring about the people; two of them, independently, named the cost of caring too much as the thing to work on.\n- Decided on values over pay: an 80% architect role in a product company outside finance, chosen while three processes in finance were still open, with the fifth day kept for formal education in how AI is led and governed in an organization.\n- Built the products and the applications with AI coding agents as the primary tool, spec-driven — a reviewed specification before every plan and build — under written conventions vendored into eleven repositories and a design system shared by three sites, released and pinned like any other dependency.", + "text": "### Context\n\n- Gave the break one question: what I like doing, rather than what I am used to being hired for. The answer came out as modeling, and AI used with responsibility inside a company rather than merely used; the role that fits it is an architect's.\n\n### Ways of working\n\n- Asked four former colleagues, one of them a former direct report, for written feedback on my strengths and the role they see me in, and wrote a self-assessment from the same material before deciding. All four named depth, knowledge sharing and caring about the people; two of them, independently, named the cost of caring too much as the thing to work on.\n- Built the products and the applications through the agent seats the model defines, each under its own rulebook and none of them deciding.\n- Worked spec-driven, a reviewed specification before every plan and build, under written conventions vendored into every repository in the family and a design system every site pins like any other dependency.\n\n### Results\n\n- Held the question open across two tracks at once, hands-on engineering and architecture, and let the market answer it: 25 applications between Jun 9 and Aug 20, 2026 — 16 for senior engineering roles, 5 for architect roles, 3 for leadership roles and 1 for a business engineer.\n- Reached an interview or an invitation to one in 12 of the 25, and an offer in one, accepted. Withdrew from 7 processes myself, each at an interview stage, one of them the week before a final round of five people. Was declined by 10 — 7 on the dossier alone, 3 after an interview, 2 of the 10 because the position was filled meanwhile. 6 never answered.\n- Read the outcome by track: all 3 leadership applications led to an interview, 7 of the 16 engineering ones did, 2 of the 5 architect ones did, and the offer taken was one of those two.\n- Learned what the declines and the rounds said. An employer reads a former CTO applying for an engineering role as a flight risk unless the stay is stated first — three employers in 27 years. The story of going back near the code has to be told as a choice and not as a step down. And an honest line on what I do not have, no TOGAF, no AWS, no Kotlin, costs fit on paper and buys credibility in the room.\n- Decided on values over pay: an 80% architect role in a product company outside finance, chosen while three processes in finance were still open, with the fifth day kept for formal education in how AI is led and governed in an organization.", "tables": [] }, { @@ -3684,22 +3811,21 @@ "Knowledge management", "Model-driven engineering", "Data modeling", - "Requirements engineering", "Spec-driven development", "Technical writing", "Open-source stewardship", "Product discovery", - "Solution selling", "Company vision and strategy", "Public speaking", "AI tool integration (MCP)", - "Infrastructure as code" + "Infrastructure as code", + "CI/CD" ] }, "sections": [ { "heading": "Achievements", - "text": "- Extracted the meta-model from two instances that never knew about each other, a company of 25 people and a company of one, which had arrived at the same shape: one Markdown file per entity, YAML frontmatter and a body, in a folder named for its type, with a folder of schemas beside it.\n- Published the core as one shipped unit — a schema per type and numbered conventions that make the graph checkable — with a worked example company and an instance parser, released by tag with a manifest per release.\n- Wrote the conventions for the agents that would work in an instance, encoding the failure modes seen before: an unresolvable reference is an error rather than a warning, and every validation pass names what it did not check.\n- Built the reference instance from it: this profile, its experiences, its skills on a proficiency ladder and its values, every claim traced to an experience that shows it.\n- Wrote an MCP server that serves any instance to an agent through read-only tools, every answer naming the model commit it was read from, and deployed it for the reference instance at mcp.blust.ch, listed in the MCP Registry.\n- Came to it the second time. The Flatland CDO Server carried a model of a company from 2014, served over an API and true for as long as the server ran; this one is Markdown a person reads and edits, in a repository with a history, true for as long as the files exist.\n- Published it under Apache 2.0 as open core with a billing model and a narrated introduction talk in German and English, and put it in front of a professional network with a stated outcome each way.", + "text": "### Context\n\n- Extracted the meta-model from two instances that never knew about each other, a company of 25 people and a company of one, which had arrived at the same shape: one Markdown file per entity, YAML frontmatter and a body, in a folder named for its type, with a folder of schemas beside it.\n- Came to it the second time. The Flatland CDO Server carried a model of a company from 2014, served over an API and true for as long as the server ran; this one is Markdown a person reads and edits, in a repository with a history, true for as long as the files exist.\n\n### Leadership\n\n- Published it under Apache 2.0 as open core with a billing model and a narrated introduction talk in German and English with a PDF in each, and put it in front of a professional network with a stated outcome each way.\n\n### Engineering\n\n- Published the core as one shipped unit — a schema per type and numbered conventions that make the graph checkable — with a worked example company and an instance parser, released by tag with a manifest per release.\n- Built the reference instance from it: this profile, its experiences, its skills on a proficiency ladder and its values, every claim traced to an experience that shows it.\n- Wrote an MCP server that serves any instance to an agent through read-only tools, every answer naming the model commit it was read from, and deployed it for the reference instance at mcp.blust.ch, listed in the MCP Registry, its name, description and instructions written from the model rather than by hand.\n- Defined that deployment on Google Cloud in Terraform, planned on every pull request and applied by GitHub Actions on merge, with only a one-time bootstrap applied by hand.\n- Gated the instance on the checks the meta-model ships as a reusable workflow, so a change that breaks a rule cannot merge.\n- Made the deployment prove itself by calling a tool over the live endpoint, since the platform answers a health path on its own.\n- Added a test that fails the build when the lockfile resolves an older release than the pin names, after a stale one had built green.\n\n### Ways of working\n\n- Wrote the conventions for the agents that would work in an instance, encoding the failure modes seen before: an unresolvable reference is an error rather than a warning, and every validation pass names what it did not check.\n- Wrote a reviewed specification before every plan and every build, for the meta-model, its tooling and this instance, so what was asked for was settled before an agent built it.\n- Built it through the agent seats the model defines, each under its own rulebook and none of them deciding, with the Owner reviewing and merging.", "tables": [] }, { @@ -3770,7 +3896,7 @@ "sections": [ { "heading": "Achievements", - "text": "- Fixed the film in a written brief before anything was generated: one point — a career is worth modeling rather than described, so a claim can be checked instead of believed — five threads each tied to the source file that carries it, an ending on the invitation in my words, and the constraints: no company, person or school from the 2026 job search, no salary figure, no AI vendor named, the figures in the sources used as they are and none added.\n- Rebuilt the export bundle before generating anything, because the generator reads a build and not the model: the committed bundle was five experiences behind, 31 against the model's 36, and its skills table disagreed too, so the brief's counts and the sources under them would have contradicted each other. Checked every entity off disk against the model before uploading.\n- Published it on Sep 15, 2026 as four minutes forty-three that trace one discipline across three organizations and then one person: at UBS a model-driven repository for the mainframe service interfaces, then a tool chain several hundred engineers across the wealth management division worked inside, with a canonical data model every interface was specified against; at 3AP a company described as circles inside circles with a capacity and a validity window per role as it grew from five to about seventy people; at LIKE MAGIC twelve business domains and an API-first platform carrying 89M+ events a year; and then a company of one kept as Markdown under conventions an agent checks, where a reference naming something that does not exist fails the check.\n- Read the transcript against the sources before publishing and found two places where the narration strays: it says “Dynarap” for DynaRep and merges it with the Integration Architecture Tool Chain, a different thing five years later, and it says the central model blocked an unapproved connection, where the conformance part measured technical coupling and identified what did not conform and interfaces passed a role-based review. Wrote the published title, subtitle and description to avoid both, and verified the pull quotes against the transcript.", + "text": "### Ways of working\n\n- Fixed the film in a written brief before anything was generated: one point — a career is worth modeling rather than described, so a claim can be checked instead of believed — five threads each tied to the source file that carries it, an ending on the invitation in my words, and the constraints: no company, person or school from the 2026 job search, no salary figure, no AI vendor named, the figures in the sources used as they are and none added.\n- Rebuilt the export bundle before generating anything, because the generator reads a build and not the model: the committed bundle was five experiences behind, 31 against the model's 36, and its skills table disagreed too, so the brief's counts and the sources under them would have contradicted each other. Checked every entity off disk against the model before uploading.\n- Read the transcript against the sources before publishing and found two places where the narration strays: it says “Dynarap” for DynaRep and merges it with the Integration Architecture Tool Chain, a different thing five years later, and it says the central model blocked an unapproved connection, where the conformance part measured technical coupling and identified what did not conform and interfaces passed a role-based review. Wrote the published title, subtitle and description to avoid both, and verified the pull quotes against the transcript.\n\n### Sharing\n\n- Published it on Sep 15, 2026 as four minutes forty-three that trace one discipline across three organizations and then one person: at UBS a model-driven repository for the mainframe service interfaces, then a tool chain several hundred engineers across the wealth management division worked inside, with a canonical data model every interface was specified against; at 3AP a company described as circles inside circles with a capacity and a validity window per role as it grew from five to about seventy people; at LIKE MAGIC twelve business domains and an API-first platform carrying 89M+ events a year; and then a company of one kept as Markdown under conventions an agent checks, where a reference naming something that does not exist fails the check.", "tables": [] } ], @@ -3795,24 +3921,22 @@ "skills": [ "Agentic AI development", "Software architecture", - "Requirements engineering", "Spec-driven development", "Data modeling", "Database design", "API design", - "Cloud architecture", - "Java", "Open-source stewardship", "Product discovery", - "Solution selling", "Company vision and strategy", - "Public speaking" + "Public speaking", + "CI/CD", + "Data governance" ] }, "sections": [ { "heading": "Achievements", - "text": "- Designed the engine from three written specifications — core identity resolution, probabilistic matching and the guest timeline — each reviewed before its plan and its build, and built by an AI coding agent working to them under a written agent file.\n- Built it as a layered confidence model: strong identifiers merge deterministically with transitive closure, everything else is scored against a threshold the tenant chose, and what falls between goes to a human steward, whose split becomes a do-not-merge rule that new evidence cannot cross.\n- Split probabilistic matching into blocking and scoring, because a database index answers only equality: phonetic keys find candidates that share no identifier, then a weighted feature vector grades them, damped when few signals were observed and penalized when birthdates conflict.\n- Kept every source record immutable and every merge explainable, so a guest can be asked why two records are one person and the answer is the decision chain.\n- Shipped it as a Spring Boot service on PostgreSQL with Flyway migrations and a REST API, runnable from one compose file, designed for managed platform services and agnostic of which cloud runs them — so adopting it is not also adopting a provider.\n- Published it under Apache 2.0 as open core, with a billing model on one meter, arrivals, and a narrated introduction talk in German and English with a PDF in each.\n- Put it in front of a professional network with a stated outcome each way, a clean no included.", + "text": "### Leadership\n\n- Published it under Apache 2.0 as open core, with a billing model on one meter, arrivals, and a narrated introduction talk in German and English with a PDF in each.\n\n### Architecture\n\n- Built it as a layered confidence model: strong identifiers merge deterministically with transitive closure, everything else is scored against a threshold the tenant chose, and what falls between goes to a human steward, whose split becomes a do-not-merge rule that new evidence cannot cross.\n- Split probabilistic matching into blocking and scoring, because a database index answers only equality: phonetic keys find candidates that share no identifier, then a weighted feature vector grades them, damped when few signals were observed and penalized when birthdates conflict.\n- Kept every source record immutable and every merge explainable, so a guest can be asked why two records are one person and the answer is the decision chain.\n- Designed and implemented the engine's and the connector's REST APIs contract-first in OpenAPI, the engine's exposing a merge's explanation, its undoing and the review of uncertain matches as resources of their own.\n\n### Engineering\n\n- Shipped it as a Spring Boot service on PostgreSQL with Flyway migrations and a REST API, runnable from one compose file, designed for managed platform services and agnostic of which cloud runs them — so adopting it is not also adopting a provider.\n- Held the engine and the connector to the same gates on every change: the Maven build with its tests, a check that each service carries every item of the service conventions at their pinned release and a job that regenerates the entity-relationship diagram from the Flyway migrations and fails when the committed one is stale.\n\n### Ways of working\n\n- Designed the engine from three written specifications — core identity resolution, probabilistic matching and the guest timeline — each reviewed before its plan and its build.\n- Built it through the agent seats the model defines, each under its own rulebook and none of them deciding, with the Owner reviewing and merging.\n\n### Results\n\n- Put it in front of a professional network with a stated outcome each way, a clean no included.", "tables": [] }, { @@ -3875,7 +3999,7 @@ "sections": [ { "heading": "Achievements", - "text": "- Generated the episode with Gemini Notebook from the model's own files, chosen rather than dumped: the career-break and application-tooling entries in focus, and the earlier experiences, the skills and the values as the background of the career they describe — so the two hosts had a whole career to draw on.\n- Fixed in a written brief, before anything was generated, what the hosts may say: the story in outline, four threads to cover — how modeling my own career helped secure an 80% architect role, how spec-driven development and AI agents streamline an application process, company graphs to align human and agent collaboration, and how agentic workflows change an architect's daily life, told as my experience and not as a survey — an ending on an invitation in my words, and the constraints: a figure comes from a source or not at all, no employer, colleague or school is named, no salary figure is.\n- Published it on Sep 6, 2026 as a five-minute episode with two hosts that tells the break as the sources tell it: one CV kept as a single source of truth in Markdown and YAML and tracked in git, 28 tailored applications generated and 25 submitted under the honesty line, an 80% IT architect role accepted with culture chosen over higher pay in finance, the model of one career as the seed of CompanyGraph, and the line “Building fast is solved. Deciding well is not.”\n- Read the transcript against the sources before publishing and found one place where the episode strays: the hosts say “any gaps in employment had to be explicitly stated” where the application-tooling entry says a gap stated rather than covered, and means a gap in skills, not in employment. Recorded it as the known deviation, to be named before anyone else names it, beside the line for anyone who asks whether the hosts are real: generated from the model's own sources, reviewed by me.", + "text": "### Ways of working\n\n- Generated the episode with Gemini Notebook from the model's own files, chosen rather than dumped: the career-break and application-tooling entries in focus, and the earlier experiences, the skills and the values as the background of the career they describe — so the two hosts had a whole career to draw on.\n- Fixed in a written brief, before anything was generated, what the hosts may say: the story in outline, four threads to cover — how modeling my own career helped secure an 80% architect role, how spec-driven development and AI agents streamline an application process, company graphs to align human and agent collaboration, and how agentic workflows change an architect's daily life, told as my experience and not as a survey — an ending on an invitation in my words, and the constraints: a figure comes from a source or not at all, no employer, colleague or school is named, no salary figure is.\n- Read the transcript against the sources before publishing and found one place where the episode strays: the hosts say “any gaps in employment had to be explicitly stated” where the application-tooling entry says a gap stated rather than covered, and means a gap in skills, not in employment. Recorded it as the known deviation, to be named before anyone else names it, beside the line for anyone who asks whether the hosts are real: generated from the model's own sources, reviewed by me.\n\n### Sharing\n\n- Published it on Sep 6, 2026 as a five-minute episode with two hosts that tells the break as the sources tell it: one CV kept as a single source of truth in Markdown and YAML and tracked in git, 28 tailored applications generated and 25 submitted under the honesty line, an 80% IT architect role accepted with culture chosen over higher pay in finance, the model of one career as the seed of CompanyGraph, and the line “Building fast is solved. Deciding well is not.”", "tables": [] } ], @@ -6148,6 +6272,48 @@ } ], "edges": [ + { + "from": "achievement-kinds/architecture", + "to": "sources/local", + "via": "source", + "attrs": {} + }, + { + "from": "achievement-kinds/context", + "to": "sources/local", + "via": "source", + "attrs": {} + }, + { + "from": "achievement-kinds/engineering", + "to": "sources/local", + "via": "source", + "attrs": {} + }, + { + "from": "achievement-kinds/leadership", + "to": "sources/local", + "via": "source", + "attrs": {} + }, + { + "from": "achievement-kinds/results", + "to": "sources/local", + "via": "source", + "attrs": {} + }, + { + "from": "achievement-kinds/sharing", + "to": "sources/local", + "via": "source", + "attrs": {} + }, + { + "from": "achievement-kinds/ways-of-working", + "to": "sources/local", + "via": "source", + "attrs": {} + }, { "from": "experience-kinds/community", "to": "sources/local", @@ -6502,6 +6668,18 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/1999-ubs-trainee", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/1999-ubs-trainee", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/1999-ubs-trainee", "to": "experience-kinds/role", @@ -6516,19 +6694,37 @@ }, { "from": "profiles/robert-blust/experiences/2001-ubs-engineer", - "to": "experience-kinds/role", - "via": "kind", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2001-ubs-engineer", - "to": "skills/java", - "via": "skills", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2001-ubs-engineer", - "to": "skills/mentoring-and-coaching", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2001-ubs-engineer", + "to": "achievement-kinds/leadership", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2001-ubs-engineer", + "to": "experience-kinds/role", + "via": "kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2001-ubs-engineer", + "to": "skills/java", "via": "skills", "attrs": {} }, @@ -6552,19 +6748,25 @@ }, { "from": "profiles/robert-blust/experiences/2002-wirtschaftsinformatik-fh", - "to": "experience-kinds/education", - "via": "kind", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2002-wirtschaftsinformatik-fh", - "to": "skills/model-driven-engineering", - "via": "skills", + "to": "achievement-kinds/sharing", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2002-wirtschaftsinformatik-fh", - "to": "skills/software-architecture", + "to": "experience-kinds/education", + "via": "kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2002-wirtschaftsinformatik-fh", + "to": "skills/model-driven-engineering", "via": "skills", "attrs": {} }, @@ -6576,25 +6778,49 @@ }, { "from": "profiles/robert-blust/experiences/2004-ubs-solution-manager", - "to": "experience-kinds/role", - "via": "kind", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2004-ubs-solution-manager", - "to": "skills/change-management", - "via": "skills", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2004-ubs-solution-manager", - "to": "skills/community-building", + "to": "achievement-kinds/leadership", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2004-ubs-solution-manager", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2004-ubs-solution-manager", + "to": "achievement-kinds/ways-of-working", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2004-ubs-solution-manager", + "to": "experience-kinds/role", + "via": "kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2004-ubs-solution-manager", + "to": "skills/change-management", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2004-ubs-solution-manager", - "to": "skills/database-design", + "to": "skills/community-building", "via": "skills", "attrs": {} }, @@ -6696,14 +6922,38 @@ }, { "from": "profiles/robert-blust/experiences/2009-ubs-architect", - "to": "experience-kinds/role", - "via": "kind", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2009-ubs-architect", - "to": "skills/agile-delivery", - "via": "skills", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2009-ubs-architect", + "to": "achievement-kinds/leadership", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2009-ubs-architect", + "to": "achievement-kinds/sharing", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2009-ubs-architect", + "to": "achievement-kinds/ways-of-working", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2009-ubs-architect", + "to": "experience-kinds/role", + "via": "kind", "attrs": {} }, { @@ -6772,6 +7022,12 @@ "via": "skills", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2009-ubs-architect", + "to": "skills/mentoring-and-coaching", + "via": "skills", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2009-ubs-architect", "to": "skills/model-driven-engineering", @@ -6786,7 +7042,7 @@ }, { "from": "profiles/robert-blust/experiences/2009-ubs-architect", - "to": "skills/public-speaking", + "to": "skills/software-architecture", "via": "skills", "attrs": {} }, @@ -6802,6 +7058,24 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2010-eclipse-mdd-day", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2010-eclipse-mdd-day", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2010-eclipse-mdd-day", + "to": "achievement-kinds/sharing", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2010-eclipse-mdd-day", "to": "experience-kinds/community", @@ -6832,6 +7106,18 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2010-eclipse-modeling-platform", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2010-eclipse-modeling-platform", + "to": "achievement-kinds/sharing", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2010-eclipse-modeling-platform", "to": "experience-kinds/community", @@ -6840,7 +7126,13 @@ }, { "from": "profiles/robert-blust/experiences/2010-eclipse-modeling-platform", - "to": "skills/community-building", + "to": "skills/business-architecture", + "via": "skills", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2010-eclipse-modeling-platform", + "to": "skills/domain-specific-language-design", "via": "skills", "attrs": {} }, @@ -6856,6 +7148,18 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2011-jugs-board", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2011-jugs-board", + "to": "achievement-kinds/sharing", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2011-jugs-board", "to": "experience-kinds/community", @@ -6874,6 +7178,18 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2012-talk-eclipse-day-florence", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2012-talk-eclipse-day-florence", + "to": "achievement-kinds/sharing", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2012-talk-eclipse-day-florence", "to": "experience-kinds/community", @@ -6904,6 +7220,18 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2012-talk-eclipse-finance-day", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2012-talk-eclipse-finance-day", + "to": "achievement-kinds/sharing", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2012-talk-eclipse-finance-day", "to": "experience-kinds/community", @@ -6912,25 +7240,25 @@ }, { "from": "profiles/robert-blust/experiences/2012-talk-eclipse-finance-day", - "to": "skills/integration-architecture", + "to": "skills/domain-specific-language-design", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2012-talk-eclipse-finance-day", - "to": "skills/model-driven-engineering", + "to": "skills/integration-architecture", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2012-talk-eclipse-finance-day", - "to": "skills/public-speaking", + "to": "skills/model-driven-engineering", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2012-talk-eclipse-finance-day", - "to": "skills/software-modeling-uml-sysml-c4", + "to": "skills/public-speaking", "via": "skills", "attrs": {} }, @@ -6940,6 +7268,18 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2013-talk-eclipse-finance-day", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2013-talk-eclipse-finance-day", + "to": "achievement-kinds/sharing", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2013-talk-eclipse-finance-day", "to": "experience-kinds/community", @@ -6970,6 +7310,12 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2014-eclipse-finance-day-organizer", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2014-eclipse-finance-day-organizer", "to": "experience-kinds/community", @@ -6988,6 +7334,30 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2014-flatland-cdo-server", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2014-flatland-cdo-server", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2014-flatland-cdo-server", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2014-flatland-cdo-server", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2014-flatland-cdo-server", "to": "experience-kinds/community", @@ -7044,14 +7414,44 @@ }, { "from": "profiles/robert-blust/experiences/2014-flatland-cdo-server", - "to": "skills/organization-design", - "via": "skills", + "to": "sources/local", + "via": "source", "attrs": {} }, { - "from": "profiles/robert-blust/experiences/2014-flatland-cdo-server", - "to": "sources/local", - "via": "source", + "from": "profiles/robert-blust/experiences/2015-3ap", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2015-3ap", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2015-3ap", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2015-3ap", + "to": "achievement-kinds/leadership", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2015-3ap", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2015-3ap", + "to": "achievement-kinds/ways-of-working", + "via": "Achievements.Kind", "attrs": {} }, { @@ -7060,6 +7460,12 @@ "via": "kind", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2015-3ap", + "to": "skills/agile-delivery", + "via": "skills", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2015-3ap", "to": "skills/api-design", @@ -7116,7 +7522,13 @@ }, { "from": "profiles/robert-blust/experiences/2015-3ap", - "to": "skills/event-driven-architecture", + "to": "skills/enterprise-architecture", + "via": "skills", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2015-3ap", + "to": "skills/identity-and-access-management", "via": "skills", "attrs": {} }, @@ -7194,43 +7606,43 @@ }, { "from": "profiles/robert-blust/experiences/2015-swisscard-data-integration", - "to": "experience-kinds/project", - "via": "kind", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2015-swisscard-data-integration", - "to": "skills/api-design", - "via": "skills", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2015-swisscard-data-integration", - "to": "skills/ci-cd", - "via": "skills", + "to": "experience-kinds/project", + "via": "kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2015-swisscard-data-integration", - "to": "skills/database-design", + "to": "skills/api-design", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2015-swisscard-data-integration", - "to": "skills/java", + "to": "skills/integration-architecture", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2015-swisscard-data-integration", - "to": "skills/legacy-modernization", + "to": "skills/java", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2015-swisscard-data-integration", - "to": "skills/software-testing", + "to": "skills/legacy-modernization", "via": "skills", "attrs": {} }, @@ -7240,6 +7652,18 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2015-swisscom-agile-cockpit", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2015-swisscom-agile-cockpit", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2015-swisscom-agile-cockpit", "to": "experience-kinds/project", @@ -7282,6 +7706,36 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2016-credit-suisse-mdr", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2016-credit-suisse-mdr", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2016-credit-suisse-mdr", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2016-credit-suisse-mdr", + "to": "achievement-kinds/leadership", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2016-credit-suisse-mdr", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2016-credit-suisse-mdr", "to": "experience-kinds/project", @@ -7300,6 +7754,12 @@ "via": "skills", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2016-credit-suisse-mdr", + "to": "skills/data-modeling", + "via": "skills", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2016-credit-suisse-mdr", "to": "skills/frontend-development", @@ -7336,6 +7796,30 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2016-lost-tag-digibonum", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2016-lost-tag-digibonum", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2016-lost-tag-digibonum", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2016-lost-tag-digibonum", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2016-lost-tag-digibonum", "to": "experience-kinds/project", @@ -7396,6 +7880,18 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2016-safe-practitioner", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2016-safe-practitioner", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2016-safe-practitioner", "to": "experience-kinds/education", @@ -7416,19 +7912,43 @@ }, { "from": "profiles/robert-blust/experiences/2017-axa-health-platform", - "to": "experience-kinds/project", - "via": "kind", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2017-axa-health-platform", - "to": "skills/api-design", - "via": "skills", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2017-axa-health-platform", - "to": "skills/ci-cd", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2017-axa-health-platform", + "to": "achievement-kinds/leadership", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2017-axa-health-platform", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2017-axa-health-platform", + "to": "experience-kinds/project", + "via": "kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2017-axa-health-platform", + "to": "skills/api-design", "via": "skills", "attrs": {} }, @@ -7488,14 +8008,38 @@ }, { "from": "profiles/robert-blust/experiences/2018-conperi-automated-claims", - "to": "experience-kinds/project", - "via": "kind", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2018-conperi-automated-claims", - "to": "skills/ci-cd", - "via": "skills", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2018-conperi-automated-claims", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2018-conperi-automated-claims", + "to": "achievement-kinds/leadership", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2018-conperi-automated-claims", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2018-conperi-automated-claims", + "to": "experience-kinds/project", + "via": "kind", "attrs": {} }, { @@ -7572,20 +8116,32 @@ }, { "from": "profiles/robert-blust/experiences/2018-flawa-iq", - "to": "experience-kinds/project", - "via": "kind", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2018-flawa-iq", - "to": "skills/api-design", - "via": "skills", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2018-flawa-iq", - "to": "skills/ci-cd", - "via": "skills", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2018-flawa-iq", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2018-flawa-iq", + "to": "experience-kinds/project", + "via": "kind", "attrs": {} }, { @@ -7660,6 +8216,30 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2019-3ap-platform", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2019-3ap-platform", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2019-3ap-platform", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2019-3ap-platform", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2019-3ap-platform", "to": "experience-kinds/project", @@ -7752,55 +8332,55 @@ }, { "from": "profiles/robert-blust/experiences/2019-aroov-realestate", - "to": "experience-kinds/project", - "via": "kind", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2019-aroov-realestate", - "to": "skills/api-design", - "via": "skills", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2019-aroov-realestate", - "to": "skills/ci-cd", - "via": "skills", + "to": "achievement-kinds/leadership", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2019-aroov-realestate", - "to": "skills/cloud-architecture", - "via": "skills", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2019-aroov-realestate", - "to": "skills/container-orchestration-kubernetes", - "via": "skills", + "to": "experience-kinds/project", + "via": "kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2019-aroov-realestate", - "to": "skills/database-design", + "to": "skills/api-design", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2019-aroov-realestate", - "to": "skills/event-driven-architecture", + "to": "skills/database-design", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2019-aroov-realestate", - "to": "skills/integration-architecture", + "to": "skills/event-driven-architecture", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2019-aroov-realestate", - "to": "skills/java", + "to": "skills/integration-architecture", "via": "skills", "attrs": {} }, @@ -7824,49 +8404,55 @@ }, { "from": "profiles/robert-blust/experiences/2019-aroov-realestate", - "to": "skills/stakeholder-management", - "via": "skills", + "to": "sources/local", + "via": "source", "attrs": {} }, { - "from": "profiles/robert-blust/experiences/2019-aroov-realestate", - "to": "sources/local", - "via": "source", + "from": "profiles/robert-blust/experiences/2020-stay-koook", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2020-stay-koook", - "to": "experience-kinds/project", - "via": "kind", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2020-stay-koook", - "to": "skills/api-design", - "via": "skills", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2020-stay-koook", - "to": "skills/business-process-modeling-bpmn-dmn", - "via": "skills", + "to": "achievement-kinds/leadership", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2020-stay-koook", - "to": "skills/ci-cd", - "via": "skills", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2020-stay-koook", - "to": "skills/cloud-architecture", + "to": "experience-kinds/project", + "via": "kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2020-stay-koook", + "to": "skills/api-design", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2020-stay-koook", - "to": "skills/container-orchestration-kubernetes", + "to": "skills/business-process-modeling-bpmn-dmn", "via": "skills", "attrs": {} }, @@ -7938,14 +8524,26 @@ }, { "from": "profiles/robert-blust/experiences/2020-stay-koook", - "to": "skills/stakeholder-management", - "via": "skills", + "to": "sources/local", + "via": "source", "attrs": {} }, { - "from": "profiles/robert-blust/experiences/2020-stay-koook", - "to": "sources/local", - "via": "source", + "from": "profiles/robert-blust/experiences/2020-ursina-fault-labeling", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2020-ursina-fault-labeling", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2020-ursina-fault-labeling", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", "attrs": {} }, { @@ -7956,37 +8554,49 @@ }, { "from": "profiles/robert-blust/experiences/2020-ursina-fault-labeling", - "to": "skills/ci-cd", + "to": "skills/cloud-architecture", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2020-ursina-fault-labeling", - "to": "skills/cloud-architecture", + "to": "skills/database-design", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2020-ursina-fault-labeling", - "to": "skills/container-orchestration-kubernetes", + "to": "skills/identity-and-access-management", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2020-ursina-fault-labeling", - "to": "skills/identity-and-access-management", + "to": "skills/integration-architecture", + "via": "skills", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2020-ursina-fault-labeling", + "to": "skills/java", + "via": "skills", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2020-ursina-fault-labeling", + "to": "skills/microservices-architecture", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2020-ursina-fault-labeling", - "to": "skills/integration-architecture", + "to": "skills/software-architecture", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2020-ursina-fault-labeling", - "to": "skills/java", + "to": "skills/software-engineering", "via": "skills", "attrs": {} }, @@ -8002,6 +8612,30 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2021-post-process-monitoring-bpmn", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2021-post-process-monitoring-bpmn", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2021-post-process-monitoring-bpmn", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2021-post-process-monitoring-bpmn", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2021-post-process-monitoring-bpmn", "to": "experience-kinds/community", @@ -8044,6 +8678,48 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2022-likemagic", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2022-likemagic", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2022-likemagic", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2022-likemagic", + "to": "achievement-kinds/leadership", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2022-likemagic", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2022-likemagic", + "to": "achievement-kinds/sharing", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2022-likemagic", + "to": "achievement-kinds/ways-of-working", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2022-likemagic", "to": "experience-kinds/role", @@ -8172,25 +8848,25 @@ }, { "from": "profiles/robert-blust/experiences/2022-likemagic", - "to": "skills/event-driven-architecture", + "to": "skills/enterprise-architecture", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2022-likemagic", - "to": "skills/event-streaming", + "to": "skills/event-driven-architecture", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2022-likemagic", - "to": "skills/finops", + "to": "skills/event-streaming", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2022-likemagic", - "to": "skills/frontend-development", + "to": "skills/finops", "via": "skills", "attrs": {} }, @@ -8296,6 +8972,12 @@ "via": "skills", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2022-likemagic", + "to": "skills/software-architecture", + "via": "skills", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2022-likemagic", "to": "skills/software-engineering", @@ -8326,6 +9008,24 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2022-talk-camundacon", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2022-talk-camundacon", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2022-talk-camundacon", + "to": "achievement-kinds/sharing", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2022-talk-camundacon", "to": "experience-kinds/community", @@ -8350,6 +9050,24 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2023-camunda-case-study", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2023-camunda-case-study", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2023-camunda-case-study", + "to": "achievement-kinds/sharing", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2023-camunda-case-study", "to": "experience-kinds/community", @@ -8368,6 +9086,30 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2026-application-tooling", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2026-application-tooling", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2026-application-tooling", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2026-application-tooling", + "to": "achievement-kinds/ways-of-working", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2026-application-tooling", "to": "experience-kinds/project", @@ -8388,14 +9130,32 @@ }, { "from": "profiles/robert-blust/experiences/2026-application-tooling", - "to": "skills/technical-writing", - "via": "skills", + "to": "sources/local", + "via": "source", "attrs": {} }, { - "from": "profiles/robert-blust/experiences/2026-application-tooling", - "to": "sources/local", - "via": "source", + "from": "profiles/robert-blust/experiences/2026-blust-ch", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2026-blust-ch", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2026-blust-ch", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2026-blust-ch", + "to": "achievement-kinds/ways-of-working", + "via": "Achievements.Kind", "attrs": {} }, { @@ -8404,6 +9164,12 @@ "via": "kind", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2026-blust-ch", + "to": "skills/agentic-ai-development", + "via": "skills", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2026-blust-ch", "to": "skills/ci-cd", @@ -8422,6 +9188,12 @@ "via": "skills", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2026-blust-ch", + "to": "skills/software-testing", + "via": "skills", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2026-blust-ch", "to": "skills/technical-writing", @@ -8434,6 +9206,24 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2026-career-break", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2026-career-break", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2026-career-break", + "to": "achievement-kinds/ways-of-working", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2026-career-break", "to": "experience-kinds/independent", @@ -8454,14 +9244,32 @@ }, { "from": "profiles/robert-blust/experiences/2026-career-break", - "to": "skills/technical-writing", - "via": "skills", + "to": "sources/local", + "via": "source", "attrs": {} }, { - "from": "profiles/robert-blust/experiences/2026-career-break", - "to": "sources/local", - "via": "source", + "from": "profiles/robert-blust/experiences/2026-companygraph", + "to": "achievement-kinds/context", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2026-companygraph", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2026-companygraph", + "to": "achievement-kinds/leadership", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2026-companygraph", + "to": "achievement-kinds/ways-of-working", + "via": "Achievements.Kind", "attrs": {} }, { @@ -8482,6 +9290,12 @@ "via": "skills", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2026-companygraph", + "to": "skills/ci-cd", + "via": "skills", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2026-companygraph", "to": "skills/company-vision-and-strategy", @@ -8538,32 +9352,32 @@ }, { "from": "profiles/robert-blust/experiences/2026-companygraph", - "to": "skills/requirements-engineering", + "to": "skills/spec-driven-development", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2026-companygraph", - "to": "skills/solution-selling", + "to": "skills/technical-writing", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2026-companygraph", - "to": "skills/spec-driven-development", - "via": "skills", + "to": "sources/local", + "via": "source", "attrs": {} }, { - "from": "profiles/robert-blust/experiences/2026-companygraph", - "to": "skills/technical-writing", - "via": "skills", + "from": "profiles/robert-blust/experiences/2026-film-build-the-model-first", + "to": "achievement-kinds/sharing", + "via": "Achievements.Kind", "attrs": {} }, { - "from": "profiles/robert-blust/experiences/2026-companygraph", - "to": "sources/local", - "via": "source", + "from": "profiles/robert-blust/experiences/2026-film-build-the-model-first", + "to": "achievement-kinds/ways-of-working", + "via": "Achievements.Kind", "attrs": {} }, { @@ -8590,6 +9404,36 @@ "via": "source", "attrs": {} }, + { + "from": "profiles/robert-blust/experiences/2026-guestgraph", + "to": "achievement-kinds/architecture", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2026-guestgraph", + "to": "achievement-kinds/engineering", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2026-guestgraph", + "to": "achievement-kinds/leadership", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2026-guestgraph", + "to": "achievement-kinds/results", + "via": "Achievements.Kind", + "attrs": {} + }, + { + "from": "profiles/robert-blust/experiences/2026-guestgraph", + "to": "achievement-kinds/ways-of-working", + "via": "Achievements.Kind", + "attrs": {} + }, { "from": "profiles/robert-blust/experiences/2026-guestgraph", "to": "experience-kinds/community", @@ -8610,7 +9454,7 @@ }, { "from": "profiles/robert-blust/experiences/2026-guestgraph", - "to": "skills/cloud-architecture", + "to": "skills/ci-cd", "via": "skills", "attrs": {} }, @@ -8622,19 +9466,19 @@ }, { "from": "profiles/robert-blust/experiences/2026-guestgraph", - "to": "skills/data-modeling", + "to": "skills/data-governance", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2026-guestgraph", - "to": "skills/database-design", + "to": "skills/data-modeling", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2026-guestgraph", - "to": "skills/java", + "to": "skills/database-design", "via": "skills", "attrs": {} }, @@ -8658,32 +9502,32 @@ }, { "from": "profiles/robert-blust/experiences/2026-guestgraph", - "to": "skills/requirements-engineering", + "to": "skills/software-architecture", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2026-guestgraph", - "to": "skills/software-architecture", + "to": "skills/spec-driven-development", "via": "skills", "attrs": {} }, { "from": "profiles/robert-blust/experiences/2026-guestgraph", - "to": "skills/solution-selling", - "via": "skills", + "to": "sources/local", + "via": "source", "attrs": {} }, { - "from": "profiles/robert-blust/experiences/2026-guestgraph", - "to": "skills/spec-driven-development", - "via": "skills", + "from": "profiles/robert-blust/experiences/2026-podcast-turn-your-work-history-into-code", + "to": "achievement-kinds/sharing", + "via": "Achievements.Kind", "attrs": {} }, { - "from": "profiles/robert-blust/experiences/2026-guestgraph", - "to": "sources/local", - "via": "source", + "from": "profiles/robert-blust/experiences/2026-podcast-turn-your-work-history-into-code", + "to": "achievement-kinds/ways-of-working", + "via": "Achievements.Kind", "attrs": {} }, { @@ -8716,7 +9560,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Built LIKE MAGIC's internal AI marketplace on Claude, giving teams governed access to assistants and agents grounded in the Mental Model (2022–2026). Built CompanyGraph and GuestGraph agent-first under written conventions that encode the failure modes: an unresolvable reference is an error rather than a warning, and every validation pass names what it did not check (2026)." + "Evidence": "Built LIKE MAGIC's internal AI marketplace on Claude, giving teams governed access to assistants and agents grounded in the Mental Model (2022–2026). Defined the agents that ran a job search, one rating each posting against the experience and colleagues' feedback, one writing the application on a go and one checking the process and the correspondence (2026). Built CompanyGraph, GuestGraph and blust.ch through the agent seats the model defines, each under its own rulebook, and wrote CompanyGraph's agent conventions to encode the failure modes: an unresolvable reference is an error rather than a warning, and every validation pass names what it did not check (2026)." } }, { @@ -8725,7 +9569,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/competent", - "Evidence": "Served as Scrum Master and technical lead on central UBS Wealth Management & Swiss Bank initiatives (2009–2015). Certified SAFe 4 Practitioner (2016)." + "Evidence": "Ran every 3AP project in Scrum, agile delivery being what the company's name stood for: As Agile As Possible (2015–2022). Certified SAFe 4 Practitioner (2016)." } }, { @@ -8743,7 +9587,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Authored and executed LIKE MAGIC's company-wide AI strategy, from the internal rollout of assistants across planning, delivery and operations to shipped customer-facing AI, with d3x, ailean and onsai integrated into the staff solution (2022–2026)." + "Evidence": "Authored and executed LIKE MAGIC's company-wide AI strategy, from the internal rollout of assistants across planning, delivery and operations to customer-facing AI delivered by opening the platform's API to d3x, ailean and onsai rather than running language models in it (2022–2026)." } }, { @@ -8761,7 +9605,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Established API and data management for UBS Wealth Management & Swiss Bank with generated XML-Schema and WSDL service contracts (2009–2015). Set 3AP's reference architecture so the service cut decided what each service exposed (2015–2022). Gave Stay KooooK its API surface from the first commit, REST specified in OpenAPI, generated from the code and secured by OAuth 2.0 (2020–2022). Led LIKE MAGIC's API-first strategy to a partner API documented in the open, REST on OpenAPI 3.1 with webhook subscriptions and OAuth 2.0 scopes over property, reservation, guest, messaging, door access and task resources (2022–2026)." + "Evidence": "Defined UBS Wealth Management & Swiss Bank's interfaces and service contracts platform-independently in a central API and interface-portfolio repository, generating the XML-Schema and WSDL from them (2009–2015). Fixed how every service in 3AP's reference architecture exposed itself, REST specified contract-first in OpenAPI with OAuth 2.0 at the boundary (2015–2022). Designed Lost-Tag's service interface so finder and owner reached each other without either one's contact details reaching the other (2016–2021). Gave Stay KooooK its API surface from the first commit, REST specified contract-first in OpenAPI and secured by OAuth 2.0 (2020–2022). Led LIKE MAGIC's API-first strategy to a partner API documented in the open, REST on OpenAPI 3.1 with webhook subscriptions and OAuth 2.0 scopes over property, reservation, guest, messaging, door access and task resources (2022–2026). Designed and implemented GuestGraph's engine and connector APIs contract-first in OpenAPI, with a merge's explanation, its undoing and the review of uncertain matches as resources of their own (2026)." } }, { @@ -8770,7 +9614,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Drove business architecture and capability modeling on EMF/Ecore at UBS Wealth Management & Swiss Bank (2009–2015). Mapped LIKE MAGIC's 12 business domains as concepts with the capabilities under each, and cut the platform, the teams and the product strategy along that map (2022–2026)." + "Evidence": "Modeled UBS Wealth Management & Swiss Bank's business capabilities, concepts, processes and actors as one enterprise model on EMF/Ecore, which architects used to steer new projects toward decisions that fit the enterprise model (2009–2015). Presented that enterprise model to the Eclipse Modeling Platform Working Group, its business capabilities, concepts, processes and actors each a metamodel of one shared model (2010). Mapped LIKE MAGIC's 12 business domains as concepts with the capabilities under each, and cut the platform and the product strategy along that map (2022–2026)." } }, { @@ -8779,7 +9623,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Modeled the guest journey from booking to check-out in Camunda BPMN for Stay KooooK (2020–2022). Published the model as the subject of an article on monitoring a process by the message it is still waiting for (2021). Carried the model into LIKE MAGIC, where it ran the journey until the orchestration was replaced (2022–2023)." + "Evidence": "Modeled the guest journey from booking to check-out in Camunda BPMN for Stay KooooK (2020–2022). Published the model as the subject of an article on monitoring a process by the message it is still waiting for (2021). Carried the model into LIKE MAGIC and extended it there, running the journey until the orchestration was replaced (2022–2023)." } }, { @@ -8787,7 +9631,7 @@ "to": "skills/change-management", "via": "Skills.Skill", "attrs": { - "Level": "proficiency-levels/proficient", + "Level": "proficiency-levels/competent", "Evidence": "Replaced UBS Wealth Management & Business Banking's proprietary engineering process with a market-standard one as owner of its Analysis & Design discipline, coaching project teams into it (2004–2009). Drove LIKE MAGIC's productive rollout of AI assistants across planning, delivery and operations (2022–2026)." } }, @@ -8796,8 +9640,8 @@ "to": "skills/ci-cd", "via": "Skills.Skill", "attrs": { - "Level": "proficiency-levels/proficient", - "Evidence": "Put Jenkins and Sonar in the SDLC toolchain UBS Wealth Management & Swiss Bank released inside (2009–2015). Wrote the delivery pipeline into 3AP's reference architecture so a project inherited it rather than arranging its own, Jenkins at Swisscard, Flawa iQ and Lost-Tag, CircleCI at Conperi and Ursina (2015–2022). Released Lost-Tag's iOS app to the App Store from a scripted pipeline (2016–2021). Made the build the gate on 3AP's platform, every branch analyzed on SonarCloud with coverage attached and a green mainline deploying itself to the cluster (2019–2021). Set LIKE MAGIC's standards on GitHub Actions, with unit and integration tests on every run (2022–2026)." + "Level": "proficiency-levels/expert", + "Evidence": "Put Jenkins and Sonar in the SDLC toolchain UBS Wealth Management & Swiss Bank released inside, each project's build and continuous integration generated from its design and the reference architecture (2009–2015). Wrote the delivery pipeline into 3AP's reference architecture so a project inherited it rather than arranging its own, moving it from Jenkins at Flawa iQ and Lost-Tag through CircleCI at Conperi and Ursina to GitHub Actions (2015–2022). Released Lost-Tag's iOS app to the App Store from a scripted pipeline (2016–2021). Made the build the gate on 3AP's platform, every branch analyzed on SonarCloud with coverage attached and a green mainline deploying itself to the cluster (2019–2021). Set LIKE MAGIC's standards on GitHub Actions, with unit and integration tests on every run (2022–2026). Required one shared conventions check beside each repository's own suite on every default branch in the family (2026). Added a pin test to the MCP server's deployment once a stale lockfile had built green on an older release than its pin named (2026)." } }, { @@ -8806,7 +9650,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Targeted 3AP's reference architecture at Kubernetes and no cloud in particular, so a client's platform was a deployment decision, Google Cloud at Aroov and Stay KooooK and AXA's own on-premise OpenShift (2015–2022). Ran 3AP's notification services on Swisscom's Cloud Foundry and Google Kubernetes Engine at the same time, one binding a broker as a managed service and the other running it as a container (2019). Owned LIKE MAGIC's production platform on Google Cloud (2022–2026). Designed GuestGraph for managed platform services without binding it to a provider (2026)." + "Evidence": "Targeted 3AP's reference architecture at Kubernetes and no cloud in particular, so a client's platform was a deployment decision, Google Cloud at Aroov and Stay KooooK and AXA's own on-premise OpenShift (2015–2022). Designed Flawa iQ's deployment on Swisscom's Cloud Foundry, services pushed with a manifest and the broker and database bound as managed services (2018–2019). Ran 3AP's notification services on Swisscom's Cloud Foundry and Google Kubernetes Engine at the same time, one binding a broker as a managed service and the other running it as a container (2019). Owned LIKE MAGIC's production platform on Google Cloud (2022–2026)." } }, { @@ -8815,7 +9659,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Built internal communities of practice at UBS and led the division's Java Chief Developer committee for two years (2004–2009). Co-led that committee for a further five years (2009–2015). Represented UBS in the Eclipse Modeling Platform Working Group (2010–2011). Co-organized the three Eclipse events UBS hosted in Zürich, MDD Day 2010 and Finance Day 2012 and 2014 (2010–2014). Served on the board of the Swiss Eclipse User Group within JUG Switzerland (2011–2014)." + "Evidence": "Built internal communities of practice at UBS and led the division's Java Chief Developer committee for two years (2004–2009). Co-led that committee for a further five years, the forum in which the division's lead engineers set common practice (2009–2015). Co-organized the three Eclipse events UBS hosted in Zürich, MDD Day 2010 and Finance Day 2012 and 2014 (2010–2014). Served on the board of the Swiss Eclipse User Group within JUG Switzerland (2011–2014)." } }, { @@ -8823,7 +9667,7 @@ "to": "skills/company-vision-and-strategy", "via": "Skills.Skill", "attrs": { - "Level": "proficiency-levels/expert", + "Level": "proficiency-levels/proficient", "Evidence": "Co-founded 3AP and sat on the management team that took it from 5 to about 70 people (2015–2022). Co-founded LIKE MAGIC and set its product, platform and AI strategy (2022–2026). Put two open-core products up for scrutiny with a billing model and a stated outcome each, a clean no included (2026)." } }, @@ -8833,7 +9677,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Created the technical concepts, proposals and pitches for 3AP's client work as CTO and advised Credit Suisse, Swisscard, AXA and Mobiliar on the architecture behind theirs (2015–2022)." + "Evidence": "Created the technical concepts, proposals and pitches for 3AP's client work as CTO and advised Credit Suisse, Swisscard, AXA and Mobiliar on the architecture behind theirs, diagnosing the current system before recommending anything, as with Adcubum Syrius for AXA Health and Garaio REM for Aroov (2015–2022)." } }, { @@ -8842,7 +9686,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Built Conperi's platform on Google Kubernetes Engine from cluster creation up, GPU nodes included (2018–2020). Ran the Aroov and Stay KooooK backends on Google Kubernetes Engine (2019–2022). Stood up Ursina's whole environment, cluster, managed database, certificates, ingress and tunnels, from a script rather than a console (2020). Ran the LIKE MAGIC platform on Google Kubernetes Engine (2022–2026)." + "Evidence": "Engineered the reference deployment of 3AP's architecture on Google Kubernetes Engine (2015–2022). Built Conperi's platform on Google Kubernetes Engine from cluster creation up, GPU nodes included (2018–2020). Ran the LIKE MAGIC platform on Google Kubernetes Engine (2022–2026)." } }, { @@ -8859,8 +9703,8 @@ "to": "skills/conversational-ai", "via": "Skills.Skill", "attrs": { - "Level": "proficiency-levels/proficient", - "Evidence": "Architected the integration of d3x, ailean and onsai into LIKE MAGIC's staff solution, unified multi-channel guest messaging with AI agents answering, guest insights and staff handover (2022–2026)." + "Level": "proficiency-levels/competent", + "Evidence": "Opened LIKE MAGIC's API to conversational AI providers rather than running language models in the platform, so d3x, ailean and onsai integrated themselves into the staff solution, unified multi-channel guest messaging with AI agents answering, guest insights and staff collaboration (2022–2026)." } }, { @@ -8869,7 +9713,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Fed Credit Suisse's Master Data Repository from static source-code analysis and several source systems (2016). Fed Flawa iQ's LoRaWAN telemetry into the ERP (2018–2019). Pulled 3AP's own staff directory and time records onto its platform, kept current by a scheduler rather than by anyone remembering (2019–2021). Built LIKE MAGIC's event and data hub, the sink for every business event its services published, ingested into BigQuery, idempotent on the event id so a redelivery cannot double-count and served back as a queryable event log (2022–2026)." + "Evidence": "Fed Credit Suisse's Master Data Repository by consuming the bank's existing source-code analysis and reading, transforming and loading the database schemas of its core systems (2016). Transformed Flawa iQ's LoRaWAN telemetry into the data its ERP needed and pushed it there (2018–2019). Pulled 3AP's own staff directory and time records onto its platform on a schedule, transforming each source, matching people across the directory and the billing system and reconciling records changed in both (2019–2021). Built LIKE MAGIC's event and data hub, the sink for every business event its services published, ingested into BigQuery, idempotent on the event id so a redelivery cannot double-count and served back as a queryable event log (2022–2026)." } }, { @@ -8878,7 +9722,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/competent", - "Evidence": "Built Credit Suisse's Master Data Repository so data stewards could be assigned and the golden-source distribution across the core systems mapped (2016)." + "Evidence": "Built Credit Suisse's Master Data Repository so data stewards could be assigned and the golden-source distribution across the core systems mapped (2016). Built GuestGraph's governance into the engine, a steward deciding uncertain matches, every merge explainable and reversible and every source record immutable (2026)." } }, { @@ -8886,8 +9730,8 @@ "to": "skills/data-modeling", "via": "Skills.Skill", "attrs": { - "Level": "proficiency-levels/proficient", - "Evidence": "Built the canonical data model for UBS Wealth Management & Swiss Bank's enterprise data management (2009–2015). Presented Eclipse data modeling at enterprise scale at Eclipse Day Florence, co-presented with the CDO project lead (2012). Designed the organization model behind the Flatland CDO Server bitemporally, what was in force on a date and what the repository said on a date kept as separate questions (2014–2022)." + "Level": "proficiency-levels/expert", + "Evidence": "Built the canonical data model at the center of UBS Wealth Management & Swiss Bank's Integration Architecture Tool Chain, the model every interface was specified against (2009–2015). Presented Eclipse data modeling at enterprise scale at Eclipse Day Florence, co-presented with the CDO project lead (2012). Designed the organization model behind the Flatland CDO Server bitemporally, what was in force on a date and what the repository said on a date kept as separate questions (2014–2022). Designed the metamodel of Credit Suisse's Master Data Repository: data items, source systems and their golden-source mapping (2016)." } }, { @@ -8896,7 +9740,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/competent", - "Evidence": "Ran LIKE MAGIC's GDPR compliance, including the guardrail that no internal context trained external LLMs (2022–2026)." + "Evidence": "Ran LIKE MAGIC's GDPR compliance as processor for the hotels as controllers, a data processing agreement in every customer contract, access and erasure requests answered through a defined procedure under an SLA and a guardrail that no internal context trained external LLMs (2022–2026)." } }, { @@ -8905,7 +9749,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Designed DynaRep's repository on Oracle (2004–2009). Built the Swisscard rewrite on MSSQL (2015–2016). Set 3AP's reference architecture on MongoDB for AXA Health, Flawa iQ and Conperi, then moved it to PostgreSQL from Aroov onward once those platforms showed their data was read and written relationally (2015–2022). Ran LIKE MAGIC on PostgreSQL with R2DBC and jOOQ (2022–2026)." + "Evidence": "Set 3AP's reference architecture on MongoDB for AXA Health, Flawa iQ and Conperi, then moved it to PostgreSQL from Aroov onward, the first choice having followed document stores' momentum rather than the shape of the data (2015–2022). Designed AXA Health's MongoDB data model (2017–2019). Designed Flawa iQ's MongoDB data model for its device uplinks and configuration events (2018–2019). Designed Conperi's MongoDB data model for its claims and datasets (2018–2020). Designed Aroov's PostgreSQL schema (2019–2020). Gave each Stay KooooK microservice its own PostgreSQL schema (2020–2022). Put every LIKE MAGIC tenant on one shared PostgreSQL, each tenant's rows isolated by a discriminator built into the platform's framework and again by row-level security in the database, reached reactively through R2DBC and jOOQ (2022–2026)." } }, { @@ -8913,7 +9757,7 @@ "to": "skills/devops", "via": "Skills.Skill", "attrs": { - "Level": "proficiency-levels/expert", + "Level": "proficiency-levels/proficient", "Evidence": "Wrote the delivery pipeline into 3AP's reference architecture so a project inherited it rather than arranging its own, and established the company's delivery process and stack approvals (2015–2022). Built and ran LIKE MAGIC's production platform on Google Cloud as infrastructure as code, GitHub Actions running unit and integration tests on every change and the same team building and operating it (2022–2026)." } }, @@ -8923,7 +9767,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Drove UBS Wealth Management & Swiss Bank's business architecture and capability modeling on EMF/Ecore, where a canonical data model was what every interface contract in the division was defined against (2009–2015). Cut LIKE MAGIC's platform along its 12 business domains and the capabilities under each, so service and team boundaries followed the domain rather than the technical layering (2022–2026)." + "Evidence": "Partitioned UBS Wealth Management & Swiss Bank's application architecture into application domains, a taxonomy that classified every application system template and fixed the principles delineating one from another (2009–2015). Cut LIKE MAGIC's platform along its 12 business domains and the capabilities under each, so service boundaries followed the domain rather than the technical layering (2022–2026)." } }, { @@ -8932,7 +9776,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Built DynaRep's repository-based modeling tool and its code generators for UBS mainframe service interfaces (2004–2009). Defined data types, interfaces and service contracts platform-independently on EMF and Xtext for UBS Wealth Management & Swiss Bank (2009–2015). Designed a reusable base vocabulary in Xcore for the Flatland CDO Server and an organization metamodel on top of it, where a derived feature is part of the language rather than code beside it (2014–2022)." + "Evidence": "Designed DynaRep's language for UBS mainframe service interfaces, implemented in Java as an Eclipse plugin with a graphical editor, with the code generators behind it (2004–2009). Designed the Xtext language UBS Wealth Management & Swiss Bank's projects defined their data types, interfaces and components in, platform-independently (2009–2015). Designed a reusable base vocabulary in Xcore for the Flatland CDO Server and an organization metamodel on top of it, where a derived feature is part of the language rather than code beside it (2014–2022)." } }, { @@ -8941,7 +9785,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Owned the Analysis & Design discipline in UBS Wealth Management & Business Banking and led the DynaRep project team of ten (2004–2009). Led the team that built UBS Wealth Management & Swiss Bank's Eclipse-based tooling platform and architected the SDLC toolchain several hundred engineers released inside (2009–2015). Owned the frame 3AP's engineering happened in as CTO, the organization and its roles, the reference architecture and stack and the approvals every engagement passed, through its scale to about 70 people in two countries (2015–2022). Set LIKE MAGIC's technology direction and developed its technical leadership from a founding team to 25, holding the platform and AI budget (2022–2026)." + "Evidence": "Owned the Analysis & Design discipline in UBS Wealth Management & Business Banking and led the DynaRep project team of ten (2004–2009). Led the team that built UBS Wealth Management & Swiss Bank's Eclipse-based tooling platform and architected the SDLC toolchain several hundred engineers released inside (2009–2015). Owned the frame 3AP's engineering happened in as CTO, the organization and its roles, the reference architecture and stack and the approvals every engagement passed, through its scale to about 70 people in two countries (2015–2022). Set LIKE MAGIC's technology direction and developed its technical leadership as the company grew from 5 to 25 people, holding the platform and AI budget (2022–2026)." } }, { @@ -8950,7 +9794,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Architected the Integration Architecture Tool Chain for UBS Wealth Management & Swiss Bank around a canonical data model, with a central API and interface-portfolio repository and a role-based review every team's interfaces passed (2009–2015). Presented its design to the Swiss financial-services community at Eclipse Finance Day (2013)." + "Evidence": "Architected the Integration Architecture Tool Chain for UBS Wealth Management & Swiss Bank around a canonical data model, with a central API and interface-portfolio repository and a role-based review every team's interfaces passed (2009–2015). Presented its design to the Swiss financial-services community at Eclipse Finance Day (2013). Set the principles and reference architecture every 3AP client platform was built to, the service cut, the stack and the delivery pipeline decided once for all of them (2015–2022). Mapped LIKE MAGIC's 12 business domains to the capabilities under each and set the platform's direction along that map, API-first with an event and data hub (2022–2026)." } }, { @@ -8959,7 +9803,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Wrote event-driven communication into 3AP's reference architecture, so the platforms built to it carried their work as events (2015–2022). Built Flawa iQ to consume LoRaWAN device uplinks over AMQP (2018–2019). Ran Conperi's pipeline over a Kafka backbone (2018–2020). Separated accepting a message from delivering one on 3AP's platform, a queue per channel, so a slow vendor delays delivery instead of failing the caller (2019–2021). Built Aroov's backend on Google Cloud Pub/Sub as its event hub (2019–2020). Published and consumed every LIKE MAGIC business event through Pub/Sub (2022–2026)." + "Evidence": "Built Flawa iQ to consume LoRaWAN device uplinks over AMQP (2018–2019). Ran Conperi's pipeline over a Kafka backbone (2018–2020). Separated accepting a message from delivering one on 3AP's platform, a queue per channel, so a slow vendor delays delivery instead of failing the caller (2019–2021). Designed Aroov's event flow from Garaio REM, data fetched over SFTP on a schedule, transformed into events and published to Google Cloud Pub/Sub through Spring Cloud Stream (2019–2020). Designed Stay KooooK's integration services to take external events in over webhooks and WebSockets and publish them as internal events to Pub/Sub (2020–2022). Published and consumed every LIKE MAGIC business event through Pub/Sub (2022–2026)." } }, { @@ -8968,7 +9812,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Ran Kafka as the streaming backbone of Conperi's processing pipeline (2018–2020). Built Stay KooooK's services as producers and consumers on Spring Cloud Stream over a Google Cloud Pub/Sub binder, bindings declared per service and the transport swappable underneath (2020–2022). Carried that into LIKE MAGIC at 89M+ platform events a year (2022–2026)." + "Evidence": "Ran Kafka as the streaming backbone of Conperi's processing pipeline, one topic per stage so each service consumed the output of the stage before it (2018–2020). Designed Stay KooooK's topic layout, redelivery handling and consumers that processed each event once, on Spring Cloud Stream over a Google Cloud Pub/Sub binder with bindings declared per service so the transport stayed swappable (2020–2022). Carried that into LIKE MAGIC at 89M+ platform events a year (2022–2026)." } }, { @@ -8986,7 +9830,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Built the model browser published with the Flatland CDO Server in AngularJS (2014–2022). Built the Swisscom delivery cockpit's React front end (2015). Built the Angular front end over Credit Suisse's Master Data Repository (2016). Carried Lost-Tag into a browser, a hybrid mobile application and a native iOS app in AngularJS (2016–2021). Built AXA Health's React and Next.js frontend (2017–2019). Built a React front end for Flawa iQ's sensor MVP (2018–2019). Owned Stay KooooK's React and TypeScript frontend (2020–2022). Set LIKE MAGIC's frontend on React, TypeScript and MUI (2022–2026)." + "Evidence": "Built the model browser published with the Flatland CDO Server in AngularJS (2014–2022). Built the Swisscom delivery cockpit's React front end (2015). Built the Angular front end over Credit Suisse's Master Data Repository (2016). Carried Lost-Tag into a browser, a hybrid mobile application and a native iOS app in AngularJS (2016–2021). Built AXA Health's React and Next.js frontend (2017–2019). Built a React front end for Flawa iQ's sensor MVP (2018–2019). Owned Stay KooooK's React and TypeScript frontend (2020–2022)." } }, { @@ -8995,7 +9839,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Wrote a plugin authenticating the Flatland CDO Server against LDAP, later taking bearer tokens at the REST boundary (2014–2022). Made identity 3AP's platform concern rather than each service's, Keycloak issuing tokens, social sign-in trusted into it and the gateway verifying before routing (2019–2021). Put Keycloak and OAuth2 in front of every route of the Ursina gateway, with a token relay written as a filter of its own because the framework's never refreshed the token (2020). Built zero-trust API boundaries into the LIKE MAGIC platform (2022–2026)." + "Evidence": "Wrote a plugin authenticating the Flatland CDO Server against LDAP, later taking bearer tokens at the REST boundary (2014–2022). Put OAuth 2.0 at the boundary of every service in 3AP's reference architecture (2015–2022). Made identity 3AP's platform concern rather than each service's, Keycloak issuing tokens, social sign-in trusted into it and the gateway verifying before routing (2019–2021). Put Keycloak and OAuth2 in front of every route of the Ursina gateway, with a token relay written as a filter of its own because the framework's never refreshed the token (2020). Built zero-trust API boundaries into the LIKE MAGIC platform, partners on the public API holding OAuth 2.0 tokens scoped to their resources, and guests and employees role-based ones (2022–2026)." } }, { @@ -9004,7 +9848,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Owned incident response for LIKE MAGIC's production platform, from the alert an SLO breach raised to the fix, on a multi-tenant SaaS where one incident reaches every tenant at once (2022–2026)." + "Evidence": "Owned incident response for LIKE MAGIC's production platform on a multi-tenant SaaS where one incident reaches every tenant at once, alerts routed automatically by severity to email, SMS and Slack under site reliability engineering, and critical, security-relevant incidents escalated to a board inside the information-security management (2022–2026)." } }, { @@ -9013,7 +9857,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/competent", - "Evidence": "Built LIKE MAGIC's information-security management toward ISO 27001, in progress at exit, with GDPR compliance and zero-trust API boundaries (2022–2026)." + "Evidence": "Built LIKE MAGIC's information-security management toward ISO 27001, in progress at exit, with GDPR compliance, zero-trust API boundaries and an escalation board for critical, security-relevant incidents already running under it (2022–2026)." } }, { @@ -9031,7 +9875,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Architected UBS Wealth Management & Swiss Bank's Integration Architecture Tool Chain, built to reduce point-to-point connections to an integration bus over defined concepts and open interface standards (2009–2015). Owned AXA Health's complete integration architecture into Adcubum Syrius (2017–2019). Reached from a cloud application into a broadband operator's own HBase and PostgreSQL for Ursina, over tunnels that left neither exposed (2020). Integrated 3 PMS, Mews, Apaleo and Oracle OHIP, 15+ smart-lock systems and 3 AI communication vendors into LIKE MAGIC (2022–2026)." + "Evidence": "Architected UBS Wealth Management & Swiss Bank's Integration Architecture Tool Chain, built to reduce point-to-point connections to an integration bus over defined concepts and open interface standards (2009–2015). Owned AXA Health's complete integration architecture into Adcubum Syrius (2017–2019). Reached from a cloud application into a broadband operator's own HBase and PostgreSQL for Ursina, over tunnels that left neither exposed (2020). Integrated 3 PMS (Mews, Apaleo and Oracle OHIP) and 15+ smart-lock systems into LIKE MAGIC, and opened its API so 3 AI communication vendors integrated themselves (2022–2026)." } }, { @@ -9040,7 +9884,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/competent", - "Evidence": "Designed Flawa iQ's sensing and LoRaWAN connectivity and the backend ingesting device telemetry into the ERP (2018–2019)." + "Evidence": "Researched Flawa iQ's sensing to RFID-tagged modules, chose LoRaWAN for the MVP after weighing it against GSM and built the backend feeding device telemetry into the ERP (2018–2019)." } }, { @@ -9048,7 +9892,7 @@ "to": "skills/it-governance", "via": "Skills.Skill", "attrs": { - "Level": "proficiency-levels/expert", + "Level": "proficiency-levels/proficient", "Evidence": "Set the role-based review process for UBS Wealth Management & Swiss Bank's central interface-portfolio repository (2009–2015). Ran delivery governance and technology-stack approvals at 3AP (2015–2022)." } }, @@ -9058,7 +9902,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Owned technology strategy and the reference architecture every engagement had to fit as 3AP's CTO (2015–2022). Defined LIKE MAGIC's platform strategy, API-first with a managed public API, an event and data hub and an MCP-server layer as the direction so agents consume the platform directly (2022–2026)." + "Evidence": "Owned technology strategy and the reference architecture every engagement had to fit as 3AP's CTO (2015–2022). Defined LIKE MAGIC's platform strategy, API-first with a managed public API and an event and data hub, evolving toward an MCP-server layer so agents consume the platform directly, and led the Camunda reassessment at renewal, recommending building on the engine before the decision went to removal (2022–2026)." } }, { @@ -9067,7 +9911,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Built UBS's web portals in Java Portlets and JSP on IBM Portal Server (2001–2004). Built DynaRep's Eclipse plugins, web services and generators in Java (2004–2009). Built the Flatland CDO Server as an OSGi product in Java (2014–2022). Put Java and Spring Boot into 3AP's reference architecture so every platform built to it ran on them, Swisscard, AXA Health, Flawa iQ on Java 11, Conperi, Aroov and Stay KooooK (2015–2022). Ran LIKE MAGIC on Spring Boot and WebFlux (2022–2026)." + "Evidence": "Built UBS's web portals in Java Portlets and JSP on IBM Portal Server (2001–2004). Built DynaRep's Eclipse plugins, web services and generators in Java (2004–2009). Built the Flatland CDO Server as an OSGi product in Java (2014–2022). Put Java and Spring Boot into 3AP's reference architecture so every platform built to it ran on them, AXA Health, Flawa iQ on Java 11, Conperi, Aroov and Stay KooooK (2015–2022). Wrote Java on LIKE MAGIC's Spring Boot and WebFlux platform, including the reference implementation of each pattern its architecture used (2022–2026)." } }, { @@ -9076,7 +9920,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Established communities of practice at UBS (2004–2009). Built the LIKE MAGIC Mental Model as the organization's shared context layer (2022–2026). Published CompanyGraph so the same layer can be kept as Markdown in a repository with a history (2026)." + "Evidence": "Established communities of practice at UBS and kept the division's methodology and guidance in Rational Method Composer, published as its SDLC instance (2004–2009). Built the LIKE MAGIC Mental Model as the organization's shared context layer (2022–2026). Published CompanyGraph so the same layer can be kept as Markdown in a repository with a history (2026)." } }, { @@ -9094,7 +9938,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/familiar", - "Evidence": "Architected the pipeline, the labeling tool and the serving path for Conperi, 3AP's applied-research proof of concept with ZHAW for reading health-insurance invoices (2018–2020). Followed the modeling closely enough to build what it needed, GPU training nodes, a labeled dataset where none existed and held-out evaluation reported per document; the models themselves were ZHAW's" + "Evidence": "Architected the pipeline, the labeling tool and the serving path for Conperi, 3AP's applied-research proof of concept with ZHAW for reading health-insurance invoices, and followed ZHAW's modeling closely enough to supply what it needed — GPU training nodes and a labeled dataset where none existed (2018–2020)." } }, { @@ -9103,7 +9947,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Onboarded Java developers onto UBS's portal (2001–2004). Coached UBS project teams in the Analysis & Design methodology and built internal communities of practice (2004–2009). Mentored the engineers at 3AP as it scaled to about 70 people (2015–2022). Developed the technical leadership at LIKE MAGIC as it grew from 5 to 25 (2022–2026)." + "Evidence": "Coached UBS project teams in the Analysis & Design methodology and built internal communities of practice (2004–2009). Ran workshops with UBS engineering teams on the concepts of the Integration Architecture Tool Chain and helped build the UBS Academy's education on the software development lifecycle (2009–2015). Mentored 3AP's engineers through the reference architecture as the company scaled to about 70 people, developing its reference sample, explaining it to each team and guiding the developers building on it (2015–2022). Coached LIKE MAGIC's engineers through the technology gate and the Change Advisory Board, arguing in each review what a decision had to change to fit the architecture and stay compliant (2022–2026)." } }, { @@ -9112,7 +9956,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Authored 3AP's microservice reference architecture and built AXA Health, Flawa iQ and Aroov to it: event-driven, 12-factor, the service cut driven by business capability (2015–2022). Cut Lost-Tag into Spring Boot services behind a gateway with service discovery (2016–2021). Carried the architecture into LIKE MAGIC as the platform's own, booking, guest, profile, payment, door access, messaging, operation and analytics services, each contract-first and every vendor behind its own connector with a fallback path (2022–2026)." + "Evidence": "Authored 3AP's microservice reference architecture and built AXA Health to it: event-driven, 12-factor, the service cut driven by business capability (2015–2022). Cut Lost-Tag into Spring Boot services behind a gateway with service discovery (2016–2021). Designed the microservice cut of Flawa iQ's backend (2018–2019). Designed the microservice cut of Conperi's processing pipeline (2018–2020). Designed the microservice cut of Aroov's backend (2019–2020). Cut Stay KooooK into microservices, each holding its own schema in PostgreSQL (2020–2022). Carried the architecture into LIKE MAGIC as the platform's own, cut along its 12 business domains with booking, guest, payment and door access among the services, each contract-first and every vendor behind its own connector with a fallback path (2022–2026)." } }, { @@ -9120,8 +9964,8 @@ "to": "skills/mlops", "via": "Skills.Skill", "attrs": { - "Level": "proficiency-levels/competent", - "Evidence": "Set up Conperi's training and serving split, a training service, a registry versioning each model with the metadata to reproduce it and a separate serving service so a model could be replaced without redeploying its consumers (2018–2020). It stayed a proof of concept, so nothing here covers drift, rollback or retraining in production" + "Level": "proficiency-levels/familiar", + "Evidence": "Set up Conperi's training and serving split — a training service, a registry versioning each model with the metadata to reproduce it and a separate serving service — so a model could be replaced without redeploying its consumers, in a proof of concept that never ran drift, rollback or retraining in production (2018–2020)." } }, { @@ -9130,7 +9974,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Wrote the degree dissertation on Model-Driven Architecture for component-based and service-oriented architecture (2002–2006). Built UBS's DynaRep model-driven repository and code generator (2004–2009). Built the Eclipse-based Integration Architecture Tool Chain for UBS Wealth Management & Swiss Bank on EMF, Xcore, Xtext and Xtend with a CDO repository (2009–2015). Spoke on models as the enterprise's first-class artifacts at Eclipse MDD Day (2010). Presented Eclipse data modeling at enterprise scale at Eclipse Day Florence (2012). Built the Flatland CDO Server, an Eclipse CDO model repository serving any model over REST without code written for that model (2014–2022). Built Credit Suisse's Master Data Repository on it (2016)." + "Evidence": "Wrote the degree dissertation on Model-Driven Architecture for component-based and service-oriented architecture (2002–2006). Built UBS's DynaRep model-driven repository and code generator (2004–2009). Built the Eclipse-based Integration Architecture Tool Chain for UBS Wealth Management & Swiss Bank on EMF, Xcore, Xtext and Xtend with a CDO repository (2009–2015). Presented UBS's enterprise model and its generation path to the Eclipse Modeling Platform Working Group (2010). Spoke on models as the enterprise's first-class artifacts at Eclipse MDD Day (2010). Presented Eclipse data modeling at enterprise scale at Eclipse Day Florence (2012). Built the Flatland CDO Server, an Eclipse CDO model repository serving any model over REST without code written for that model (2014–2022). Built Credit Suisse's Master Data Repository on it from a metamodel of data items, source systems and golden-source mapping that the repository and its front end followed (2016)." } }, { @@ -9139,7 +9983,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Built and scaled LIKE MAGIC's multi-tenant hospitality SaaS platform, serving 90+ customers, 430+ properties and 16,000+ units across the DACH region as of 2026 (2022–2026)." + "Evidence": "Built and scaled LIKE MAGIC's multi-tenant hospitality SaaS platform to 90+ customers, 430+ properties and 16,000+ units across the DACH region, on one shared infrastructure chosen over a stack per customer for lower operating cost and a single deployment, each tenant isolated by a discriminator in the framework and by row-level security in the database (2022–2026)." } }, { @@ -9157,7 +10001,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Published the Flatland CDO Server under the Eclipse Public License and kept it public for eight years, forked by three strangers and used as the foundation of Credit Suisse's Master Data Repository (2014–2022). Published CompanyGraph and GuestGraph as open core under Apache 2.0: a license saying what is open and what could be paid for, conventions for a contributor, specs keeping the rejected alternatives and a release contract of tags and manifests (2026)." + "Evidence": "Published the Flatland CDO Server under the Eclipse Public License in 2014 and kept it public since, forked by strangers building on it and used as the foundation of Credit Suisse's Master Data Repository (2014–2022). Published CompanyGraph and GuestGraph as open core under Apache 2.0, a license saying what is open and what could be paid for, with a release contract of tags and manifests (2026)." } }, { @@ -9166,7 +10010,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Defined UBS's department-wide role model, each role with its tasks and competencies, put through a formal consultation before it took effect (2004–2009). Described 3AP's own organization as a model rather than a chart on the Flatland CDO Server, circles inside circles, roles carrying responsibilities and assignments with a capacity and a validity window, answerable by date (2014–2022). Shaped 3AP's technology organization as it scaled to about 70 people, including a near-shore team in Serbia (2015–2022). Shaped LIKE MAGIC's as it grew to 25 (2022–2026)." + "Evidence": "Defined UBS's department-wide role model, each role with its tasks and competencies, put through a formal consultation before it took effect (2004–2009). Designed 3AP's structure of circles and roles as the company scaled to about 70 people, and kept it as a model on the Flatland CDO Server (2015–2022). Defined LIKE MAGIC's technology roles, the technical architect, the business architect and the site reliability engineer, and led the functional team they formed (2022–2026)." } }, { @@ -9175,7 +10019,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Architected the SDLC toolchain for UBS Wealth Management & Swiss Bank, Jira, Confluence, GitHub Enterprise, Maven, Jenkins and Sonar (2009–2015). Built Conperi's platform from cluster creation to the Kafka backbone, tracing, the OAuth gateway and GPU nodes (2018–2020). Built the platform 3AP's own projects and internal systems started from, a running gateway, an identity provider and shared capabilities rather than an empty cluster (2019–2021). Owned the LIKE MAGIC platform as the product every team built on (2022–2026)." + "Evidence": "Architected the SDLC toolchain for UBS Wealth Management & Swiss Bank, Jira, Confluence, GitHub Enterprise, Maven, Jenkins and Sonar (2009–2015). Built Conperi's platform from cluster creation to the Kafka backbone, tracing, the OAuth gateway and GPU nodes, and made it self-service so ZHAW's researchers deployed model services and trained without asking 3AP (2018–2020). Built the platform 3AP's own projects and internal systems started from, a running gateway, an identity provider and shared capabilities rather than an empty cluster (2019–2021). Owned the LIKE MAGIC platform as the product every team built on, self-service so a team added a service, schemas or tables and the platform's CI/CD and infrastructure as code carried them to production (2022–2026)." } }, { @@ -9184,7 +10028,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Owned the Camunda (Zeebe) orchestration of the guest journey at Stay KooooK (2020–2022). Published a runnable sample of the journey on Zeebe with the article on monitoring it (2021). Carried the orchestration into LIKE MAGIC, then led the reassessment at contract renewal and the move off it (2022–2023). Co-presented the platform at CamundaCon in Berlin (2022). Featured in Camunda's published case study citing a 95% self-check-in rate and 7,000 process instances per month (2023)." + "Evidence": "Owned the Camunda (Zeebe) orchestration of the guest journey at Stay KooooK (2020–2022). Published a runnable sample of the journey on Zeebe with the article on monitoring it (2021). Carried the orchestration into LIKE MAGIC, then led the reassessment at contract renewal, recommending building on the engine properly before the decision went to removal (2022–2023). Co-presented the platform at CamundaCon in Berlin, speaking to how it ran and monitored the guest journey on Camunda (2022). Featured in Camunda's published case study citing a 95% self-check-in rate and 7,000 process instances per month (2023)." } }, { @@ -9192,7 +10036,7 @@ "to": "skills/product-discovery", "via": "Skills.Skill", "attrs": { - "Level": "proficiency-levels/competent", + "Level": "proficiency-levels/familiar", "Evidence": "Put CompanyGraph and GuestGraph up for scrutiny in the open, each with a talk, a billing model and a stated outcome including a clean no (2026)." } }, @@ -9201,8 +10045,8 @@ "to": "skills/product-management", "via": "Skills.Skill", "attrs": { - "Level": "proficiency-levels/proficient", - "Evidence": "Defined and executed LIKE MAGIC's product and platform strategy as co-founder and Head of Technology, API-first with a managed public API, an event and data hub and three AI communication vendors integrated behind one staff inbox (2022–2026)." + "Level": "proficiency-levels/competent", + "Evidence": "Defined and executed LIKE MAGIC's product and platform strategy as co-founder and Head of Technology, API-first with a managed public API, an event and data hub and three conversational AI providers integrating themselves into the staff solution through that API (2022–2026)." } }, { @@ -9211,7 +10055,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Spoke at UBS-internal brown-bag sessions on modeling, toolchain and architecture (2009–2015). Spoke at Eclipse MDD Day on models as the enterprise's first-class artifacts (2010). Spoke at Eclipse Day Florence on data modeling at enterprise scale (2012). Spoke at Eclipse Finance Day on interface management in a large enterprise (2012). Spoke at Eclipse Finance Day on the UBS Integration Architecture Tool Chain (2013). Co-presented at CamundaCon in Berlin on how SV Group became a SaaS business on Camunda (2022). Gave a talk each on CompanyGraph and GuestGraph, deck, PDF and audio in German and English (2026)." + "Evidence": "Spoke at Eclipse MDD Day on models as the enterprise's first-class artifacts (2010). Spoke at Eclipse Day Florence on data modeling at enterprise scale (2012). Spoke at Eclipse Finance Day on interface management in a large enterprise (2012). Spoke at Eclipse Finance Day on the UBS Integration Architecture Tool Chain (2013). Co-presented at CamundaCon in Berlin on how SV Group became a SaaS business on Camunda (2022). Published a narrated introduction talk each on CompanyGraph and GuestGraph, deck, PDF and audio in German and English (2026)." } }, { @@ -9220,7 +10064,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Owned the Analysis & Design discipline in UBS Wealth Management & Business Banking's RUP rollout, replacing the proprietary process with a market-standard one, writing its modeling methodology in Rational Method Composer and coaching the division's teams into it (2004–2009). Modeled Lost-Tag's actors and their use cases before the platform was built (2016–2021). Writes a reviewed specification before every plan and build on CompanyGraph and GuestGraph (2026)." + "Evidence": "Owned the Analysis & Design discipline in UBS Wealth Management & Business Banking's RUP rollout, replacing the proprietary process with a market-standard one, writing its modeling methodology in Rational Method Composer and coaching the division's teams into it (2004–2009). Modeled Lost-Tag's actors and their use cases before the platform was built (2016–2021)." } }, { @@ -9229,7 +10073,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Owned site reliability for LIKE MAGIC's production platform across three environments, SLOs defined and alerted on, performance held as volume grew and automated weekly reporting against defined thresholds (2022–2026)." + "Evidence": "Owned site reliability for LIKE MAGIC's production platform, instrumented on Cloud Monitoring and Cloud Trace with alerting driven by defined SLOs and automated by severity to the people responsible (2022–2026)." } }, { @@ -9238,7 +10082,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Led development and delivery of UBS's WPS Portal application (2001–2004). Took software-architect responsibility for UBS's DynaRep platform (2004–2009). Set the reference architecture every 3AP engagement was built to (2015–2022). Owned Stay KooooK's complete front-to-back architecture on reactive Spring Boot WebFlux (2020–2022). Designed GuestGraph's identity-resolution engine from a written specification (2026)." + "Evidence": "Created the software architecture of UBS's WPS Portal application and led its development and delivery (2001–2004). Took software-architect responsibility for UBS's DynaRep platform (2004–2009). Set the reference architecture every 3AP engagement was built to (2015–2022). Owned Stay KooooK's complete front-to-back architecture on reactive Spring Boot WebFlux (2020–2022). Owned LIKE MAGIC's architecture decisions and wrote the reference implementation of each pattern its architecture used (2022–2026). Designed GuestGraph's identity-resolution engine from three written specifications (2026)." } }, { @@ -9247,7 +10091,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Built UBS's intranet and internet portals and the ACE Foundation beneath UBS Quotes (2001–2004). Architected and built DynaRep's Eclipse plugins, web services and code generators (2004–2009). Built the Swisscom delivery cockpit end to end (2015). Set the engineering practice of LIKE MAGIC's Spring Boot WebFlux platform, tests as part of finishing a feature rather than a phase after it (2022–2026)." + "Evidence": "Built UBS's intranet and internet portals and developed features of the ACE Foundation beneath UBS Quotes (2001–2004). Architected and built DynaRep's Eclipse plugins, web services and code generators (2004–2009). Built the Swisscom delivery cockpit end to end (2015). Wrote the reference implementation of each pattern on LIKE MAGIC's Spring Boot WebFlux platform, so a team built a new service from working code, unit and integration tests running on every pipeline (2022–2026)." } }, { @@ -9265,7 +10109,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Owned the Analysis & Design discipline in the Rational Unified Process and Enterprise Unified Process rollout at UBS Wealth Management & Business Banking, replacing the proprietary process with a market standard (2004–2009). Architected the division's SDLC toolchain (2009–2015)." + "Evidence": "Owned the Analysis & Design discipline in the Rational Unified Process and Enterprise Unified Process rollout at UBS Wealth Management & Business Banking, replacing the proprietary process with a market standard, its methodology written in Rational Method Composer, published as the division's SDLC instance and coached into the project teams (2004–2009). Architected the division's SDLC toolchain (2009–2015)." } }, { @@ -9273,8 +10117,8 @@ "to": "skills/software-testing", "via": "Skills.Skill", "attrs": { - "Level": "proficiency-levels/proficient", - "Evidence": "Built the Swisscard rewrite on Jenkins and JUnit, with tests as engineering practice rather than a phase after the build (2015–2016). Made unit and integration tests part of how a feature was finished across 3AP's client engagements, new behavior covered at the level that catches its regression (2015–2022). Ran them on every LIKE MAGIC pipeline on GitHub Actions (2022–2026)." + "Level": "proficiency-levels/competent", + "Evidence": "Made unit and integration tests part of how a feature was finished across 3AP's client engagements, new behavior covered at the level that catches its regression (2015–2022). Ran them on every LIKE MAGIC pipeline on GitHub Actions (2022–2026). Held every blust.ch page to browser assertions and its share cards to comparison against the pages they were rendered from (2026)." } }, { @@ -9283,7 +10127,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Led 3AP's client bids on solution architecture, public tenders under Swiss procurement law included (2015–2022). Designed Flawa iQ's RFID and LoRaWAN solution, delivered as 10 working prototypes (2018–2019). Designed Ursina's runtime, the path into the operator's network and the authentication boundary (2020). Owned Stay KooooK's solution architecture front to back and presented it at the winning pitch (2020–2022)." + "Evidence": "Led 3AP's client bids on solution architecture, public tenders under Swiss procurement law included (2015–2022). Designed Flawa iQ's RFID and LoRaWAN solution, delivered as 10 working prototypes (2018–2019). Designed Ursina's path into the operator's network and its authentication boundary (2020). Owned Stay KooooK's solution architecture front to back and presented it at the winning pitch (2020–2022)." } }, { @@ -9292,7 +10136,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Led 3AP's client bids across proposal, pitch and negotiation, public tenders under Swiss procurement law included (2015–2022). Won Credit Suisse without a tender, a problem known inside the bank reached through the network and a proposed architecture rather than a specification (2016). Won AXA Health, Flawa iQ, Aroov and Stay KooooK on a solution architecture presented by the people who would build it (2017–2020). Put two open-core products in front of a professional network with a billing model each (2026)." + "Evidence": "Led 3AP's client bids on solution architecture, from technical concept to proposal and pitch, public tenders under Swiss procurement law included (2015–2022). Won Credit Suisse without a tender, a problem known inside the bank reached through the network and a proposed architecture rather than a specification (2016). Won AXA Health, Flawa iQ, Aroov and Stay KooooK by presenting the solution architecture in the pitch as the people who would build it (2017–2020)." } }, { @@ -9301,7 +10145,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Built GuestGraph's identity-resolution engine and CompanyGraph, meta-model, tooling design and this reference instance, from written specifications, each reviewed before its plan and build, under conventions an agent pass enforces (2026)." + "Evidence": "Built GuestGraph's identity-resolution engine and CompanyGraph, meta-model, tooling design and this reference instance, from written specifications, each reviewed before its plan and build, under written conventions every repository in the family vendors (2026)." } }, { @@ -9309,8 +10153,8 @@ "to": "skills/stakeholder-management", "via": "Skills.Skill", "attrs": { - "Level": "proficiency-levels/proficient", - "Evidence": "Advised clients including Credit Suisse, Swisscard, AXA and Mobiliar as 3AP's CTO and joined each project's ramp-up to negotiate with the client's security and platform organizations (2015–2022). Presented the solution architecture in the winning Aroov pitch (2019). Presented the solution architecture in the winning Stay KooooK pitch (2020)." + "Level": "proficiency-levels/competent", + "Evidence": "Advised clients including Credit Suisse, Swisscard, AXA and Mobiliar as 3AP's CTO and joined each project's ramp-up to negotiate with the client's security and platform organizations (2015–2022)." } }, { @@ -9328,7 +10172,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/expert", - "Evidence": "Wrote the Analysis & Design methodology and guidance a UBS division worked to (2004–2009). Published an article on process monitoring with BPMN, with the runnable sample it describes (2021). Built the LIKE MAGIC Mental Model as the organization's written context layer (2022–2026). Wrote CompanyGraph's conventions, design specs and worked example, prose other people follow for readers who were not in the room (2026)." + "Evidence": "Wrote the Analysis & Design methodology and guidance a UBS division worked to (2004–2009). Published an article on process monitoring with BPMN, with the runnable sample it describes (2021). Wrote the developer documentation for LIKE MAGIC's public API, which conversational AI providers and other partners integrated against without LIKE MAGIC building the integration (2022–2026). Wrote CompanyGraph's conventions, design specs and worked example, prose other people follow for readers who were not in the room (2026)." } }, { @@ -9337,7 +10181,7 @@ "via": "Skills.Skill", "attrs": { "Level": "proficiency-levels/proficient", - "Evidence": "Ran LIKE MAGIC's AI and automation tooling as a managed portfolio: Claude Code team licenses, multi-provider tooling across Claude, Gemini and Copilot and the call to self-host n8n on its own Kubernetes rather than take the hosted service (2022–2026). Led the same call on Camunda at contract renewal, where the platform used a fraction of the engine and the choice was to build on it or leave it (2022–2023)." + "Evidence": "Ran LIKE MAGIC's AI and automation tooling as a managed portfolio: Claude Code team licenses, multi-provider tooling across Claude, Gemini and Copilot and the call to self-host n8n on its own Kubernetes rather than take the hosted service (2022–2026). Led the same call on Camunda at contract renewal, where the platform used a fraction of the engine and the choice was to build on it or leave it, recommending building on it before the decision went to removal (2022–2023)." } }, { diff --git a/model/og.png b/model/og.png index aef46c3..a86f146 100644 Binary files a/model/og.png and b/model/og.png differ diff --git a/model/og.sha b/model/og.sha index 48b517f..a56c2df 100644 --- a/model/og.sha +++ b/model/og.sha @@ -1 +1 @@ -510ba29139eeb770b264592bee14c0b18c1bb1eea713c32b5bb084788eb07a1a +807c276e6a17c12d84499d3e56b42ebe3cd2d56ad34c6852f4b0cbd9cefb95d3 diff --git a/package-lock.json b/package-lock.json index 9768a04..56063fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "devDependencies": { "@robertblust/design": "github:robertblust/design#v0.63.0", - "companygraph-meta-model": "github:companygraph/meta-model#v0.27.0", + "companygraph-meta-model": "github:companygraph/meta-model#v0.28.0", "pdf-lib": "^1.17.1", "playwright": "^1.63.0" } @@ -47,8 +47,8 @@ } }, "node_modules/companygraph-meta-model": { - "version": "0.27.0", - "resolved": "git+ssh://git@github.com/companygraph/meta-model.git#4c65e247957009743e5f5fb8a374ac15704f125d", + "version": "0.28.0", + "resolved": "git+ssh://git@github.com/companygraph/meta-model.git#f6b212b792037548723fb3598a920838e5e789e5", "dev": true, "engines": { "node": ">=22" diff --git a/package.json b/package.json index 36e20af..0291942 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ }, "devDependencies": { "@robertblust/design": "github:robertblust/design#v0.63.0", - "companygraph-meta-model": "github:companygraph/meta-model#v0.27.0", + "companygraph-meta-model": "github:companygraph/meta-model#v0.28.0", "pdf-lib": "^1.17.1", "playwright": "^1.63.0" } diff --git a/principles/index.html b/principles/index.html index 6e7071f..42d2b3c 100644 --- a/principles/index.html +++ b/principles/index.html @@ -691,7 +691,7 @@

Production is the finish line

-

Generated from robertblust/mental-model@db44174 — model/vision.md and model/values/. That repository is an instance of CompanyGraph, a meta-model for describing a company as a graph of Markdown.

+

Generated from robertblust/mental-model@d26bc57 — model/vision.md and model/values/. That repository is an instance of CompanyGraph, a meta-model for describing a company as a graph of Markdown.

diff --git a/principles/og.sha b/principles/og.sha index ca386ee..0427351 100644 --- a/principles/og.sha +++ b/principles/og.sha @@ -1 +1 @@ -204fd5932d679303bda3508fff46af398ce07fe8419ea3399e45a6620bf189be +b7e21368d8befc9d93ba1b3a4cae8c2590a18e42193c59588d4195e0cb05462d diff --git a/sitemap.xml b/sitemap.xml index beb2690..205e22b 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -4,11 +4,11 @@ https://blust.ch/talks/2026-09-17monthly0.8 https://blust.ch/talks/mental-model/2026-09-08monthly0.9 https://blust.ch/talks/essential-complexity/2026-09-08monthly0.9 - https://blust.ch/principles/2026-09-17monthly0.8 - https://blust.ch/model/2026-09-17monthly0.8 - https://blust.ch/surfaces/2026-09-17monthly0.8 - https://blust.ch/team/2026-09-17monthly0.8 - https://blust.ch/timeline/2026-09-17monthly0.8 + https://blust.ch/principles/2026-09-18monthly0.8 + https://blust.ch/model/2026-09-18monthly0.8 + https://blust.ch/surfaces/2026-09-18monthly0.8 + https://blust.ch/team/2026-09-18monthly0.8 + https://blust.ch/timeline/2026-09-18monthly0.8 https://blust.ch/privacy/2026-09-17 https://blust.ch/ideas/2026-09-17 diff --git a/source.json b/source.json index 56612ff..bcb9762 100644 --- a/source.json +++ b/source.json @@ -1 +1 @@ -{"repo":"robertblust/mental-model","commit":"db441743bf7fb952e607f5469ea126240b63a9ed"} +{"repo":"robertblust/mental-model","commit":"d26bc5732c5776f433f300b4df197a1f561decda"} diff --git a/surfaces/index.html b/surfaces/index.html index 316156c..2a3b3a3 100644 --- a/surfaces/index.html +++ b/surfaces/index.html @@ -753,7 +753,7 @@

-
The model
mental-model
@db44174
+
The model
mental-model
@d26bc57