User-confirmed 2026-09-11, extending the Arbeitszeugnis line about supervising students and their theses. Zweitpruefer (second examiner) is a FORMAL role carrying assessment responsibility, not informal mentoring. That matters because "developing other engineers" keeps appearing as a JD requirement and the profile has otherwise only team-role evidence to offer - Security Champion, the Generali Java community, Application Owner training. SBB asked for it explicitly and the prepared answer had to fall back on exactly those. Limits recorded with it: exactly ONE thesis is confirmed as second-examiner work, so it must not be pluralised; the wider number of students supervised is not recorded; and none of it is people management. `forbidden` now blocks "supervised multiple theses", "lecturer", "taught a course" and an academic appointment reading. Carried into both data bundles so it can actually be selected - the BS-6 lesson from the same week: evidence that reaches no bundle cannot be chosen. Validator PASS, 37/37 tests. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Qej5SBvhcbGXHwLqNWiskM
986 lines
53 KiB
JSON
986 lines
53 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"last_verified": "2026-08-27",
|
|
"authority": {
|
|
"description": "Machine-readable source of truth for all future application documents.",
|
|
"precedence": [
|
|
"canonical claims",
|
|
"config corrections",
|
|
"verified references",
|
|
"experience files",
|
|
"bundles"
|
|
],
|
|
"raw_extractions_are_immutable": true,
|
|
"historical_outputs_are_never_sources": true
|
|
},
|
|
"identity": {
|
|
"name": "Dennis Thiessen",
|
|
"degree_suffix": "M.Eng.",
|
|
"email": "dennis@thiessen.io",
|
|
"phone": "+41 795 955 585",
|
|
"location": "Bern, Switzerland",
|
|
"linkedin": "linkedin.com/in/dennis-thiessen",
|
|
"citizenship": "German citizen (EU)",
|
|
"swiss_permit": "B residence permit",
|
|
"swiss_work_authorization": "Authorized to work in Switzerland; no visa or employer sponsorship required",
|
|
"work_authorization_source": "User-confirmed 2026-07-27",
|
|
"resume_usage": "Work authorization is optional in the header; mention the B permit or no-sponsorship status when it resolves recruiter uncertainty or the application asks for it",
|
|
"languages": {
|
|
"German": "native",
|
|
"English": "fluent",
|
|
"Norwegian": "basic",
|
|
"Russian": "basic"
|
|
},
|
|
"forbidden_personal_data": [
|
|
"date of birth",
|
|
"marital status",
|
|
"gender",
|
|
"children"
|
|
],
|
|
"language_note": "GERMAN (native) and ENGLISH (fluent) ONLY. The Swisscom Zwischenzeugnis of October 2025 states he also uses FRENCH and ITALIAN professionally on a regular basis - the user reviewed that line on 2026-09-11 and confirmed it is an ERROR IN THE DOCUMENT. Do not add French or Italian to any CV, cover letter or application form on the strength of that sentence, and do not re-open the question the next time someone reads the Zeugnis. Practical warning: if that Zeugnis is submitted alongside an application, a reader may take the sentence at face value and ask about French."
|
|
},
|
|
"education": [
|
|
{
|
|
"id": "EDU-MENG",
|
|
"degree": "M.Eng. Computer Aided Engineering",
|
|
"display_focus": "Software Design & Engineering",
|
|
"institution": "Universitat der Bundeswehr Munchen",
|
|
"start": "2012-04",
|
|
"end": "2013-10",
|
|
"thesis_institution": "Tongji University, Shanghai",
|
|
"thesis_title": "Development of a Web-Based Remote Fault Diagnosis System",
|
|
"final_grade": "1.6 (German scale, 1.0 best / 4.0 lowest pass) -- user-confirmed 2026-08-26",
|
|
"final_grade_us_4pt_orientation_only": "3.4 -- modified Bavarian formula, US = 1 + 3*(4.0-G)/(4.0-1.0), which simplifies to 5.0 - G. Use ONLY when a form demands a 4.0-scale GPA; always state the German scale alongside it. Never present as a natively-awarded GPA. ORIENTATION AID, NOT A CANONICAL QUALIFICATION and NOT a recognised conversion: the modified Bavarian formula converts FOREIGN grades INTO the German system, so inverting it to produce a US GPA is not an accepted method, and the TUM source describes even its forward calculator as orientation only. The canonical fact is `final_grade` on the German scale. Supply this only when a specific recipient demands a 4.0-scale GPA; if that recipient publishes its own method, use THEIRS and record which was used. Demoted 2026-09-11, review finding F10.",
|
|
"thesis_grade": "1.0",
|
|
"thesis_relative_grade": "ECTS grade B; official certificate on file. B is formally the next 25% after the top 10%, i.e. the 10-35% band -- so the correct and safe phrasing is 'top 35%' (user-confirmed 2026-08-26). Do NOT write 'top 30%' or 'top 25%': B is a band, not a point, and narrowing it overstates the standing. The original 'top 35%' in this record was correct; a briefly-considered 30% was the error.",
|
|
"thesis_methods": "Verified against the thesis PDF 2026-08-02. Domain: vibration-based condition monitoring of CNC machine tools (piezoelectric accelerometers on spindle, tool rest, lathe body). Features: speed, load and the dimensionless waveform, peak, pulse, margin and kurtosis indices. Surveyed CBR, PSO, RBR and ANN; SELECTED a hybrid of rule-based reasoning (interpretable thresholds) plus a 7-10-3 feed-forward ANN (faultstates green/yellow/red) to handle noisy data that static rules cannot classify. Extensible plug-in architecture for swappable diagnosis methods and data collectors. Java/GWT client-server on MySQL. Evaluation measured throughput and latency, NOT model accuracy: the pipeline sustained ~500 samples/s against tri-axial vibration sensors delivering 72.9 kSPS, so the thesis concluded data reduction, filtering or batch scheduling is required for real-time use.",
|
|
"thesis_limits": "PSO was SURVEYED ONLY and NOT used in the implementation -- never claim it as an applied method. No real operational data: training data came from a cited thesis, test data was modified plus a random generator. No model-accuracy figures exist. Back-propagation retraining was listed as future work, not implemented. Frame as a methods prototype/framework, never as a validated production predictive-maintenance system.",
|
|
"transcripts_language": "English-language originals available for B.Eng. and M.Eng."
|
|
},
|
|
{
|
|
"id": "EDU-BENG",
|
|
"degree": "B.Eng. Information and Telecommunication Technologies",
|
|
"institution": "Universitat der Bundeswehr Munchen",
|
|
"start": "2009-10",
|
|
"end": "2012-10",
|
|
"final_grade": "2.4 (German scale, 1.0 best / 4.0 lowest pass) -- user-confirmed 2026-08-26",
|
|
"final_grade_us_4pt_orientation_only": "2.6 -- modified Bavarian formula (5.0 - G). Supply ONLY when a form requires a bachelor GPA; leave blank where optional. Always state the German scale alongside it, because the conversion makes German degrees read weaker to a US audience than they are: 2.4 is a solid 'gut'. Never present as a natively-awarded GPA. ORIENTATION AID, NOT A CANONICAL QUALIFICATION and NOT a recognised conversion: the modified Bavarian formula converts FOREIGN grades INTO the German system, so inverting it to produce a US GPA is not an accepted method, and the TUM source describes even its forward calculator as orientation only. The canonical fact is `final_grade` on the German scale. Supply this only when a specific recipient demands a 4.0-scale GPA; if that recipient publishes its own method, use THEIRS and record which was used. Demoted 2026-09-11, review finding F10.",
|
|
"grade_output_rule": "Neither degree grade goes on the resume or in a cover letter by default. Industry resumes omit grades; the M.Eng. thesis grade 1.0 is the only figure worth surfacing, and only where academic performance is genuinely valued. These fields exist for application-form GPA questions and credential checks. The German grades are the canonical facts; the *_orientation_only conversions are neither canonical nor a recognised method and must never be presented as an awarded GPA (F10, 2026-09-11)."
|
|
}
|
|
],
|
|
"employment": [
|
|
{
|
|
"id": "SWISSCOM",
|
|
"employer": "Swisscom (Schweiz) AG",
|
|
"location": "Bern, Switzerland",
|
|
"display_title": "Staff Data, Analytics & AI Engineer",
|
|
"start": "2023-10",
|
|
"end": "present",
|
|
"title_history": [
|
|
{
|
|
"title": "Senior Data, Analytics & AI Engineer",
|
|
"start": "2023-10",
|
|
"end": "2025-04"
|
|
},
|
|
{
|
|
"title": "Staff Data, Analytics & AI Engineer",
|
|
"start": "2025-04",
|
|
"end": "present"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "BOSCH",
|
|
"employer": "Robert Bosch Semiconductor Manufacturing Dresden GmbH",
|
|
"location": "Dresden, Germany",
|
|
"official_title": "Engineer / Senior Engineer, Data Analysis",
|
|
"display_title": "Senior Data Engineer, Data Analysis",
|
|
"display_title_note": "experience_bosch.md sanctions title flexibility for this role: '(Senior) Data Engineer' or '(Senior) Data Analysis Engineer' depending on the JD. 'Senior Data Engineer, Data Analysis' is the user's own preferred wording, confirmed 2026-08-27. official_title stays the formal combined string on the Zeugnis.",
|
|
"start": "2020-02",
|
|
"end": "2022-12",
|
|
"title_history": [
|
|
{
|
|
"title": "Data Engineer, Data Analysis",
|
|
"start": "2020-02",
|
|
"end": "2021-01"
|
|
},
|
|
{
|
|
"title": "Senior Data Engineer, Data Analysis",
|
|
"start": "2021-01",
|
|
"end": "2022-12"
|
|
}
|
|
],
|
|
"title_history_source": "LinkedIn-confirmed, recorded in experience_bosch.md; user-confirmed 2026-08-27 while reviewing the RUAG C5I resume. Added because claims.json previously carried only the combined official_title with no promotion date, which made a Swisscom-style 'Beforderung <date>' line unwritable from the canonical file alone. RE-CONFIRMED BY THE USER 2026-09-11 after the Arbeitszeugnis was read: the promotion and its timing are correct, and happened through a RE-GRADING (Neueinstufung). The Zeugnis does not contradict this - it simply names DEPARTMENTS ('Ingenieur' in Fertigungstechnologie 1/2/3) rather than job titles, and never uses the words 'Senior' or 'Data Analysis'. Do NOT expect this Zeugnis to corroborate the title string; do not 'correct' the title against it.",
|
|
"official_title_provenance": "NOT from the Arbeitszeugnis - that document names departments only. The title string comes from the user and from LinkedIn. Corrected 2026-09-11; an earlier note wrongly claimed the Zeugnis as its source."
|
|
},
|
|
{
|
|
"id": "FRAUNHOFER",
|
|
"employer": "Fraunhofer-Center for Maritime Logistics and Services CML",
|
|
"location": "Hamburg, Germany",
|
|
"official_title": "Wissenschaftlicher Mitarbeiter",
|
|
"display_title": "Research Software Engineer",
|
|
"start": "2018-09",
|
|
"end": "2019-10"
|
|
},
|
|
{
|
|
"id": "VIZRT",
|
|
"employer": "Vizrt",
|
|
"location": "Bergen, Norway",
|
|
"official_title": "Test Automation Engineer",
|
|
"display_title": "Test Automation / DevOps Engineer",
|
|
"start": "2017-07",
|
|
"end": "2018-05"
|
|
},
|
|
{
|
|
"id": "GENERALI",
|
|
"employer": "Generali Deutschland Informatik Services GmbH",
|
|
"location": "Hamburg, Germany",
|
|
"display_title": "IT Consultant",
|
|
"start": "2015-05",
|
|
"end": "2017-06"
|
|
},
|
|
{
|
|
"id": "CAPGEMINI",
|
|
"employer": "Capgemini Deutschland GmbH",
|
|
"location": "Hamburg, Germany",
|
|
"display_title": "Software Engineer",
|
|
"start": "2014-11",
|
|
"end": "2015-05"
|
|
},
|
|
{
|
|
"id": "BUNDESWEHR",
|
|
"employer": "Bundeswehr (German Armed Forces)",
|
|
"location": "Germany",
|
|
"display_title": "Officer Candidate / Officer (Second Lieutenant at separation)",
|
|
"start": "2008-07",
|
|
"end": "2014-11",
|
|
"source": "User confirmation 2026-07-10; thiessen_linkedin_profile.md",
|
|
"last_verified": "2026-08-27"
|
|
}
|
|
],
|
|
"evidence_schema": {
|
|
"added": "2026-09-11",
|
|
"why": "Review finding F08. Only one of 26 claims carried structured evidence fields, so recency and reference checks could not run automatically. This block defines the fields; `evidence` on each claim carries the values.",
|
|
"fields": {
|
|
"source": "Where the claim comes from (user confirmation, a document, a URL), or 'unrecorded'.",
|
|
"ownership": "Whose work this is: individual | component | contributor | team-role | personal-project, or 'unrecorded'."
|
|
},
|
|
"rules": [
|
|
"'unrecorded' is a legitimate, queryable value. It means nobody wrote it down - NOT that the claim is unevidenced. Most claims carry evidence in their free-text scope.",
|
|
"Never infer a date, a source or an ownership class to fill a field. Ask the user and record the answer.",
|
|
"Filling these fields does not weaken the free-text scope, allowed_verbs or forbidden lists; those remain authoritative for wording."
|
|
],
|
|
"employer_attribution_note": "last_verified was REMOVED on 2026-09-11 at the user's instruction: \"wofuer brauchst du ueberhaupt ein Datum? Es reicht doch wenn es passend zum Arbeitgeber zugeordnet ist.\" That is sound - every claim carries an employer through its ID prefix (SW/BS/FC/VZ/GN/PP/BW), and for closed employers the facts do not move, so a recency date measured nothing. What remains is provenance: `source` and `ownership`. Do not reintroduce a date field without a reason that is not recency-for-its-own-sake."
|
|
},
|
|
"claims": [
|
|
{
|
|
"id": "SW-1",
|
|
"evidence": {
|
|
"source": "Swisscom Zwischenzeugnis, Oktober 2025 (primary document, read 2026-09-11)",
|
|
"ownership": "individual within his domains; contributor company-wide"
|
|
},
|
|
"scope": "Migration of legacy ETL pipelines and build-and-operate of cloud-native applications on AMAZON AWS (S3, Glue, Athena, Redshift, Apache Airflow) - verbatim from the Zwischenzeugnis. Primary engineer for pipelines in his owned Fulfillment and Product Analysis domains; contributor to the wider company migration.",
|
|
"allowed_verbs": [
|
|
"migrated",
|
|
"implemented",
|
|
"contributed"
|
|
],
|
|
"forbidden": [
|
|
"led the migration of the legacy warehouse",
|
|
"sole technical lead",
|
|
"migrated the company warehouse",
|
|
"owned the full migration"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "SW-2",
|
|
"evidence": {
|
|
"source": "Swisscom Zwischenzeugnis, Oktober 2025 (primary document, read 2026-09-11)",
|
|
"ownership": "component - Komponentenverantwortung, documented"
|
|
},
|
|
"scope": "Komponentenverantwortung (component ownership) for the ETL pipelines that move business-critical Fulfillment data out of Oracle databases into the TERADATA DATA WAREHOUSE (DWH) and make it available for analysis - verbatim from the Zwischenzeugnis. Includes quality, security, data protection and compliance per Security and Data Governance, root-cause analysis on application problems, and 2nd/3rd-level support plus on-call (Rufbereitschaft).",
|
|
"allowed_verbs": [
|
|
"own",
|
|
"operate",
|
|
"maintain",
|
|
"serve"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "SW-3",
|
|
"evidence": {
|
|
"source": "Swisscom Zwischenzeugnis, Oktober 2025 (primary document, read 2026-09-11)",
|
|
"ownership": "individual - implementation and operation"
|
|
},
|
|
"scope": "Implementation, administration and operation of Python applications on KUBERNETES CLUSTERS, and automation of CI/CD processes in GITLAB - verbatim from the Zwischenzeugnis. Also drives automation of technical processes and workflows, and shapes and prioritises backlog items with the Product Owner.",
|
|
"allowed_verbs": [
|
|
"build",
|
|
"deploy",
|
|
"operate"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "SW-4",
|
|
"evidence": {
|
|
"source": "Swisscom Zwischenzeugnis, Oktober 2025 (primary document, read 2026-09-11)",
|
|
"ownership": "individual"
|
|
},
|
|
"scope": "Deliver data products, dashboards and analyses with internal B2B stakeholders and product owners; not external consulting or strategic-account delivery.",
|
|
"allowed_verbs": [
|
|
"deliver",
|
|
"translate",
|
|
"partner",
|
|
"support"
|
|
],
|
|
"forbidden": [
|
|
"customer-embedded delivery",
|
|
"strategic customer delivery",
|
|
"C-suite advisor"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "SW-5",
|
|
"evidence": {
|
|
"source": "unrecorded",
|
|
"ownership": "unrecorded"
|
|
},
|
|
"scope": "Mandatory rotating team Security Champion role for 2025/2026 only; not an award, certification or multi-year distinction.",
|
|
"allowed_verbs": [
|
|
"serve"
|
|
],
|
|
"forbidden": [
|
|
"3 consecutive years",
|
|
"2023-2026",
|
|
"Security Champion x3",
|
|
"owning DevSecOps compliance"
|
|
],
|
|
"metrics": "100 hours of training and an assessment are source-backed; use only when relevant"
|
|
},
|
|
{
|
|
"id": "SW-6",
|
|
"evidence": {
|
|
"source": "user confirmation 2026-09-11",
|
|
"ownership": "individual - hands-on use"
|
|
},
|
|
"scope": "Hands-on PySpark use at Swisscom (user-confirmed 2026-09-11).",
|
|
"allowed_verbs": [
|
|
"use",
|
|
"develop",
|
|
"process"
|
|
],
|
|
"metrics": "unverified - no scale or performance figures exist for this work. That is the ONLY caveat; it does not qualify the PySpark experience itself, which is production-current in skills. The scope line used to carry this caveat as well, which read as doubt about the skill rather than about the numbers."
|
|
},
|
|
{
|
|
"id": "SW-7",
|
|
"evidence": {
|
|
"source": "unrecorded",
|
|
"ownership": "unrecorded"
|
|
},
|
|
"scope": "Build governed data products and onboard sources within Swisscom's company-wide Data Mesh; never claim ownership or construction of the shared mesh/platform. Atlassian Compass is the metadata/catalogue platform used for data-product metadata and lineage (user-confirmed 2026-07-29); Dennis uses it as a practitioner and does not administer or own the tooling.",
|
|
"allowed_verbs": [
|
|
"build",
|
|
"model",
|
|
"onboard",
|
|
"contribute",
|
|
"document",
|
|
"maintain"
|
|
],
|
|
"forbidden": [
|
|
"built a Data Mesh",
|
|
"built the Data Mesh",
|
|
"built AWS Data Mesh",
|
|
"own the AWS data platform",
|
|
"own the data platform",
|
|
"own Atlassian Compass",
|
|
"administered Compass",
|
|
"rolled out Compass"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "SW-8",
|
|
"evidence": {
|
|
"source": "unrecorded",
|
|
"ownership": "unrecorded"
|
|
},
|
|
"scope": "Configured domain-grounded LLM assistants in a Swisscom-owned web interface by selecting available models and supplying curated knowledge. Separate exposure includes LiteLLM API use, custom GPTs, Copilot and Kiro.",
|
|
"allowed_verbs": [
|
|
"configured",
|
|
"used",
|
|
"integrated"
|
|
],
|
|
"forbidden": [
|
|
"built production LLM systems",
|
|
"deployed LLM systems",
|
|
"built LangChain",
|
|
"agent orchestration",
|
|
"formal LLM evaluation",
|
|
"fine-tuned models"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "BS-1",
|
|
"evidence": {
|
|
"source": "Bosch Arbeitszeugnis, Dresden 31.12.2022 (primary document, read 2026-09-11); operating constraint user-clarified 2026-09-11",
|
|
"ownership": "individual - integration and operation; model development is NOT his"
|
|
},
|
|
"scope": "Designed and executed integration of containerized ML inference into a 24/7 semiconductor production environment; model-development ownership is not established. Toolchain includes Docker, Kubernetes and Ansible - Ansible use at Bosch was intensive (user-confirmed 2026-08-27) and extended to configuration management and infrastructure automation beyond this single integration, making it standalone Infrastructure-as-Code evidence. OPERATING CONSTRAINT, user-clarified 2026-09-11: the fab runs continuously, and a defect in the software could in the worst case halt production - an outcome that must never occur. That is a FAILURE-CONSEQUENCE constraint (blast radius of a bug), NOT a deployment-window constraint. Write it as 'a defect could have stopped production' or 'software whose failure would have halted a continuously operating fab'. ZEUGNIS WORDING (primary, 2026-09-11): 'Erarbeitung und Durchfuehrung von Integrationsstrategien fuer den Einsatz von Machine Learning Modellen in der 24/7 Fertigungsumgebung' - devising AND executing integration strategies for ML models in the 24/7 manufacturing environment. This corroborates the integration-and-operation framing and the 24/7 context directly.",
|
|
"allowed_verbs": [
|
|
"integrated",
|
|
"containerized",
|
|
"deployed",
|
|
"orchestrated"
|
|
],
|
|
"forbidden": [
|
|
"trained the image classification model",
|
|
"owned the full ML lifecycle",
|
|
"a production line that could not be stopped for a deployment",
|
|
"could not be stopped for a deployment"
|
|
],
|
|
"metrics": "qualitative reduction in manual classification is source-backed; exact amount unverified"
|
|
},
|
|
{
|
|
"id": "BS-2",
|
|
"evidence": {
|
|
"source": "Bosch Arbeitszeugnis, Dresden 31.12.2022 (primary document, read 2026-09-11)",
|
|
"ownership": "individual - development"
|
|
},
|
|
"scope": "Developed data services in Python, Java and C# over Oracle and Hadoop/Impala for internal analysis teams. Data types worked on (user-confirmed 2026-08-02): semiconductor fab sensor and process data -- defect management records, wafer inspection images, and electrical parameters from Process Control Monitoring (PCM). Relevant as genuine industrial sensor/asset-data experience. Bosch development was PRIMARILY PYTHON, with some Java and KOTLIN (backend, Ansible plugins, extensions) and C# for Spotfire plugins (user-confirmed 2026-09-11). ZEUGNIS WORDING (primary): 'Entwicklung von Applikationen zur Datenanalyse in C#, Python und Java' and 'Integration von Software-Komponenten in die IT-Architektur der Halbleiterproduktion'. NOTE: the Zeugnis names C#, Python and Java only - KOTLIN rests on the user's statement of 2026-09-11 and is not corroborated by this document. Record it as user-confirmed, not Zeugnis-confirmed.",
|
|
"allowed_verbs": [
|
|
"developed",
|
|
"built"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "BS-3",
|
|
"evidence": {
|
|
"source": "Bosch Arbeitszeugnis, Dresden 31.12.2022 (primary document, read 2026-09-11)",
|
|
"ownership": "application owner - documented"
|
|
},
|
|
"scope": "Confirmed Application Owner responsibilities for analytics applications and upstream pipelines, including SLOs, vendors, training and documentation. Named systems (user-confirmed 2026-09-11): TECHNICAL Application Owner for the KLA Defect Management System (DMS) and for TIBCO Spotfire - see BS-5. ZEUGNIS WORDING (primary): 'Application Owner fuer Softwaresysteme zur Datenanalyse in der Halbleiterfertigung' plus 'Kommunikation mit den Anbietern der Softwaresysteme sowie den internen Kunden'.",
|
|
"allowed_verbs": [
|
|
"served",
|
|
"owned",
|
|
"managed",
|
|
"defined"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "BS-4",
|
|
"evidence": {
|
|
"source": "Bosch Arbeitszeugnis, Dresden 31.12.2022 (primary document, read 2026-09-11)",
|
|
"ownership": "individual - proof of concept"
|
|
},
|
|
"scope": "Built an ELK/Kafka anomaly-detection proof of concept and monitoring; not a company-wide observability platform. ZEUGNIS WORDING (primary): 'Durchfuehrung eines POCs fuer das Logfile-Management mit ELK-Stack' - the PoC framing is confirmed by the document itself, not just by policy.",
|
|
"allowed_verbs": [
|
|
"built",
|
|
"implemented",
|
|
"validated"
|
|
],
|
|
"forbidden": [
|
|
"built the observability platform",
|
|
"enterprise observability platform"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "BS-5",
|
|
"evidence": {
|
|
"source": "unrecorded",
|
|
"ownership": "unrecorded"
|
|
},
|
|
"scope": "Co-owned the TIBCO Spotfire environment, built C# extensions and co-presented at TIBCO Analytics Forum 2022. He was TECHNICAL Application Owner for Spotfire and for the KLA Defect Management System (DMS) (user-confirmed 2026-09-11) - technical ownership, not people management or vendor-side ownership.",
|
|
"allowed_verbs": [
|
|
"co-owned",
|
|
"built",
|
|
"co-presented"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "BS-6",
|
|
"evidence": {
|
|
"source": "unrecorded",
|
|
"ownership": "unrecorded"
|
|
},
|
|
"scope": "Administered and automated the Linux server estate underpinning fab analytics and ML workloads at Bosch (2020-2022): ML platform hosts, Docker hosts, backend services and the Ansible control path. Developed Ansible extensions, including a credential plugin that retrieved secrets from a password keystore and cached them locally to cut lookup volume and improve scalability and performance. Playbooks were version-controlled in Git and executed push-style from Jenkins/GitLab pipelines. User-confirmed 2026-08-27.",
|
|
"allowed_verbs": [
|
|
"administered",
|
|
"automated",
|
|
"developed",
|
|
"extended",
|
|
"operated",
|
|
"built"
|
|
],
|
|
"forbidden": [
|
|
"owned the fab's infrastructure",
|
|
"ran the datacenter",
|
|
"SRE role or title",
|
|
"GitOps",
|
|
"any server-count, uptime, SLA or scale figure - none is verified"
|
|
],
|
|
"metrics": "none verified; the credential-caching plugin reduced keystore lookups, amount unquantified"
|
|
},
|
|
{
|
|
"id": "FC-1",
|
|
"evidence": {
|
|
"source": "Fraunhofer Arbeitszeugnis, 31.10.2019 (primary document, read 2026-09-11)",
|
|
"ownership": "individual - development and CI setup"
|
|
},
|
|
"scope": "SCEDAS crew-scheduling software: software development in C#, Entity Framework and MICROSOFT SQL SERVER; introduced and configured Jenkins and built the build jobs for automatic SCEDAS deployment; bugfixing and support. Verbatim from the Arbeitszeugnis.",
|
|
"allowed_verbs": [
|
|
"set up",
|
|
"developed",
|
|
"maintained"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "FC-2",
|
|
"evidence": {
|
|
"source": "Fraunhofer Arbeitszeugnis, 31.10.2019 (primary document, read 2026-09-11)",
|
|
"ownership": "contributor - project work, not ownership"
|
|
},
|
|
"scope": "ARTUS research project: development work in SPEECH RECOGNITION and machine learning for an automatic TRANSCRIPTION SYSTEM FOR SEA RESCUE (Seenotrettung). Contribution only - no publication and no model-training ownership. Separately, co-authored a RESEARCH PROPOSAL on predicting optimal MAINTENANCE TIMING (Instandsetzungszeitpunkte) using machine learning - genuine predictive-maintenance exposure, at proposal stage, not a delivered system.",
|
|
"allowed_verbs": [
|
|
"contributed",
|
|
"implemented",
|
|
"supported"
|
|
],
|
|
"forbidden": [
|
|
"led ARTUS",
|
|
"trained the speech model"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "FC-3",
|
|
"evidence": {
|
|
"source": "Fraunhofer Arbeitszeugnis, 31.10.2019 (primary document, read 2026-09-11)",
|
|
"ownership": "individual - development"
|
|
},
|
|
"scope": "MISSION research project: developed MICROSERVICES for a data-exchange platform using EXPRESS.JS, JAVASCRIPT, DOCKER and SQLITE. Verbatim from the Arbeitszeugnis. Also contributed to a study on new IT technologies for PERFORMANCE OPTIMIZATION AND MONITORING in the maritime domain.",
|
|
"allowed_verbs": [
|
|
"developed",
|
|
"built"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "VZ-1",
|
|
"evidence": {
|
|
"source": "user statement 2026-09-11 for the language split. NOT corroborated by the Vizrt Reference Letter, which describes testing responsibilities only and never mentions the transcoding backend, Python or C++.",
|
|
"ownership": "contributor"
|
|
},
|
|
"scope": "Contributed Python and C++ engineering to a distributed video-transcoding backend. Named broadcasters are product context, not direct delivery claims. Language split (user-confirmed 2026-09-11): PYTHON for the wrapper, C++ for the transcoding engine (FFmpeg). See feedback_cpp_emphasis - do not oversell C++; Python and Java are the stronger languages.",
|
|
"allowed_verbs": [
|
|
"developed",
|
|
"engineered",
|
|
"contributed"
|
|
],
|
|
"forbidden": [
|
|
"for CNN, BBC and Al Jazeera",
|
|
"delivered to CNN",
|
|
"customer-embedded"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "VZ-2",
|
|
"evidence": {
|
|
"source": "Vizrt Reference Letter, Bergen 09.05.2018 (primary document, read 2026-09-11)",
|
|
"ownership": "individual - test automation"
|
|
},
|
|
"scope": "Developed automated test suites and connected them as quality gates in the CI/CD pipeline. ZEUGNIS WORDING (primary): took part in planning new features and code changes with a focus on testing, worked on shortening the feedback loop and time to market while meeting quality expectations, and developed automated test suites to improve quality and long-term maintainability. Part of the Coder team.",
|
|
"allowed_verbs": [
|
|
"developed",
|
|
"automated",
|
|
"integrated"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "GN-1",
|
|
"evidence": {
|
|
"source": "Generali Zwischenzeugnis/Endzeugnis, 30.06.2017 (primary document, read 2026-09-11)",
|
|
"ownership": "individual - technical responsibility for the test suite"
|
|
},
|
|
"scope": "Introduced Behaviour-Driven Development through a proof of concept and held TECHNICAL RESPONSIBILITY for test automation in the PIA-Postkorb / SE-Projekt Workflow project. Named tooling from the Arbeitszeugnis: SERENITY-BDD, SELENIUM and JBEHAVE for automated UI tests, with the BDD build jobs administered in JENKINS. Also: requirements gathering and estimation for new test cases, presenting BDD to the Java community and inside the project, and training and enabling project members to work with BDD.",
|
|
"allowed_verbs": [
|
|
"introduced",
|
|
"owned",
|
|
"trained",
|
|
"administered"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "GN-2",
|
|
"evidence": {
|
|
"source": "Generali Zwischenzeugnis/Endzeugnis, 30.06.2017 (primary document, read 2026-09-11)",
|
|
"ownership": "individual - PoC development and internal advisory"
|
|
},
|
|
"scope": "Robotic Process Automation: developed proofs of concept with UIPATH, presented a live demo for advisory and demonstration purposes, and acted as an internal point of contact for group companies at GDIS. Evaluated version 8.7 of the IBM OPERATIONAL DECISION MANAGEMENT (ODM) Decision Center during the trainee programme.",
|
|
"allowed_verbs": [
|
|
"developed",
|
|
"served"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "GN-3",
|
|
"evidence": {
|
|
"source": "Generali Zwischenzeugnis/Endzeugnis, 30.06.2017 (primary document, read 2026-09-11)",
|
|
"ownership": "individual - development; architecture was a contribution"
|
|
},
|
|
"scope": "Application development in the PIA-Postkorb / SE-Projekt Workflow project; software development in the JAVA/J2EE environment, defect fixing and implementing new requirements. Named additions from the Arbeitszeugnis: migrated web services to a new deployment procedure (XLDEPLOY), CONTRIBUTED TO DESIGN AND ARCHITECTURE DECISIONS for the Aufgabenservices, and built into the Dispatcher proof of concept with APACHE CAMEL and SPRING BOOT. The Spring Boot exposure is PoC-scale and dates to 2015-2017 - it does not support a current Spring Boot claim.",
|
|
"allowed_verbs": [
|
|
"developed",
|
|
"contributed",
|
|
"migrated"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "BW-1",
|
|
"evidence": {
|
|
"source": "User confirmation 2026-07-10; thiessen_linkedin_profile.md",
|
|
"ownership": "Individual service and completed training."
|
|
},
|
|
"scope": "Completed officer candidate training and officer school during six years of service in the German Armed Forces (Bundeswehr), leaving service as Second Lieutenant. This establishes military and organisational context only; no technical military role, command scope, deployment, NATO service or clearance is established.",
|
|
"ownership": "Individual service and completed training.",
|
|
"allowed_verbs": [
|
|
"completed",
|
|
"served",
|
|
"left service"
|
|
],
|
|
"forbidden": [
|
|
"current or former security clearance",
|
|
"NATO service",
|
|
"combat role or deployment",
|
|
"technical AI, ICT or cyber work for the military",
|
|
"command responsibility or leadership outcomes not explicitly verified"
|
|
],
|
|
"metrics": "Six years of service and separation as Second Lieutenant are verified; no performance or command-scope metric is established.",
|
|
"source": "User confirmation 2026-07-10; thiessen_linkedin_profile.md",
|
|
"last_verified": "2026-08-27"
|
|
},
|
|
{
|
|
"id": "PP-1",
|
|
"evidence": {
|
|
"source": "unrecorded",
|
|
"ownership": "unrecorded"
|
|
},
|
|
"scope": "PERSONAL PROJECT (user-supplied 2026-08-25), not professional work. A self-hosted, single-user investing/signal platform Dennis built for himself: ingests daily US-equity prices, fundamentals and sentiment (LLM-assisted); runs one long-only cross-sectional momentum book (top-quintile residual 12-1 momentum, ATR stop/trail, max 15 concurrent names) through scheduled scan and backtest pipelines; surfaces gated setups in a web dashboard plus Telegram alerts. Legitimate use: evidence of self-directed trading-domain fluency and of an end-to-end ingestion/backtest/alerting build outside work. Full-ownership verbs ARE correct here -- unlike his employer work, this is genuinely solo.",
|
|
"allowed_verbs": [
|
|
"built",
|
|
"developed",
|
|
"designed"
|
|
],
|
|
"forbidden": [
|
|
"any trading track record, PnL, return, Sharpe or backtest performance figure -- none is verified and none may ever be quoted",
|
|
"calling it distributed, scalable, production or multi-user -- it is single-user and self-hosted",
|
|
"implying professional quantitative, trading, finance-domain or investment-management experience",
|
|
"presenting it as employer work or omitting that it is a personal project"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "PP-2",
|
|
"evidence": {
|
|
"source": "unrecorded",
|
|
"ownership": "unrecorded"
|
|
},
|
|
"scope": "Udacity 'AI for Trading' Nanodegree, completed self-study (user-supplied 2026-08-25). Covers quantitative trading fundamentals -- factor construction, alpha signals, backtesting. Pairs with PP-1 as the formal half of self-directed domain grounding.",
|
|
"allowed_verbs": [
|
|
"completed"
|
|
],
|
|
"forbidden": [
|
|
"listing it as an academic degree, professional certification or quant credential",
|
|
"presenting it as equivalent to quantitative research or trading experience",
|
|
"using it to qualify for quant, trader, researcher or portfolio-management roles"
|
|
],
|
|
"metrics": "unverified"
|
|
},
|
|
{
|
|
"id": "PP-3",
|
|
"evidence": {
|
|
"source": "unrecorded",
|
|
"ownership": "unrecorded"
|
|
},
|
|
"scope": "PERSONAL PROJECT (user-supplied 2026-08-27), not employer work. A self-hosted Debian server Dennis has operated for ~10 years and administers and hardens himself, running nginx, a mail server, Nextcloud, a VPN server, Docker services and Bitwarden. This is the primary evidence for hands-on Linux administration, system hardening and security configuration, and it is current and continuous - unlike the Bosch Linux work, which ended in 2022. User states he genuinely enjoys this kind of work, including physical infrastructure.",
|
|
"allowed_verbs": [
|
|
"operate",
|
|
"administer",
|
|
"harden",
|
|
"run",
|
|
"maintain",
|
|
"self-host"
|
|
],
|
|
"forbidden": [
|
|
"calling it enterprise, production, multi-user or business-critical infrastructure",
|
|
"implying professional SRE, sysadmin or hosting employment",
|
|
"any uptime, availability, SLA, user-count or scale figure - none is verified",
|
|
"presenting it as employer work or omitting that it is self-hosted and personal",
|
|
"using it as evidence of datacenter or physical-infrastructure experience"
|
|
],
|
|
"metrics": "none; ~10 years of continuous operation is the only quantity, and it is self-reported"
|
|
},
|
|
{
|
|
"id": "BS-7",
|
|
"evidence": {
|
|
"source": "Bosch Arbeitszeugnis, Dresden 31.12.2022, for the general supervision; user confirmation 2026-09-11 for the Zweitpruefer role on one Bachelor thesis",
|
|
"ownership": "individual - technical supervision and formal second-examiner role"
|
|
},
|
|
"scope": "Fachliche Betreuung von Studierenden, auch im Rahmen von Abschlussarbeiten - technical supervision of students at Bosch, including their theses (verbatim from the Arbeitszeugnis, which uses the plural for both). NAMED INSTANCE, user-confirmed 2026-09-11: he acted as ZWEITPRUEFER (second examiner) AND supervisor for ONE Bachelor thesis by a student at the company. Zweitpruefer is a FORMAL role carrying assessment responsibility, not informal mentoring - that is what makes this stronger than the team-role evidence (Security Champion, Java community) the profile otherwise falls back on. LIMITS: exactly ONE thesis is confirmed as second-examiner work - do not pluralise it; the number of students supervised more generally is not recorded; and none of this is people management or line responsibility.",
|
|
"allowed_verbs": [
|
|
"supervised",
|
|
"mentored",
|
|
"guided",
|
|
"supported",
|
|
"served as second examiner",
|
|
"assessed"
|
|
],
|
|
"forbidden": [
|
|
"managed a team",
|
|
"line management",
|
|
"led engineers",
|
|
"supervised multiple theses",
|
|
"academic appointment",
|
|
"lecturer",
|
|
"taught a course"
|
|
],
|
|
"metrics": "one Bachelor thesis as Zweitpruefer/supervisor is confirmed; the wider number of students supervised is unverified"
|
|
}
|
|
],
|
|
"skills": [
|
|
{
|
|
"name": "Python",
|
|
"evidence": "production-current",
|
|
"output": "allowed"
|
|
},
|
|
{
|
|
"name": "SQL",
|
|
"evidence": "production-current",
|
|
"output": "allowed"
|
|
},
|
|
{
|
|
"name": "PySpark",
|
|
"evidence": "production-current",
|
|
"output": "allowed"
|
|
},
|
|
{
|
|
"name": "Kafka",
|
|
"evidence": "production-current",
|
|
"output": "allowed"
|
|
},
|
|
{
|
|
"name": "Airflow",
|
|
"evidence": "production-current",
|
|
"output": "allowed"
|
|
},
|
|
{
|
|
"name": "AWS",
|
|
"evidence": "production-current",
|
|
"output": "allowed"
|
|
},
|
|
{
|
|
"name": "CloudFormation",
|
|
"evidence": "production-current",
|
|
"output": "allowed"
|
|
},
|
|
{
|
|
"name": "Atlassian Compass",
|
|
"evidence": "production-current",
|
|
"output": "allowed",
|
|
"note": "Metadata/catalogue platform for data-product metadata and lineage at Swisscom (user-confirmed 2026-07-29). Practitioner use only — do not claim administration, rollout or ownership. Satisfies 'or similar metadata/catalogue platform' phrasing; is NOT a substitute claim for Purview, Collibra or Alation, which remain unevidenced."
|
|
},
|
|
{
|
|
"name": "Kubernetes",
|
|
"evidence": "production-current-and-historical",
|
|
"output": "allowed"
|
|
},
|
|
{
|
|
"name": "Ansible",
|
|
"evidence": "production-historical",
|
|
"output": "allowed",
|
|
"note": "User-confirmed 2026-08-27: worked intensively with Ansible at Bosch (2020-2022) for configuration management and infrastructure automation, including the BS-1 ML-inference orchestration. Was absent from claims.json despite already appearing in experience_bosch.md BS-1 bullet variants. Counts as genuine Infrastructure-as-Code evidence alongside CloudFormation. Does NOT by itself license claiming Terraform (still unverified) or GitOps as a named practice (see gitops_pending)."
|
|
},
|
|
{
|
|
"name": "Linux administration",
|
|
"evidence": "production-historical-and-personal-current",
|
|
"output": "allowed",
|
|
"note": "User-confirmed 2026-08-27 and previously ABSENT from claims.json entirely. Professional: at Bosch (2020-2022) Linux servers carried everything - ML platform, Docker hosts, backend services, Ansible control - and he administered and automated them (see BS-6). Personal and current: a self-hosted Debian server he has run and hardened for ~10 years (see PP-3). Hardening and security configuration evidence leans on the personal side; say so rather than implying an employer mandate. Does NOT license claiming datacenter/physical infrastructure work, which remains a genuine gap."
|
|
},
|
|
{
|
|
"name": "Bash / shell scripting",
|
|
"evidence": "production-historical-and-personal-current",
|
|
"output": "allowed",
|
|
"note": "User-confirmed 2026-09-05 and previously ABSENT from claims.json entirely - the third gap of this shape after Ansible and Linux administration (both 2026-08-27). Evidence basis is the same as Linux administration: professional at Bosch 2020-2022 administering and automating the Linux server estate and the Ansible control path (BS-6), and personal and current on the self-hosted Debian server run for ~10 years (PP-3). Scope is ordinary operational shell work - scripting, automation glue and system administration. Does NOT license Groovy, which stays unverified and forbidden, and does NOT license any claim of systems-programming or kernel-level work."
|
|
},
|
|
{
|
|
"name": "Docker",
|
|
"evidence": "production-current-and-historical",
|
|
"output": "allowed"
|
|
},
|
|
{
|
|
"name": "Java",
|
|
"evidence": "production-historical",
|
|
"output": "allowed-with-context"
|
|
},
|
|
{
|
|
"name": "C#",
|
|
"evidence": "production-historical",
|
|
"output": "allowed-with-context"
|
|
},
|
|
{
|
|
"name": "C++",
|
|
"evidence": "production-historical-limited",
|
|
"output": "allowed-with-context"
|
|
},
|
|
{
|
|
"name": "JavaScript",
|
|
"evidence": "production-historical-limited",
|
|
"output": "allowed-with-context",
|
|
"context": "Fraunhofer 2018-2019 (FC-3): Express.js microservices for the MISSION data-exchange platform.",
|
|
"note": "Evidence upgraded from bare 'production-historical-limited' to a named project on 2026-09-11, from the Fraunhofer Arbeitszeugnis. Does NOT license TypeScript, which stays forbidden - that distinction ruled out RUAG Senior Software Engineer C5I."
|
|
},
|
|
{
|
|
"name": "LiteLLM",
|
|
"evidence": "hands-on-current",
|
|
"output": "allowed-with-context"
|
|
},
|
|
{
|
|
"name": "custom GPTs",
|
|
"evidence": "hands-on-current",
|
|
"output": "allowed-with-context"
|
|
},
|
|
{
|
|
"name": "Kiro",
|
|
"evidence": "hands-on-current",
|
|
"output": "allowed-with-context"
|
|
},
|
|
{
|
|
"name": "Copilot",
|
|
"evidence": "hands-on-current",
|
|
"output": "allowed-with-context"
|
|
},
|
|
{
|
|
"name": "quantitative/systematic trading concepts",
|
|
"evidence": "coursework-and-personal-project",
|
|
"output": "allowed-with-context",
|
|
"note": "Udacity AI for Trading nanodegree (PP-2) plus the self-built momentum platform (PP-1): factor construction, cross-sectional/residual momentum, ATR stops, backtesting. Self-directed only — NO professional quant, trading or finance experience. Never list under a Professional Experience skills line without the personal-project context, and never as a quant qualification."
|
|
},
|
|
{
|
|
"name": "backtesting",
|
|
"evidence": "personal-project",
|
|
"output": "allowed-with-context",
|
|
"note": "PP-1 scheduled backtest pipelines, personal scale. Never quote a result or performance figure."
|
|
},
|
|
{
|
|
"name": "TensorFlow/Keras",
|
|
"evidence": "certification",
|
|
"output": "certification-context-only"
|
|
},
|
|
{
|
|
"name": "PyTorch",
|
|
"evidence": "certification",
|
|
"output": "certification-context-only",
|
|
"note": "IBM AI Engineering Professional Certificate (Coursera, 4 Jun 2020) includes the course \"Deep Neural Networks with PyTorch\"; certificate PDF verified 2026-08-27. Same footing as TensorFlow/Keras: certification context only, never presented as production or project experience."
|
|
},
|
|
{
|
|
"name": "TypeScript",
|
|
"evidence": "unverified",
|
|
"output": "forbidden"
|
|
},
|
|
{
|
|
"name": "FastAPI",
|
|
"evidence": "unverified",
|
|
"output": "forbidden"
|
|
},
|
|
{
|
|
"name": "Flask",
|
|
"evidence": "unverified",
|
|
"output": "forbidden"
|
|
},
|
|
{
|
|
"name": "Django",
|
|
"evidence": "unverified",
|
|
"output": "forbidden"
|
|
},
|
|
{
|
|
"name": "LangChain",
|
|
"evidence": "never-used",
|
|
"output": "forbidden"
|
|
},
|
|
{
|
|
"name": "LangGraph",
|
|
"evidence": "never-used",
|
|
"output": "forbidden"
|
|
},
|
|
{
|
|
"name": "LlamaIndex",
|
|
"evidence": "never-used",
|
|
"output": "forbidden"
|
|
},
|
|
{
|
|
"name": "formal model evaluation",
|
|
"evidence": "unverified",
|
|
"output": "forbidden"
|
|
},
|
|
{
|
|
"name": "LLM fine-tuning",
|
|
"evidence": "unverified",
|
|
"output": "forbidden"
|
|
},
|
|
{
|
|
"name": "Azure",
|
|
"evidence": "unverified",
|
|
"output": "forbidden"
|
|
},
|
|
{
|
|
"name": "GCP",
|
|
"evidence": "unverified",
|
|
"output": "forbidden"
|
|
},
|
|
{
|
|
"name": "Terraform",
|
|
"evidence": "unverified",
|
|
"output": "forbidden"
|
|
},
|
|
{
|
|
"name": "GitOps",
|
|
"evidence": "pending-user-clarification",
|
|
"output": "forbidden",
|
|
"note": "RESOLVED 2026-08-27, and the answer is NO. User confirmed: Ansible playbooks lived in Git, but execution was PUSH-based out of Jenkins/GitLab pipelines - there was no pull-based reconciliation agent (Argo CD, Flux). That is version-controlled, CI-driven infrastructure automation, not GitOps. The word stays forbidden in every document. The SUBSTANCE is writable and should be written: 'versionskontrollierte Infrastrukturautomatisierung mit Ansible aus Git, ausgefuehrt ueber Jenkins-/GitLab-Pipelines'. The Kdo Cy JD names 'Pull-GitOps' explicitly, so precision here is an asset, not a loss."
|
|
},
|
|
{
|
|
"name": "Groovy",
|
|
"evidence": "none",
|
|
"output": "forbidden",
|
|
"note": "Named in the NVIDIA JD alongside Bash and Python. Bash was confirmed and added 2026-09-05; Groovy was explicitly NOT - it stays unverified. Registered as a skill 2026-09-11 (review finding F05) so the document scanner can actually catch it: it was previously absent from claims.json entirely, which meant 'forbidden' existed only in prose and nothing enforced it."
|
|
},
|
|
{
|
|
"name": "Snowflake",
|
|
"evidence": "none",
|
|
"output": "forbidden",
|
|
"note": "Repeatedly named in target JDs (SBB, Snowflake Inc. reqs). The honest substitution is Teradata, Oracle, Redshift and Athena/Iceberg - see the SBB session file. Registered 2026-09-11 (review finding F05) for the same reason as Groovy. Note this forbids CLAIMING the skill; naming Snowflake as an employer or as a JD requirement in prose is not a claim, and the negation guard in the scanner allows an honest 'no Snowflake experience'."
|
|
},
|
|
{
|
|
"name": "Kotlin",
|
|
"evidence": "production-historical",
|
|
"output": "allowed-with-context",
|
|
"context": "Bosch 2020-2022: backend services, Ansible plugin work and extensions, alongside Python as the primary language and some Java.",
|
|
"note": "Added 2026-09-11 on user confirmation. Was absent from claims.json entirely, so it was unwritable under the evidence-first rule - the FOURTH real skill found missing this way, after Ansible and Linux (both 2026-08-27) and Bash (2026-09-05). Same systemic lesson: ask about the stack explicitly rather than trusting this file to be complete. (Groovy and Snowflake, registered the same day, are NOT instances of this pattern - they are skills he does NOT have, registered as `forbidden` so the document scanner could catch them.)"
|
|
},
|
|
{
|
|
"name": "Microsoft SQL Server",
|
|
"evidence": "production-historical",
|
|
"output": "allowed-with-context",
|
|
"context": "Fraunhofer 2018-2019 (FC-1): SCEDAS ran on Microsoft SQL Server with Entity Framework.",
|
|
"note": "Added 2026-09-11 from the Fraunhofer Arbeitszeugnis. IMPORTANT: the RUAG 'Senior Data Engineer (MSSQL)' rule-out of 2026-09-04 asserted 'MSSQL 0 canonical'. That premise was WRONG. The rule-out itself may still stand on its other required lines (multi-year ON-PREMISE data-warehouse construction, Talend, SAP S/4HANA - all genuinely 0), but the MSSQL half of the reasoning must not be repeated. One project database in 2018-2019 is also not data-warehouse experience; state it as what it is."
|
|
},
|
|
{
|
|
"name": "Entity Framework",
|
|
"evidence": "production-historical",
|
|
"output": "allowed-with-context",
|
|
"context": "Fraunhofer 2018-2019 (FC-1), with C# on SCEDAS.",
|
|
"note": "Added 2026-09-11 from the Arbeitszeugnis."
|
|
},
|
|
{
|
|
"name": "Express.js",
|
|
"evidence": "production-historical",
|
|
"output": "allowed-with-context",
|
|
"context": "Fraunhofer 2018-2019 (FC-3): microservices for the MISSION data-exchange platform.",
|
|
"note": "Added 2026-09-11 from the Arbeitszeugnis."
|
|
},
|
|
{
|
|
"name": "SQLite",
|
|
"evidence": "production-historical",
|
|
"output": "allowed-with-context",
|
|
"context": "Fraunhofer 2018-2019 (FC-3), MISSION platform.",
|
|
"note": "Added 2026-09-11 from the Arbeitszeugnis."
|
|
},
|
|
{
|
|
"name": "Selenium",
|
|
"evidence": "production-historical",
|
|
"output": "allowed-with-context",
|
|
"context": "Generali 2015-2017 (GN-1): automated UI tests with Serenity-BDD, Selenium and JBehave.",
|
|
"note": "Added 2026-09-11 from the Arbeitszeugnis."
|
|
},
|
|
{
|
|
"name": "Serenity-BDD / JBehave",
|
|
"evidence": "production-historical",
|
|
"output": "allowed-with-context",
|
|
"context": "Generali 2015-2017 (GN-1): the BDD test-automation stack he held technical responsibility for.",
|
|
"note": "Added 2026-09-11 from the Arbeitszeugnis."
|
|
},
|
|
{
|
|
"name": "Apache Camel",
|
|
"evidence": "production-historical-limited",
|
|
"output": "allowed-with-context",
|
|
"context": "Generali 2015-2017 (GN-3): Dispatcher proof of concept, with Spring Boot.",
|
|
"note": "Added 2026-09-11 from the Arbeitszeugnis. PoC scale - do not present as integration-platform ownership."
|
|
},
|
|
{
|
|
"name": "Spring Boot",
|
|
"evidence": "production-historical-limited",
|
|
"output": "allowed-with-context",
|
|
"context": "Generali 2015-2017 (GN-3): Dispatcher proof of concept, with Apache Camel.",
|
|
"note": "Added 2026-09-11 from the Arbeitszeugnis. This CONFIRMS what was previously only asserted in the SBB interview brief - Spring Boot exposure is real but PoC-scale and a decade old. It does NOT support a current Spring Boot claim, and it does not license Angular, which remains absent."
|
|
},
|
|
{
|
|
"name": "IBM Operational Decision Management (ODM)",
|
|
"evidence": "production-historical-limited",
|
|
"output": "allowed-with-context",
|
|
"context": "Generali trainee programme 2015: evaluated Decision Center 8.7.",
|
|
"note": "Added 2026-09-11 from the Arbeitszeugnis. Evaluation only."
|
|
},
|
|
{
|
|
"name": "XLDeploy",
|
|
"evidence": "production-historical-limited",
|
|
"output": "allowed-with-context",
|
|
"context": "Generali 2015-2017 (GN-3): migrated web services onto a new deployment procedure.",
|
|
"note": "Added 2026-09-11 from the Arbeitszeugnis."
|
|
}
|
|
],
|
|
"global_forbidden_output_patterns": [
|
|
"petabyte scale",
|
|
"petabyte-scale",
|
|
"own the AWS data platform",
|
|
"LangChain-based",
|
|
"customer-embedded delivery",
|
|
"formal model evaluation",
|
|
"3 consecutive years"
|
|
],
|
|
"document_exclusions": [
|
|
{
|
|
"term": "Capgemini",
|
|
"scope": "every resume, CV and cover letter",
|
|
"reason": "Standing user preference: six months only (Nov 2014 - May 2015); the user does not want the short-stay impression. The resulting gap in the visible chronology is INTENTIONAL and must never be 'fixed' or explained away. The visible record starts at Generali, May 2015, which is also what any 'over ten years' tenure wording is measured against.",
|
|
"applies_to_documents_only": true,
|
|
"note": "This is a DOCUMENT rule, not a conversation rule. If an interviewer asks directly what the first civilian role was, naming it plainly is correct - declining to name a former employer reads worse than a six-month stay.",
|
|
"source": "User-confirmed 2026-08-27 after it regressed into the RUAG C5I draft; given a canonical home 2026-09-11 (review finding F05), having previously lived only in memory and config.md."
|
|
}
|
|
],
|
|
"open_discrepancies_2026_09_11": {
|
|
"note": "All six discrepancies found on 2026-09-11 are resolved; see resolved_2026_09_11. Kept as a record of what reading the primary documents actually turned up.",
|
|
"items": [],
|
|
"resolved_2026_09_11": {
|
|
"D1-bosch-title": "CLOSED. User re-confirmed the promotion and timing; the Zeugnis names departments, not titles. official_title_provenance corrected - it never came from that document.",
|
|
"D2-bosch-promotion-date": "CLOSED with D1. The 2021-01 re-grading stands.",
|
|
"D3-bosch-part-time": "CLOSED by user decision: part-time from 2021-09 is NOT recorded and does not belong in any document. Note for completeness: tenure wording such as 'over ten years' measures ELAPSED time and is unaffected. It would only matter if a document ever claimed full-time-equivalent years, which none does.",
|
|
"D4-swisscom-languages": "CLOSED. The user reviewed the sentence and confirmed it is an error in the Zeugnis. DE/EN only stands. See identity.language_note.",
|
|
"D6-vizrt-end-date": "CLOSED by user decision: end 2018-05 stands. The letter, written 2018-05-09, evidently stated a planned end date.",
|
|
"D5-swisscom-dwh": "CLOSED. User ruling: the RUAG role itself is not revisited (and a second cold application to RUAG is blocked anyway while 18027 is pending), but the reasoning IS corrected. Both RUAG decision-log rows now carry the correction. Standing rule recorded there: he has documented data-warehouse experience (Teradata, component owner) and MSSQL exposure - screen DWH roles on Aufbau-vs-Betrieb and the named vendor stack, never on 'no DWH' or 'MSSQL 0'."
|
|
}
|
|
}
|
|
}
|