{ "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", "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.", "grade_output_rule": "Use the confirmed German original grade and its scale. Omit grades from industry resumes and letters unless concretely relevant. Do not convert with the inverse Bavarian formula. If a recipient requires a US GPA, use only its specified conversion method and record that method; otherwise ask the recipient how to enter a German grade." }, { "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", "grade_output_rule": "Use the confirmed German original grade and its scale. Omit grades from industry resumes and letters unless concretely relevant. Do not convert with the inverse Bavarian formula. If a recipient requires a US GPA, use only its specified conversion method and record that method; otherwise ask the recipient how to enter a German grade." } ], "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" } ], "official_title": "Data, Analytics & AI Engineer IV", "official_title_source": "Swisscom Zwischenzeugnis Okt 2025 ('Data, Analytics & AI Engineer IV'); user-confirmed 2026-09-15, including that the grade before the Apr 2025 promotion was III. Use the official title on INTERNAL Swisscom applications; display_title ('Staff ...') remains the external rendering.", "internal_title_history": [ { "title": "Data, Analytics & AI Engineer III", "start": "2023-10", "end": "2025-04" }, { "title": "Data, Analytics & AI Engineer IV", "start": "2025-04", "end": "present" } ], "org_history": [ { "unit": "ART B2B", "phase": "first part of the Swisscom tenure - PAST", "scope": "Legacy Teradata DWH: component ownership of the Fulfillment ETL (SW-2), Python applications on Kubernetes with GitLab CI/CD (SW-3), dashboards and analyses (SW-4), Kafka." }, { "unit": "ART DPT, Team Offering", "phase": "current", "scope": "Migration and implementation of the new AWS-based data products (SW-1, SW-6, SW-7). Stack, user-confirmed 2026-09-15: AWS, ODP-Flow, PySpark/Python, Glue, Iceberg, Athena, Airflow. The Offering domain also covers Fulfillment and Product data; the user does not want that detail on documents." } ], "org_history_note": "User-supplied 2026-09-15. The switch date between the units is NOT recorded and the user ruled it not relevant: never put dates on the two units. Unit names 'ART B2B' and 'ART DPT' (ART is the SAFe term; user-confirmed 2026-09-15 that 'ART' and 'Art' are both acceptable). The Zwischenzeugnis lists duties from both units as one undifferentiated list; it is not evidence that any of them is current." }, { "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 ' 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. IMPLEMENTATION, user-confirmed 2026-09-15: the migration and its automation were written in PYTHON as AWS GLUE JOBS, together with ODP-FLOW, Swisscom's internal framework for creating data products. ODP-Flow is Swisscom's framework, not his - he uses it; never claim he built or owns it. PHASE, user-confirmed 2026-09-15: this is CURRENT work at ART DPT, Team Offering, on AWS, ODP-Flow, PySpark/Python, Glue, Iceberg, Athena and Airflow.", "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). PHASE, user-confirmed 2026-09-15: this was the legacy DWH at ART B2B, the first part of his Swisscom tenure - it is PAST. Write it in past tense ('Owned', 'operated'); never 'own' or 'owns'.", "allowed_verbs": [ "owned", "operated", "maintained", "served" ], "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. User-confirmed 2026-09-15: the GitLab CI/CD pipelines deploy across MULTIPLE ENVIRONMENTS (he answered yes to dev/test/prod; exact environment names are not recorded - write 'multiple environments'). PHASE, user-confirmed 2026-09-15: Kubernetes and GitLab CI/CD belonged to the legacy B2B system at ART B2B - PAST; the current ART DPT stack is AWS-native. Write in past tense. SCOPE, user-clarified 2026-09-15: he WORKED WITH automated GitLab CI/CD pipelines - he did not build or design the CI/CD automation. The Zwischenzeugnis wording 'automation of CI/CD processes in GitLab' overstates his part; write 'deployed through automated GitLab CI/CD pipelines'.", "allowed_verbs": [ "built", "deployed", "operated" ], "forbidden": [ "built the CI/CD automation", "designed the CI/CD pipelines" ], "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. PHASE, user-confirmed 2026-09-15: ART B2B, legacy system - PAST; write in past tense. WORKING APPROACH, user-confirmed 2026-10-15 (knowledge_base/extractions/2026-10-14_mentoring_spotfire_sdmx_clarification.md): on a B2B data product whose stakeholders were B2B business, architects and engineers and whose requirements could not be completed up front, he built a prototype, proposed it and iterated on it instead of waiting for full agreement; it took more iterations but, in HIS assessment, reached the result much faster. The speed-up is his opinion, not a measured figure - never quantify it.", "allowed_verbs": [ "delivered", "translated", "partnered", "supported" ], "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). PHASE, user-confirmed 2026-09-15: current, at ART DPT, Team Offering.", "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": "knowledge_base/extractions/2026-10-03_data_product_design_frontend_clarification.md; prior user confirmations 2026-07-29 and 2026-09-15", "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. User-confirmed 2026-09-15: the data-product modelling is RELATIONAL - logical and physical table models. Data products are created with ODP-Flow, Swisscom's internal data-product framework (see SW-1); he uses the framework and did not build it. PHASE, user-confirmed 2026-09-15: current work at ART DPT, Team Offering. User-confirmed 2026-10-03: current work includes data modelling, design of data products and their implementation. Scope design to his own data products; the exact duration is not established by this clarification. User-confirmed 2026-10-21 (knowledge_base/extractions/2026-10-21_software_design_architecture_clarification.md): software design and architecture of data products are part of his Swisscom work, and together with the Bosch design work (BS-1/BS-2, 2020-2022) they exceed three years - enough to meet a '3 years of software design and architecture' requirement. The start date of design work at Swisscom stays undated (never date the ART units).", "allowed_verbs": [ "build", "model", "onboard", "contribute", "document", "maintain", "design" ], "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", "developed ODP-Flow", "own ODP-Flow", "built the ODP-Flow framework" ], "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. DESIGN, user-confirmed 2026-10-21 (knowledge_base/extractions/2026-10-21_software_design_architecture_clarification.md): software design and architecture of the ingestion and inference scripts were part of his Bosch work (2020-2022) and count toward a 'years of software design and architecture' requirement. Scope 'designed' to his own scripts and the inference integration - never the fab IT architecture, an architect title or design authority.", "allowed_verbs": [ "integrated", "containerized", "deployed", "orchestrated", "designed" ], "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. DESIGN, user-confirmed 2026-10-21 (knowledge_base/extractions/2026-10-21_software_design_architecture_clarification.md): he designed as well as built the INGESTION SCRIPTS (his words: 'ingestion/inference scripts at Bosch'). 'designed' covers those scripts only - the statement does not extend to the data services in general, so write 'developed' or 'built' for them. See BS-1 for the shared design note and its limits.", "allowed_verbs": [ "developed", "built", "designed" ], "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": "PP-4", "evidence": { "source": "User confirmation 2026-09-18; knowledge_base/extractions/2026-09-18_python_frameworks_saas_clarification.md", "ownership": "personal-project use; project ownership and implementation scope not specified" }, "scope": "Used Django, Flask and FastAPI in private/hobby projects, never professionally. Project names, dates, implementation details, scale and deployment status are not established. Do not assign these frameworks to PP-1 or PP-3 without confirmation.", "allowed_verbs": [ "used" ], "forbidden": [ "professional Django, Flask or FastAPI experience", "production backend-framework experience", "attributing these frameworks to an employer or an existing named project without confirmation" ], "metrics": "none verified" }, { "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" }, { "id": "BS-8", "evidence": { "source": "user confirmation 2026-09-15; partly corroborated by the TAF 2022 co-presentation 'Understanding Spatial Variability in Semiconductor Products with Spotfire Map Charts' (experience_bosch.md, BS-5)", "ownership": "individual - hands-on work inside the Bosch data-analysis team" }, "scope": "Worked extensively with GEOSPATIAL DATA at Bosch (2020-2022) to visualize, locate and analyze wafer data, using TIBCO Spotfire and Oracle databases with Oracle's SDO_GEOMETRY spatial data type (user-confirmed 2026-09-15). The tools and systems involved used DIFFERENT COORDINATE REFERENCE SYSTEMS; normalizing the data and transforming it from one coordinate system to another was, in the user's words, probably the biggest pain point of the work, with PERFORMANCE TUNING the other. Pairs with BS-5, which covers the Spotfire map-chart side and the TAF 2022 talk. CORRECTION RECORDED 2026-09-15: the first assessment of the Swisscom Geo Platform posting asserted that wafer coordinates carry no coordinate reference system; the user corrected it the same day - CRS normalization and transformation was the central difficulty of this work, not an absent one. LIMITS: the coordinate systems were those of fab tools and systems for WAFER data. Geographic and geodetic specifics - datums, ellipsoids, map projections, EPSG codes, Swiss LV95/LV03 - are NOT established; ask before writing any of them. SDO_GEOMETRY is confirmed; specific spatial operators and spatial indexes were not separately confirmed. User-confirmed 2026-09-15 that he has NEVER used ArcGIS, FME, QGIS, PostGIS, GeoServer or GDAL, nor shapefile/GeoJSON/GeoTIFF or swisstopo data. DOCUMENT WORDING, user-approved 2026-09-15: for geo/GIS audiences write SPATIAL wafer data, not geospatial - wafer coordinates are not Earth-referenced, and a Geomatik reader takes 'geospatial' to mean they are.", "allowed_verbs": [ "worked with", "normalized", "transformed", "analyzed", "visualized", "tuned" ], "forbidden": [ "GIS specialist", "geodetic datum transformation" ], "metrics": "none verified; no query-performance or data-volume figures exist" }, { "id": "ED-1", "evidence": { "source": "user confirmation 2026-10-08; knowledge_base/extractions/2026-10-08_embedded_coursework_testing_clarification.md", "ownership": "individual - academic coursework" }, "scope": "ACADEMIC COURSEWORK ONLY, during his studies at Universitaet der Bundeswehr Muenchen (2009-2013): an Embedded Systems course working in C/C++ and VHDL with an ARM platform, and Robotics as a subject. User-confirmed 2026-10-08, together with: 'no embedded work since my studies'. Which degree (B.Eng. or M.Eng.) the courses belonged to is NOT recorded - do not attach them to a specific degree until the user says. Course format (lecture, lab, project), board, FPGA, toolchain and outcomes are not established.", "allowed_verbs": [ "studied", "completed coursework in" ], "forbidden": [ "professional embedded experience", "embedded engineer", "firmware development", "any embedded work after his studies", "naming a specific board, FPGA, RTOS or toolchain", "presenting coursework as a delivered project or product" ], "metrics": "none" }, { "id": "SW-9", "evidence": { "source": "user confirmation 2026-10-08; knowledge_base/extractions/2026-10-08_embedded_coursework_testing_clarification.md", "ownership": "individual - hands-on" }, "scope": "Writes unit tests for his Python code in his current work at Swisscom (user answered 'Unit Tests, yes' to 'do you write tests today?', asked with Swisscom Glue/Airflow examples). Knows pytest ('pytest is known', named in answer to 'which frameworks'). PHASE: current. USER-APPROVED WORDING 2026-10-08: asked directly 'do you unit-test the Glue/pipeline code at Swisscom, and with pytest?', the user approved the Kongsberg resume as written ('i think its ok how it is'), which states 'with unit tests for the pipeline code' and 'Unit testing (pytest)'. That approval is the basis for both phrasings. Still NOT established: coverage, test scope beyond 'pipeline code', and CI integration of these tests.", "allowed_verbs": [ "write", "unit-test", "test" ], "forbidden": [ "any coverage, test-count or defect-reduction figure", "built the test framework", "owned the team's test strategy", "integration or end-to-end test suites at Swisscom" ], "metrics": "none" }, { "id": "BS-9", "evidence": { "source": "user confirmation 2026-10-14; knowledge_base/extractions/2026-10-14_mentoring_spotfire_sdmx_clarification.md", "ownership": "individual - technical onboarding and mentoring" }, "scope": "Onboarded and mentored JUNIOR DEVELOPERS at Bosch (2020-2022) - user-confirmed 2026-10-14, verbatim 'i did onboarding & mentoring of junior developers at Bosch and Swisscom'. SEPARATE from BS-7, which covers students and one Bachelor thesis as Zweitpruefer: BS-9 is about professional junior colleagues. Together they answer JD lines on guiding or supervising junior colleagues. LIMITS: the number of juniors, whether it was a formal assignment, and the onboarding content are not recorded; this is technical guidance, never people management.", "allowed_verbs": [ "onboarded", "mentored", "guided", "supported" ], "forbidden": [ "managed a team", "line management", "led engineers", "people manager", "any count of mentees or juniors - none is recorded", "formal mentoring programme - not established" ], "metrics": "none; number of junior developers and outcomes are not recorded" }, { "id": "SW-10", "evidence": { "source": "user confirmation 2026-10-14; knowledge_base/extractions/2026-10-14_mentoring_spotfire_sdmx_clarification.md", "ownership": "individual - technical onboarding and mentoring" }, "scope": "Onboarded and mentored JUNIOR DEVELOPERS at Swisscom - user-confirmed 2026-10-14 together with BS-9. PHASE NOT RECORDED: which unit (ART B2B or ART DPT) it belongs to is unknown, so do not present it as current; past tense ('Onboarded and mentored') is safe either way. LIMITS: the number of juniors, whether it was a formal assignment, and the onboarding content are not recorded; this is technical guidance, never people management.", "allowed_verbs": [ "onboarded", "mentored", "guided", "supported" ], "forbidden": [ "managed a team", "line management", "led engineers", "people manager", "any count of mentees or juniors - none is recorded", "formal mentoring programme - not established" ], "metrics": "none; number of junior developers and outcomes are not recorded" } ], "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-historical", "output": "allowed", "note": "Downgraded from production-current 2026-09-15: at Swisscom, Kafka belonged to the legacy B2B system (ART B2B), not the current ART DPT AWS stack. Still genuine production evidence - just not current." }, { "name": "Airflow", "evidence": "production-current", "output": "allowed" }, { "name": "Apache Iceberg", "evidence": "production-current", "output": "allowed", "note": "User-confirmed 2026-09-15 as part of the current ART DPT stack (AWS, ODP-Flow, PySpark/Python, Glue, Iceberg, Athena, Airflow). Previously appeared only in experience_swisscom.md and skills_taxonomy.md, not as a canonical skill." }, { "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": "relational data modelling", "evidence": "production-current", "output": "allowed", "note": "User-confirmed 2026-09-15: logical and physical relational (table) models for data products at Swisscom (SW-7), alongside component ownership of the ETL into the Teradata DWH (SW-2). Previously only implied by SW-7's verb 'model'. User-confirmed 2026-10-03: current work includes data modelling, design of data products and their implementation. Scope design to his own data products; the exact duration is not established by this clarification." }, { "name": "ODP-Flow", "evidence": "production-current", "output": "allowed-with-context", "context": "Swisscom-internal framework for creating data products, used in the migration (SW-1) and in data-product work (SW-7).", "note": "User-supplied 2026-09-15. An internal name that only Swisscom readers recognise - always pair it with the descriptor 'Swisscom's internal data-product framework', and omit it for external employers unless explained. He USES it; never claim he built, designed or owns it." }, { "name": "Kubernetes", "evidence": "production-historical", "output": "allowed", "note": "Downgraded from production-current-and-historical 2026-09-15: at Swisscom, Kubernetes (with GitLab CI/CD) belonged to the legacy B2B system at ART B2B, and Bosch ended 2022. The current ART DPT stack is AWS-native. Never present Kubernetes as current work." }, { "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": "pytest", "evidence": "hands-on-current", "output": "allowed-with-context", "context": "SW-9: unit tests for his Python code at Swisscom.", "note": "User 2026-10-08: 'Unit Tests, yes - pytest is known'. Use at Swisscom for pipeline-code unit tests rests on the user's approval of the Kongsberg resume wording 2026-10-08 after being asked directly (see SW-9)." }, { "name": "unit testing", "evidence": "hands-on-current", "output": "allowed", "note": "SW-9, user-confirmed 2026-10-08. Historical test automation is separate evidence: GN-1 (BDD/Selenium), VZ-2 (test suites as CI/CD quality gates)." }, { "name": "embedded systems (coursework)", "evidence": "coursework", "output": "allowed-with-context", "context": "ED-1: university Embedded Systems course, C/C++ and VHDL with an ARM platform. Always label as coursework.", "note": "User-confirmed 2026-10-08: no embedded work since his studies. Never list under professional skills without the coursework label; never imply professional embedded, firmware or HIL experience." }, { "name": "VHDL", "evidence": "coursework", "output": "allowed-with-context", "context": "ED-1 coursework only." }, { "name": "robotics (coursework)", "evidence": "coursework", "output": "allowed-with-context", "context": "ED-1 coursework only; content of the subject not recorded." }, { "name": "Jenkins", "evidence": "production-historical", "output": "allowed", "note": "Registered 2026-10-08 from existing canonical claim scopes - no new user statement. GN-1 (Generali 2015-2017): administered the BDD build jobs in Jenkins. FC-1 (Fraunhofer 2018-2019): introduced and configured Jenkins and built the build jobs for automatic SCEDAS deployment. BS-6 (Bosch 2020-2022): Ansible playbooks executed push-style from Jenkins/GitLab pipelines. Was evidenced in scopes but absent from this skills list, so a skills line could not cite it (surfaced by the Kongsberg DevOps and Test Infrastructure package). Does NOT license Groovy (forbidden) or claims about Jenkins quality gates at Fraunhofer, which the Arbeitszeugnis does not state." }, { "name": "GitLab CI/CD", "evidence": "production-historical", "output": "allowed", "note": "Registered 2026-10-08 from existing canonical claim scopes - no new user statement. SW-3 (Swisscom, ART B2B, PAST): Python applications on Kubernetes deployed through automated GitLab CI/CD pipelines across multiple environments - he WORKED WITH that automation and did not build or design it (SW-3 forbidden list applies). BS-6 (Bosch 2020-2022): Ansible playbooks executed from Jenkins/GitLab pipelines. Never present as current work and never claim he designed the Swisscom pipelines." }, { "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": "personal-project", "output": "allowed-with-context", "context": "PP-4: private/hobby projects only, not professional experience.", "note": "User-confirmed 2026-09-18. Project details, dates and depth are not established. Always identify the personal-project context." }, { "name": "Flask", "evidence": "personal-project", "output": "allowed-with-context", "context": "PP-4: private/hobby projects only, not professional experience.", "note": "User-confirmed 2026-09-18. Project details, dates and depth are not established. Always identify the personal-project context." }, { "name": "Django", "evidence": "personal-project", "output": "allowed-with-context", "context": "PP-4: private/hobby projects only, not professional experience.", "note": "User-confirmed 2026-09-18. Project details, dates and depth are not established. Always identify the personal-project context." }, { "name": "enterprise SaaS/SSO administration", "evidence": "none", "output": "forbidden", "note": "User-confirmed 2026-09-18: has not administered enterprise SaaS/SSO. Do not claim enterprise SaaS-seat administration or SSO/IdP administration. This does not establish that OAuth, SCIM or Okta have never been encountered in any other context. Source: knowledge_base/extractions/2026-09-18_python_frameworks_saas_clarification.md." }, { "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." }, { "name": "Oracle SDO_GEOMETRY", "evidence": "production-historical", "output": "allowed-with-context", "context": "Bosch 2020-2022 (BS-8): Oracle geospatial data type used to visualize, locate and analyze wafer data.", "note": "User-confirmed 2026-09-15. Previously ABSENT from claims.json - the fifth real skill found missing this way, after Ansible, Linux administration, Bash and Kotlin. Spatial SQL on Oracle does NOT license PostGIS, and it does not license ArcGIS geodatabase work." }, { "name": "coordinate system transformation", "evidence": "production-historical", "output": "allowed-with-context", "context": "Bosch 2020-2022 (BS-8): normalizing wafer data across the different coordinate reference systems of fab tools and systems, and transforming between them - the main difficulty of that work.", "note": "User-confirmed 2026-09-15. Establishes CRS normalization and transformation. Does NOT establish geodetic datums, map projections, EPSG codes or Swiss LV95/LV03 work - ask before writing any of them." }, { "name": "ArcGIS", "evidence": "none", "output": "forbidden", "note": "User-confirmed 2026-09-15: never used. Required together with FME in the internal Swisscom posting Data Engineer - Geo Platform (R-0006447): 'Fundierte Praxis mit ArcGIS und FME'. Registered so the document scanner can catch it, for the same reason as Groovy and Snowflake. Spotfire map charts (BS-5) and Oracle SDO_GEOMETRY (BS-8) are the honest spatial evidence and do not substitute for it." }, { "name": "FME", "evidence": "none", "output": "forbidden", "note": "User-confirmed 2026-09-15: never used. Required together with ArcGIS in Swisscom R-0006447. General ETL pipeline experience is transferable context, never a claim of FME practice. See ArcGIS." }, { "name": "QGIS", "evidence": "none", "output": "forbidden", "note": "User-confirmed 2026-09-15: never used. See ArcGIS." }, { "name": "PostGIS", "evidence": "none", "output": "forbidden", "note": "User-confirmed 2026-09-15: never used. Oracle SDO_GEOMETRY (BS-8) is the real spatial-database evidence and does not license PostGIS. See ArcGIS." }, { "name": "GeoServer", "evidence": "none", "output": "forbidden", "note": "User-confirmed 2026-09-15: never used. See ArcGIS." }, { "name": "GDAL", "evidence": "none", "output": "forbidden", "note": "User-confirmed 2026-09-15: never used. See ArcGIS." }, { "name": "frontend development", "evidence": "none", "output": "forbidden", "note": "User answered no to frontend experience on 2026-10-03. Source: knowledge_base/extractions/2026-10-03_data_product_design_frontend_clarification.md. Do not claim frontend/UI development or Full Stack expertise. Does not erase historical backend JavaScript, UI-test automation or thesis/project facts; those do not establish frontend development experience." }, { "name": "TIBCO Spotfire", "evidence": "production-historical", "output": "allowed", "note": "Registered 2026-10-14 on user instruction from existing canonical scopes: BS-5 (co-owned the Bosch Spotfire environment, technical Application Owner, built C# extensions, co-presented at TIBCO Analytics Forum 2022) and BS-8 (spatial wafer-data visualization with Spotfire map charts). Was evidenced in scopes but absent from this skills list - the same gap as Jenkins and GitLab CI/CD (2026-10-08). Bosch 2020-2022, never current. Supports 'BI tools' / 'database reporting' JD lines; does NOT license Power BI, Tableau or Qlik." }, { "name": "SDMX", "evidence": "none", "output": "forbidden", "note": "User-confirmed 2026-10-14: no experience with SDMX (Statistical Data and Metadata eXchange). Named in the BIS jr100498 accountabilities ('the Bank's SDMx activities'). Registered so the document scanner can catch it, as with ArcGIS and Groovy. General data-collection and data-quality work (SW-2, SW-7) is transferable context, never a claim of SDMX practice." }, { "name": "Teradata", "evidence": "production-historical", "output": "allowed", "note": "Registered 2026-10-14 from existing canonical claim scopes - no new user statement, same procedure as Jenkins and GitLab CI/CD on 2026-10-08. Was evidenced in scopes but absent from this skills list, so a skills line could not cite it (surfaced by the BIS jr100498 package). SW-2 (Swisscom, ART B2B, PAST): component ownership of the ETL into the Teradata data warehouse. Operation (Betrieb) of an existing DWH, not its construction (Aufbau). Never present as current work." }, { "name": "Oracle Database", "evidence": "production-historical", "output": "allowed", "note": "Registered 2026-10-14 from existing canonical claim scopes - no new user statement, same procedure as Jenkins and GitLab CI/CD on 2026-10-08. Was evidenced in scopes but absent from this skills list, so a skills line could not cite it (surfaced by the BIS jr100498 package). BS-2 (Bosch 2020-2022): data services over Oracle; BS-8: work with the SDO_GEOMETRY spatial data type, with performance tuning named as a main difficulty (what exactly was tuned is not recorded); SW-2 (Swisscom, ART B2B, PAST): Oracle source databases feeding the Teradata DWH. Developer and data-engineering use. Does NOT establish Oracle database administration (DBA) - see the AWS DB Specialist SA and BIS jr100420 rule-outs." }, { "name": "Hadoop / Impala", "evidence": "production-historical", "output": "allowed", "note": "Registered 2026-10-14 from existing canonical claim scopes - no new user statement, same procedure as Jenkins and GitLab CI/CD on 2026-10-08. Was evidenced in scopes but absent from this skills list, so a skills line could not cite it (surfaced by the BIS jr100498 package). BS-2 (Bosch 2020-2022): data services over Hadoop/Impala for fab analysis teams. Query and data-service use; does not establish Hadoop cluster administration or Cloudera administration." } ], "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'." } } }