|
|
|
@@ -0,0 +1,474 @@
|
|
|
|
|
# Session: RUAG C5I - AI Engineer C5I (w/m/d)
|
|
|
|
|
|
|
|
|
|
## JD Integrity
|
|
|
|
|
- **File/source:** `JD_ruag_ai_engineer_c5i.txt`; verbatim visible body from `https://jobs.ruag.ch/offene-stellen/ai-engineer-c5i/4afaa9aa-74c1-4b4d-9232-cf65651ce8ec`.
|
|
|
|
|
- **Retrieval method and date:** direct web retrieval of the live RUAG posting and apply form, 2026-08-27.
|
|
|
|
|
- **Verbatim posting:** YES.
|
|
|
|
|
- **Posting status:** LIVE 2026-08-27; application form reachable. Internal application ID 18027, publish ID 10075372.
|
|
|
|
|
- **Official portal listing:** Berufserfahrene, Thun, Switzerland, 80-100%.
|
|
|
|
|
|
|
|
|
|
## Application Decision
|
|
|
|
|
- **Audience profile:** Swiss/DACH. German-language posting, Swiss defence employer, local Thun role.
|
|
|
|
|
- **Evidence Fit:** **74/100**.
|
|
|
|
|
- **Fit class:** **Stretch under `application_strategy.md`**, although the numerical score is at the top of Adjacent. The title-defining AI-/LLM-platform build and in-house LLM implementation are only Adjacent.
|
|
|
|
|
- **Hard gate:** **FAIL under the strict `critique_framework.md` title-capability rule.** Dennis has not built or operated an AI-/LLM platform or implemented a production retrieval/document solution. His evidence is real but one layer adjacent: Kubernetes/data-platform operation, professional Linux/Ansible, containerized ML inference integration, LiteLLM/API exposure and configuration of grounded LLM assistants.
|
|
|
|
|
- **Channel Strength:** Weak today; upgradeable to Moderate only after an actual conversation.
|
|
|
|
|
- **Channel plan:** contact Frank Haugwitz (`recruiting-c5i@ruag.ch`) for compensation/PSP screening and Marco Heinzen (`marco.heinzen@ruag.ch`, +41 79 568 14 96) for technical scope, especially whether the first six months centre on platform engineering or direct RAG/LLM implementation.
|
|
|
|
|
- **Cohort slot:** evidence-first-2026-01 currently 5/10: Core 3/7, Adjacent 2/2, Stretch 0/1. Proceeding would consume the sole Stretch slot.
|
|
|
|
|
- **Decision:** **PROCEED by explicit user override, 2026-08-27.** The user consciously accepts the title-capability gap, unresolved compensation/PSP questions and use of the cohort's sole Stretch slot. The Evidence Fit, Stretch classification and strict hard-gate result remain unchanged.
|
|
|
|
|
|
|
|
|
|
## Role and Practical Context
|
|
|
|
|
| Field | Current fact |
|
|
|
|
|
|---|---|
|
|
|
|
|
| Employer | RUAG, Business Area C5I |
|
|
|
|
|
| Role | AI Engineer C5I (w/m/d) |
|
|
|
|
|
| Location | C5I, Uttigenstrasse 36, 3600 Thun |
|
|
|
|
|
| Pensum | 80-100% |
|
|
|
|
|
| Target group | Berufserfahrene |
|
|
|
|
|
| Technical contact | Marco Heinzen, Principal GIS Engineering C5I, +41 79 568 14 96, `marco.heinzen@ruag.ch` |
|
|
|
|
|
| Recruiting contact | Frank Haugwitz, Director Sourcing C5I-Campus, `recruiting-c5i@ruag.ch` |
|
|
|
|
|
| Application documents | CV / complete dossier required; motivation letter and certificates optional |
|
|
|
|
|
| Work model | Flexible hours and home-office options stated; no cadence promised. Commute is immaterial because the role is in Thun |
|
|
|
|
|
| Security process | RUAG states that all new employees undergo a Personensicherheitsprüfung; the JD also requests criminal- and debt-register extracts before employment |
|
|
|
|
|
| Compensation | No band. RUAG states market-based pay, 13 monthly salaries and allowances. Small self-reported samples indicate a meaningful risk of a cut versus current approximately CHF 140k; exact role band must be asked |
|
|
|
|
|
|
|
|
|
|
### PSP / citizenship read
|
|
|
|
|
- The posting contains **no Swiss-citizenship requirement**.
|
|
|
|
|
- RUAG's official careers page says all new employees undergo a PSP.
|
|
|
|
|
- SEPOS states that people resident abroad can in principle undergo a PSP and that third-party/company employees are checked for security-sensitive work. This does not guarantee a positive result or this role's project eligibility.
|
|
|
|
|
- German citizenship plus Swiss B work authorization is therefore **not an evidenced automatic disqualifier**, but the role-specific PSP/project-access position remains a practical question for RUAG.
|
|
|
|
|
|
|
|
|
|
### Compensation read
|
|
|
|
|
- Official posting: no salary band; only market-based pay, 13 salaries and benefits.
|
|
|
|
|
- Kununu RUAG samples are small and non-authoritative: DevOps Engineer approximately CHF 96.6k (n=2), Data Scientist approximately CHF 106.2k (n=2), Software Developer approximately CHF 110.5k average with CHF 78.3k-138.4k range (n=6).
|
|
|
|
|
- These numbers cannot price this vacancy, but they make a material pay cut versus current compensation plausible. The Thun-local exception permits near-current pay, not a large reduction.
|
|
|
|
|
|
|
|
|
|
## Requirements
|
|
|
|
|
| # | Requirement | Req/Pref | Class | Canonical evidence | Gate? |
|
|
|
|
|
|---|---|---|---|---|---|
|
|
|
|
|
| Q1 | BSc/MSc in Informatics, Computer Science, Data Science or comparable | Required | **Direct** | EDU-MENG (M.Eng. Computer Aided Engineering, Software Design & Engineering); EDU-BENG | - |
|
|
|
|
|
| Q2 | Several years in ML Engineering, Data Engineering, Software Engineering or DevOps | Required, disjunctive | **Direct** | SWISSCOM employment + SW-1/SW-2/SW-3; BOSCH + BS-1/BS-2/BS-6; FRAUNHOFER; VIZRT | - |
|
|
|
|
|
| Q3 | Very strong Python and experience with modern ML/AI frameworks | Required | **Split: Python Direct, frameworks Adjacent** | Python production-current; FC-2 ML/NLP contribution; BS-1 ML-inference integration; TensorFlow/Keras only certification-context evidence | ⚠ |
|
|
|
|
|
| Q4 | Linux, Docker, Kubernetes or comparable platforms | Required, disjunctive | **Direct** | BS-6, PP-3, BS-1, SW-3 | - |
|
|
|
|
|
| Q5 | LLM, RAG, APIs, data pipelines or search knowledge | Preferred, disjunctive | **Direct overall / partial** | SW-8 LLM configuration and LiteLLM API exposure; SW-1/SW-2/SW-3 data pipelines. RAG and search implementation remain Gaps | - |
|
|
|
|
|
| Q6 | Structured, independent, pragmatic execution | Required behaviour | **Adjacent** | SW-2 Component Owner, BS-3 Application Owner, FC-1 independent CI/CD setup; do not turn these into unsupported personality claims | - |
|
|
|
|
|
| Q7 | Very good German; English preferred | Required / preferred | **Direct** | German native, English fluent | - |
|
|
|
|
|
| Q8 | Higher NCO or officer career | Preferred | **Direct and differentiating** | BW-1: six years Bundeswehr, officer training/school, left as Second Lieutenant | - |
|
|
|
|
|
| C1 | Swiss work authorization | Practical | **Direct** | German citizen, Swiss B permit, no sponsorship required | - |
|
|
|
|
|
| C2 | PSP and project access | Practical | **Constraint** | PSP applies to all RUAG entrants; no nationality gate stated; role-specific outcome unknown | ⚠ |
|
|
|
|
|
| C3 | Compensation acceptable | Practical | **Constraint** | No published band; external samples suggest downside risk | ⚠ |
|
|
|
|
|
|
|
|
|
|
## Core Responsibilities
|
|
|
|
|
| # | Responsibility | Class | Canonical evidence | Gap boundary |
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
| R1 | Build, evolve and operate internal AI/LLM platform including compute cluster | **Adjacent, title-defining** | SW-3 Kubernetes/Python operations; BS-6 professional Linux/Ansible; BS-1 ML inference | No AI/LLM platform ownership, compute-cluster or GPU-cluster operation |
|
|
|
|
|
| R2 | Implement in-house LLM solutions, connectors, tools, retrieval/document solutions | **Adjacent-to-Gap, title-defining** | SW-8 configured grounded assistants; LiteLLM API hands-on | No production LLM implementation, RAG/retrieval implementation, orchestration or formal evaluation |
|
|
|
|
|
| R3 | Develop data pipelines, preprocessing and internal interfaces | **Direct** | SW-1, SW-2, SW-3, SW-6, SW-7, BS-2 | Scope must stay on owned pipelines/data products, not company platform ownership |
|
|
|
|
|
| R4 | Deliver AI/R&D PoCs, MVPs and pilots | **Direct-to-Adjacent** | BS-4 anomaly-detection PoC; FC-2 ML/NLP contribution; GN-2 PoCs; academic prototype evidence | No claim of end-to-end ownership of shared research programmes |
|
|
|
|
|
| R5 | Containerize, deploy and automate AI workloads | **Direct** | BS-1 Docker/Kubernetes/Ansible ML-inference integration; BS-6 automation | Do not claim model training or full ML lifecycle |
|
|
|
|
|
| R6 | Technical documentation and team knowledge transfer | **Direct** | BS-3 documentation/training; GN-1 training and technical ownership | - |
|
|
|
|
|
|
|
|
|
|
## Evidence Fit Breakdown
|
|
|
|
|
| Dimension | Weight | Score | Reasoning |
|
|
|
|
|
|---|---:|---:|---|
|
|
|
|
|
| Required qualifications | 35 | **29** | Degree, years, Python, Linux/container stack and languages are Direct; modern ML/AI-framework depth is Adjacent |
|
|
|
|
|
| Core responsibilities | 25 | **17** | Data pipelines, AI-workload deployment and documentation are Direct; the two leading AI/LLM-platform responsibilities are only Adjacent |
|
|
|
|
|
| Level and ownership | 15 | **11** | Staff + Component Owner/Application Owner exceeds generic Berufserfahrene level; role may be lateral/down-level despite meaningful build scope |
|
|
|
|
|
| Recency and depth | 10 | **8** | Data/Kubernetes/Python current; direct production-ML integration and deepest Linux automation date to Bosch, while current LLM evidence is configuration-level |
|
|
|
|
|
| Domain/tool transfer | 10 | **6** | Strong transfer from Kubernetes, Linux, data platforms and inference deployment; compute cluster, GPU operations, RAG and search are not substitutable by wording |
|
|
|
|
|
| Practical constraints | 5 | **3** | Thun, German, 80-100% and work authorization are excellent; compensation and project-specific PSP access remain unresolved |
|
|
|
|
|
| **Total** | **100** | **74** | Numerical Adjacent; strategic **Stretch** because both title-leading AI/LLM responsibilities are not Direct |
|
|
|
|
|
|
|
|
|
|
## Competitive Read
|
|
|
|
|
- **Obvious-fit candidate:** an MLOps/LLM-platform engineer who has built a private RAG platform, operates GPU/compute clusters, implements retrieval/connectors in Python, and can pass RUAG's PSP; ideally also Swiss military officer/NCO background.
|
|
|
|
|
- **Dennis's advantage:** unusually strong combination of production data engineering, Kubernetes delivery, professional Linux/Ansible automation, containerized ML inference in 24/7 manufacturing, current LLM configuration/API exposure, native German, exact Thun location and verified officer career.
|
|
|
|
|
- **Their advantage:** direct ownership of the two things the title names: an AI/LLM platform and production retrieval/LLM solutions, plus likely GPU cluster depth.
|
|
|
|
|
- **Level/scope:** Dennis is currently Staff/Engineer IV. This vacancy is labelled only Berufserfahrene, not Senior/Staff/Principal. The platform build could be substantive, but compensation and decision authority must be checked before treating it as lateral rather than a down-level move.
|
|
|
|
|
|
|
|
|
|
## Framing Strategy if the user overrides the HOLD
|
|
|
|
|
- **Professional identity:** Staff Data & Platform Engineer with production ML-inference integration, Kubernetes/Linux automation and a six-year officer career.
|
|
|
|
|
- **Strongest proof points:** BS-1, BS-6, SW-3, SW-2, SW-1/SW-7, BW-1.
|
|
|
|
|
- **Honest adjacent bridges:** SW-8 and LiteLLM/API exposure for LLM context; FC-2/BS-4 for AI/R&D PoCs.
|
|
|
|
|
- **Explicit gaps:** no owned AI/LLM platform, no RAG/retrieval implementation, no compute/GPU cluster operation, no formal LLM evaluation, no model training ownership.
|
|
|
|
|
- **User directives:** officer career should be visible because the JD explicitly lists it as advantageous; no invented clearance, command scope or military ICT work.
|
|
|
|
|
|
|
|
|
|
## Cover Letter Decision
|
|
|
|
|
- **Provisional decision: YES if proceeding.** The portal makes it optional, but the officer-career motivation and the honest transition from data/MLOps infrastructure into an AI/LLM-platform remit add information the resume cannot fully carry.
|
|
|
|
|
- **Verified hooks:** only the live RUAG posting: C5I support to the Swiss Army/Kommando Cyber, DevSecOps model, sovereign/high-security systems and the Thun C5I campus.
|
|
|
|
|
- **Do not write yet:** Phase 0 is on HOLD.
|
|
|
|
|
|
|
|
|
|
## Questions that clear the HOLD
|
|
|
|
|
1. **Technical scope to Marco Heinzen:** Is direct production experience implementing RAG/LLM platforms expected on day one, or is the team explicitly hiring a strong Python/Kubernetes/data-platform engineer to build that capability?
|
|
|
|
|
2. **Compensation to Frank Haugwitz:** What is the target base-salary range for this vacancy, including how the 13th salary and variable allowances are quoted?
|
|
|
|
|
3. **PSP/project access to Frank Haugwitz:** Is a German citizen with a Swiss B permit eligible for the required PSP and all intended C5I project assignments?
|
|
|
|
|
4. **Level:** What decision authority and technical ownership distinguish this role from RUAG's Senior/Principal engineering roles?
|
|
|
|
|
|
|
|
|
|
## Phase 2: Audience and Content Plan
|
|
|
|
|
|
|
|
|
|
### Positioning and format
|
|
|
|
|
- **Profile:** Swiss/DACH, German, two pages. RUAG is a traditional Swiss defence employer and the portal requests a complete dossier.
|
|
|
|
|
- **Professional identity:** Staff Data & Platform Engineer with production ML-inference integration, Kubernetes/Linux automation, current hands-on LLM application configuration and a six-year Bundeswehr officer career.
|
|
|
|
|
- **Accuracy boundary:** Do not present Dennis as an established AI/LLM-platform owner. Do not claim RAG, retrieval implementation, GPU/compute-cluster operation, model training, formal LLM evaluation or a security clearance.
|
|
|
|
|
- **Headline direction:** `Staff Data & Platform Engineer | Python · Kubernetes · MLOps`
|
|
|
|
|
- **Summary:** YES, two short sentences. Lead with current Staff-level data/platform ownership and production ML-inference deployment; add the officer career as defence-context differentiation. Describe LLM work as configuration of domain-grounded assistants, not production platform engineering.
|
|
|
|
|
|
|
|
|
|
### Skills plan, five compact lines
|
|
|
|
|
1. **Programming and interfaces:** Python, SQL, REST APIs; LiteLLM only as current hands-on API exposure.
|
|
|
|
|
2. **AI/ML engineering:** ML-inference deployment, containerized AI workloads, domain-grounded LLM assistant configuration, applied NLP/speech-recognition contribution.
|
|
|
|
|
3. **Platform and automation:** Linux, Docker, Kubernetes, Ansible, GitLab CI/CD, Jenkins.
|
|
|
|
|
4. **Data engineering:** Kafka, Airflow, PySpark, AWS S3/Glue/Athena with Iceberg/Redshift.
|
|
|
|
|
5. **IaC, operations and security:** CloudFormation, ELK, Grafana, Prometheus; DevSecOps tied to the 2025/2026 Security Champion assignment, not presented as a certification.
|
|
|
|
|
|
|
|
|
|
TensorFlow/Keras remain certification-context only. C++, JavaScript, Terraform, RAG frameworks and named LLM orchestration libraries are omitted.
|
|
|
|
|
|
|
|
|
|
### Planned resume bullets
|
|
|
|
|
| Order | Role / claim | Evidence type | Scoped bullet direction | Why it belongs |
|
|
|
|
|
|---:|---|---|---|---|
|
|
|
|
|
| 1 | Swisscom, **SW-8** | Hands-on, current | Configured domain-grounded LLM assistants in a Swisscom-owned interface by selecting available models and supplying curated knowledge for Q&A, migration assistance and data mapping. | Closest current LLM evidence; directly relevant without implying RAG or deployment ownership. |
|
|
|
|
|
| 2 | Swisscom, **SW-3** | Production, current; primary developer/operator | Develops, deploys and operates Python data applications on Kubernetes; automates build, test and deployment through GitLab CI/CD. | Direct match for Python, Kubernetes, containerization and automation. |
|
|
|
|
|
| 3 | Swisscom, **SW-7** | Production, current; scoped data-product delivery | Models and implements governed data products and source onboarding within Swisscom's company-wide AWS Data Mesh; uses Compass for metadata and lineage as a practitioner. | Shows reliable data foundations for internal AI solutions while preserving shared-platform scope. |
|
|
|
|
|
| 4 | Swisscom, **SW-2** | Production, current; Component Owner | Holds component responsibility for Fulfillment pipelines from Oracle/Kafka into Teradata, including governance, support, on-call duty and SLA accountability. | Strongest operations and ownership evidence. |
|
|
|
|
|
| 5 | Swisscom, **SW-5** | Current bounded team assignment | Serves as team Security Champion for 2025/2026 after 100 hours of DevSecOps/security training and assessment. | C5I and the posting's DevSecOps context justify the otherwise optional signal. |
|
|
|
|
|
| 6 | Bosch, **BS-1** | Production, historical; primary integration owner | Integrated containerized ML inference with Docker, Kubernetes and Ansible into 24/7 semiconductor production, enabling fully automated image classification. | Flagship direct evidence for deployment and automation of AI workloads. |
|
|
|
|
|
| 7 | Bosch, **BS-6** | Production, historical; primary administrator/automation developer | Administered and automated Linux hosts for analytics and ML workloads; developed Ansible extensions and CI-triggered configuration workflows. | Closest evidence for the platform/compute side of the target role; no cluster scale is claimed. |
|
|
|
|
|
| 8 | Bosch, **BS-3** | Production, historical; Application Owner | Owned lifecycle responsibilities for analytics applications and upstream pipelines, including SLOs, documentation, training and vendor coordination. | Direct operational ownership plus the JD's documentation and knowledge-transfer requirements. |
|
|
|
|
|
| 9 | Bosch, **BS-4** | Proof of concept | Implemented an ELK/Kafka anomaly-detection PoC with Grafana, Prometheus and Loki monitoring. | Direct evidence for AI/R&D PoCs and observability; PoC status stays explicit. |
|
|
|
|
|
| 10 | Fraunhofer, **FC-2** | Research-project contribution | Implemented ML/NLP components within the ARTUS research team for automatic transcription of sea-rescue communications. | Adds applied NLP and research-pilot evidence; team scope avoids sole-ownership implication. |
|
|
|
|
|
| 11 | Vizrt, **VZ-1 + VZ-2** | Production, historical; primary developer | Developed Python backend components for distributed video transcoding and integrated automated A/V tests as CI/CD quality gates. | Concise software-engineering and DevOps depth; avoids irrelevant C++/JavaScript skill padding. |
|
|
|
|
|
| 12 | Bundeswehr, **BW-1** | Verified completed service | Completed officer candidate training and officer school during six years of Bundeswehr service; left service as Second Lieutenant. | Explicit preferred qualification and the package's strongest defence-context differentiator. |
|
|
|
|
|
|
|
|
|
|
Generali remains a compact chronology entry without bullets. **Capgemini is omitted entirely** by standing user preference (six months only; short-stay impression). The Bundeswehr receives a dedicated `Militärischer Werdegang` section rather than being hidden under additional information.
|
|
|
|
|
|
|
|
|
|
### Certifications and education
|
|
|
|
|
- M.Eng. Computer Aided Engineering and B.Eng. Information and Telecommunication Technologies remain visible.
|
|
|
|
|
- Highlight AWS Certified Solutions Architect - Associate, Data Engineering with AWS and IBM AI Engineering. TensorFlow/Keras appear only within the IBM certification context.
|
|
|
|
|
- iSAQB CPSA Foundation may be retained if layout permits; certifications appear exactly once.
|
|
|
|
|
|
|
|
|
|
### Impact and verification
|
|
|
|
|
- No unverified numeric metric is planned.
|
|
|
|
|
- `BS-1` may use the source-backed qualitative outcome of fully automated image classification; no percentage, scale or exact workload reduction will be invented.
|
|
|
|
|
- Optional enrichment, not required for generation: verified adoption/users or deployment status of the `SW-8` assistants. Without it, the bullet remains configuration-level.
|
|
|
|
|
|
|
|
|
|
### Cover Letter Decision
|
|
|
|
|
- **YES.** The optional letter adds two things the resume cannot fully explain: the deliberate, honest bridge from data/MLOps infrastructure into an AI/LLM-platform remit, and the motivation to contribute again in a defence-related environment after six years of Bundeswehr service.
|
|
|
|
|
- **Narrative:** production-critical ML integration at Bosch; current Kubernetes/data/LLM-adjacent work at Swisscom; officer background and motivation to support sovereign, secure C5I capabilities in Thun.
|
|
|
|
|
- **Boundary:** RUAG supports the Swiss Army; employment at RUAG must not be described as rejoining the armed forces. Use `erneut im Umfeld von Landesverteidigung und gesellschaftlicher Verantwortung wirken` rather than `wieder Teil der Armee sein`.
|
|
|
|
|
|
|
|
|
|
## Phase 3/4: As-built Resume
|
|
|
|
|
- **File:** `output/RUAG_AI_Engineer_C5I/e2e_ruag_ai_engineer_c5i_resume.tex`
|
|
|
|
|
- **Format:** German Swiss/DACH profile, A4, 11 pt, two pages, no photo.
|
|
|
|
|
- **As-built positioning:** `Staff Data & Platform Engineer | Python · Kubernetes · MLOps`.
|
|
|
|
|
- **As-built selection:** 12 bullets using `SW-8`, `SW-3`, `SW-7`, `SW-2`, `SW-5`, `BS-1`, `BS-6`, `BS-3`, `BS-4`, `FC-2`, `VZ-1 + VZ-2` and `BW-1`. Generali remains an unbulleted chronology entry. Capgemini is omitted.
|
|
|
|
|
- **Military evidence:** `BW-1` appears in the profile and in a dedicated `Militärischer Werdegang` section. No command responsibility, deployment, clearance or military ICT work is implied.
|
|
|
|
|
- **LLM boundary:** current evidence is stated as configuration of domain-grounded assistants and LiteLLM API use. The document contains no RAG, retrieval, compute-cluster, GPU-cluster, model-training or LLM-platform ownership claim.
|
|
|
|
|
- **Plan adjustment for layout:** certifications appear once inside `Kenntnisse`; German and English appear in the header. This preserves the information and gives page 2 a cleaner close. The Bosch title was shortened to the verified formal title to avoid a collision with the location.
|
|
|
|
|
- **Language sweep:** no em dash, `Baue`, `Trug`, `begrenzt`, C++, JavaScript, Terraform, RAG or fabricated orchestration framework appears. Bullets use technical, scoped verbs.
|
|
|
|
|
|
|
|
|
|
### Validation and rendering
|
|
|
|
|
- Canonical system preflight: **PASS, 0 warnings**.
|
|
|
|
|
- Document validator after final edit: **PASS, 0 warnings**.
|
|
|
|
|
- MiKTeX compilation: **PASS**, two runs, exactly **2 pages**.
|
|
|
|
|
- Log inspection: no Overfull/Underfull boxes and no LaTeX/package warnings.
|
|
|
|
|
- `pdftotext -layout`: employer, title, date, location and section order parse correctly across both pages.
|
|
|
|
|
- Visual QA: both final pages rendered to PNG at 150 dpi and inspected; no clipping, overlap, broken glyphs, isolated headings or awkward page transition.
|
|
|
|
|
- The compiled PDF and PNGs were temporary QA artifacts only. The deliverable remains the `.tex` source as configured.
|
|
|
|
|
|
|
|
|
|
## Post-Handover Fix and Re-Verification, 2026-08-27
|
|
|
|
|
The package was inherited mid-session after a usage limit on the previous model. The recorded Phase 3/4 completion was audited independently and one defect was found and corrected.
|
|
|
|
|
|
|
|
|
|
### Defect found and fixed
|
|
|
|
|
- **Capgemini Deutschland GmbH was present as a chronology entry.** This violates a standing user preference recorded in `CLAUDE.md` and in memory: Capgemini is omitted from all documents because the six-month tenure reads as a short stay. A corpus check confirmed this resume was the **only** generated `.tex` under `output/` containing Capgemini. The entry and its separating vertical space were removed; the visible chronology now begins at Generali, Mai 2015.
|
|
|
|
|
- **The Nov. 2014 to Mai 2015 gap this creates is intentional and stays.** The submitted Kdo Cy resume carries the identical gap.
|
|
|
|
|
- **The profile claim "über zehn Jahren" survives unchanged.** The visible record now runs Generali Mai 2015 to Aug. 2026, about eleven years three months, so the wording remains true.
|
|
|
|
|
|
|
|
|
|
### Re-verification after the fix
|
|
|
|
|
- Document validator: **PASS, 0 warnings** (re-run after the Thun contact-line change).
|
|
|
|
|
- MiKTeX compilation, two runs: **PASS**, exactly **2 pages**, **0 Overfull/Underfull boxes**, no LaTeX or package warnings. Re-run after the Thun change, this time **compiled into the output folder** rather than a temp directory.
|
|
|
|
|
- Extracted text of the final PDF contains **0** occurrences of "Capgemini" and reads `Thun, Schweiz` in the contact line.
|
|
|
|
|
- Text extraction: employer, title, date, location and section order parse correctly on both pages; footers read 1/2 and 2/2.
|
|
|
|
|
- Visual QA: both pages re-rendered to PNG and inspected **after** the edit. No clipping, overlap, orphaned heading or broken page transition. Page 2 closes on Ausbildung with roughly two inches of trailing whitespace, which is accepted; `CLAUDE.md` forbids page-fill quotas.
|
|
|
|
|
- **Note on the prior session's QA claim:** the temporary working folder still held a stale 3-page text extraction from an earlier draft, so the previously recorded visual check was made against a different document than the final one. The checks above were run against the current source.
|
|
|
|
|
- **Page 2 was deliberately not backfilled.** `PP-3` (private Debian server) is available as additional Linux evidence and was used in the Kdo Cy package, but re-opening the approved 12-bullet plan to fill freed space would be page-filling, not relevance.
|
|
|
|
|
|
|
|
|
|
### Contact location: RESOLVED 2026-08-27
|
|
|
|
|
- **The contact line was changed from `Bern, Schweiz` to `Thun, Schweiz`.** The user decided on 2026-08-27 that for roles **in Thun and its immediate surroundings** the contact line may carry Thun. This vacancy is in Thun and the user lives in Thun, so local residency is now visible to a traditional Swiss defence employer - the session's Competitive Read already counted "exact Thun location" among his advantages, and the document had been hiding it.
|
|
|
|
|
- **Scope of the change:** contact line only. The Swisscom position keeps `Bern, Schweiz`, because that is factually where that job is.
|
|
|
|
|
- **Recorded as a standing rule** in memory and `config.md`: Thun for Thun-area roles, Bern as the default everywhere else. The earlier "always Bern, ask first" note is superseded.
|
|
|
|
|
|
|
|
|
|
## User Review Round, 2026-08-27
|
|
|
|
|
Three changes requested by the user on review of the compiled PDF. All three applied, then re-validated, re-compiled and both pages re-inspected.
|
|
|
|
|
|
|
|
|
|
| # | Change | Basis |
|
|
|
|
|
|---|---|---|
|
|
|
|
|
| 1 | **Removed "Kein Sponsoring durch den Arbeitgeber erforderlich" from the contact line.** | User: it is common knowledge that EU citizens need no sponsorship, so the sentence adds nothing. The header still carries "Deutscher Staatsbürger" and "Schweizer Aufenthaltsbewilligung B", which resolve work authorization on their own. |
|
|
|
|
|
| 2 | **Bosch title changed to `Senior Data Engineer, Data Analysis (Beförderung Jan. 2021)`**, matching the Swisscom line's shape. | The promotion is **not** in `claims.json`; it is recorded LinkedIn-confirmed in `experience_bosch.md`: Data Engineer Feb 2020 - Jan 2021, **Senior** Data Engineer Jan 2021 - Dez 2022. That file also explicitly sanctions "(Senior) Data Engineer" as a display form. `claims.json` has now been corrected so this is canonical going forward. |
|
|
|
|
|
| 3 | **Vizrt title shortened to `DevOps Engineer`**, dropping "Test Automation /". | User request. ⚠ **Flagged accuracy note:** the canonical `official_title` for Vizrt is **"Test Automation Engineer"**; "DevOps Engineer" is half of the sanctioned `display_title` "Test Automation / DevOps Engineer". The bullet content (CI/CD quality gates, Python backend for distributed transcoding) supports the DevOps framing, and the user is the authority on his own role, but this is the one title line on the document that will not match a Zeugnis or reference check word-for-word. Recorded here so it is a conscious choice, not a drift. |
|
|
|
|
|
|
|
|
|
|
### Re-verification after the review round
|
|
|
|
|
- Document validator: **PASS, 0 warnings**.
|
|
|
|
|
- MiKTeX, two runs: **PASS**, exactly **2 pages**, **0 Overfull/Underfull boxes**, no LaTeX or package warnings.
|
|
|
|
|
- Both pages re-rendered and inspected. The longer Bosch title does **not** collide with `Dresden, Deutschland`; the earlier concern recorded in `CLAUDE.md` about a Bosch title/location collision does not apply at this length.
|
|
|
|
|
- Header now reads three lines: contact, citizenship/permit, languages.
|
|
|
|
|
- Build artifacts removed from the output folder; `Dennis_Thiessen_Lebenslauf.pdf` refreshed from the new build and verified identical to the `e2e_` PDF by checksum.
|
|
|
|
|
|
|
|
|
|
## Phase 5: As-built Cover Letter, 2026-08-27
|
|
|
|
|
- **File:** `output/RUAG_AI_Engineer_C5I/e2e_ruag_ai_engineer_c5i_cover_letter.tex`
|
|
|
|
|
- **Format:** German Swiss/DACH motivation letter, A4, 11 pt, **1 page, 275 body words** (target 250-300).
|
|
|
|
|
- **Addressee:** Frank Haugwitz, Director Sourcing C5I-Campus, at RUAG MRO Holding AG, Business Area C5I, Uttigenstrasse 36, 3600 Thun. Submission is portal-only; the letter is uploaded, not mailed.
|
|
|
|
|
- **Contact location:** `Thun, Schweiz`, consistent with the resume and the new Thun-area rule.
|
|
|
|
|
- **Structure:** four short paragraphs plus close. (1) Role thesis: the posting pairs operating an internal AI-workload platform with building the pipelines those workloads depend on, which is the seam he already works on. (2) Bosch `BS-1` and `BS-6`. (3) Swisscom `SW-3`, `SW-2`, then the LLM boundary. (4) `BW-1` and practical fit.
|
|
|
|
|
|
|
|
|
|
### Deliberate decision: the LLM gap is named explicitly
|
|
|
|
|
The letter states plainly *"Eine AI-Plattform habe ich nicht aufgebaut"*, then pivots immediately to the operations/platform side and to working toward the implementation side from there.
|
|
|
|
|
|
|
|
|
|
This is a conscious departure from the Kdo Cy letter's approach, where the second-Amtssprache point was deliberately **not** raised so as not to hand the reader an objection (the Aker BP CL-A finding). The reasoning for treating this case differently:
|
|
|
|
|
- The AI/LLM-platform build is **R1, the title-defining responsibility and the JD's first bullet**, not a peripheral requirement. The reader will assess it whether or not the letter mentions it, so silence does not remove the objection - it only removes his framing of it.
|
|
|
|
|
- The session's own Cover Letter Decision names this bridge as the letter's reason to exist: the resume cannot carry it.
|
|
|
|
|
- The JD explicitly invites applicants who do not meet every requirement, which makes candour read as judgement rather than as a defensive gap list.
|
|
|
|
|
- It is one sentence, immediately followed by what he does bring. It is not a gap list.
|
|
|
|
|
|
|
|
|
|
**Reversible.** If the user prefers the Kdo Cy posture, the sentence can be cut and the paragraph still stands on `SW-3`, `SW-2` and `SW-8`.
|
|
|
|
|
|
|
|
|
|
### Claim traceability
|
|
|
|
|
Every claim in the letter maps to a resume bullet and a canonical ID: `BS-1` (containerized ML inference into continuous semiconductor production), `BS-6` (Linux administration, Ansible extensions, credential-caching plugin), `SW-3` (Python data applications on Kubernetes), `SW-2` (Component Owner, Oracle/Kafka to Teradata, on-call), `SW-8` (configuring domain-grounded assistants; LiteLLM API use), `BW-1` (six years, officer training, Leutnant). No new skill, tool, metric, customer or ownership claim is introduced.
|
|
|
|
|
|
|
|
|
|
### Boundaries verified in the body text
|
|
|
|
|
Automated scan of the letter body (comments excluded) found **0** occurrences of RAG, Retrieval, GPU, Compute Cluster, GitOps, LangChain, Terraform, fine-tuning, model training, clearance/Sicherheitsfreigabe, or "wieder Teil der Armee". The only regex hit was the substring "rag" inside *Abfragen*. **0** em dashes.
|
|
|
|
|
- RUAG is described as an environment of `Landesverteidigung und gesellschaftlicher Verantwortung`, never as rejoining the armed forces.
|
|
|
|
|
- `SW-8` stays configuration-level; no platform ownership, orchestration or evaluation is implied.
|
|
|
|
|
- `BS-1` claims integration, not model training.
|
|
|
|
|
- `BW-1` carries no clearance, command scope or military technical work.
|
|
|
|
|
- No unverified metric appears.
|
|
|
|
|
|
|
|
|
|
### Hook verification, 2026-08-27
|
|
|
|
|
All hooks are first-party, re-fetched live from the posting on the day of writing rather than trusted from the earlier retrieval.
|
|
|
|
|
|
|
|
|
|
| Claim in the letter | Evidence | Source |
|
|
|
|
|
|---|---|---|
|
|
|
|
|
| Role title `AI Engineer C5I (w/m/d)` | Verbatim match | jobs.ruag.ch posting, live 2026-08-27 |
|
|
|
|
|
| Legal entity `RUAG MRO Holding AG, Business Area C5I` | Verbatim match | same |
|
|
|
|
|
| Address `Uttigenstrasse 36, 3600 Thun` | Verbatim match | same |
|
|
|
|
|
| Addressee `Frank Haugwitz`, Director Sourcing C5I-Campus | Verbatim match, contact still listed | same |
|
|
|
|
|
| The role pairs an internal AI/LLM platform with pipelines/interfaces | `Aufbau, Weiterentwicklung und Betrieb einer internen AI-/LLM-Plattform inkl. Compute Cluster` | same |
|
|
|
|
|
| Posting status | LIVE, application form reachable | same |
|
|
|
|
|
|
|
|
|
|
No company-news, product or executive-statement hook was used. `cl_reference.md` prefers omitting an unnecessary hook over spending a paragraph proving company familiarity.
|
|
|
|
|
|
|
|
|
|
### Validation and rendering
|
|
|
|
|
- Document validator: **PASS, 0 warnings**.
|
|
|
|
|
- MiKTeX, two runs: **PASS**, exactly **1 page**, **0 Overfull/Underfull boxes**, no LaTeX or package warnings.
|
|
|
|
|
- Page rendered to PNG and inspected: single well-filled page, no clipping or awkward break.
|
|
|
|
|
- Build artifacts removed; `Dennis_Thiessen_Motivationsschreiben.pdf` created from the same build and verified identical by checksum.
|
|
|
|
|
|
|
|
|
|
## Critique, 2026-08-27
|
|
|
|
|
- **File:** `output/RUAG_AI_Engineer_C5I/critique_ruag_ai_engineer_c5i.md`
|
|
|
|
|
- **Evidence Fit: 74/100** - re-verified against `claims.json`, unchanged. Strategic **Stretch**; title-capability gate **FAIL** (R1 and R2 both Adjacent). PSP project access and compensation remain **UNRESOLVED**, which is independently a NO-GO trigger under `critique_framework.md` section 1. All of this was in front of the user at the 2026-08-27 override and is recorded, not re-litigated.
|
|
|
|
|
- **Document Quality: 85/100.** Truth and provenance **23/25** - well clear of the 8/10 automatic-failure floor.
|
|
|
|
|
- **Channel: Weak.** Cold portal submit; `jobs.ruag.ch` refuses email and post. Marco Heinzen's direct mobile is published and unused.
|
|
|
|
|
- **Scoring standard:** `critique_framework.md` governs over `SKILL.md` section 9.3/9.4 - dual score, verdicts instead of invented probabilities, no single overall score, no publications weight. `SKILL.md`'s additive coverage (domain lens, five-reader read, bridge points, 6A-6F) was kept in full.
|
|
|
|
|
|
|
|
|
|
### Verified independently, not inherited from this session file
|
|
|
|
|
Both documents re-validated (**PASS, 0 warnings**), recompiled twice in a scratch folder and found **byte-identical** to the shipped PDFs (133 673 B / 95 497 B), 2 pages / 1 page exactly, **0 boxes, 0 LaTeX warnings**, correct `pdftotext` order, both resume pages and the letter re-rendered at 130 dpi and inspected. Submission-named copies match their `e2e_` builds by **MD5**. `Capgemini` 0 hits; all global-forbidden patterns 0 hits.
|
|
|
|
|
|
|
|
|
|
### Full skills-token audit - the check that had not been run
|
|
|
|
|
Every token in the header, `Kenntnisse` block and letter was enumerated against `claims.json` `skills[].output`. **Zero `forbidden` skills on either document.** The two non-plain-`allowed` tokens present both carry their required context: **LiteLLM** (`allowed-with-context`) as "in aktueller API-Nutzung", **TensorFlow/Keras** (`certification-context-only`) only inside the Zertifizierungen line. Tokens absent from `skills[]` (Grafana, Prometheus, Loki, Jenkins, GitLab, ELK, Teradata, Oracle, Glue, Athena, Iceberg, Redshift, S3, MLOps) are all claim-backed or experience-file-backed - `skills[]` is a control list, not an inventory. **No Tier 1 truth finding anywhere in the package.**
|
|
|
|
|
|
|
|
|
|
### Tier 1 fixes - 3, none reopens the bullet plan's truth boundaries
|
|
|
|
|
(Tier 1 ranks by **submission impact**, not strictly by point value: T1-1 scores under cover-letter tailoring, which section 3 does not weight.)
|
|
|
|
|
1. **The letter drops DevSecOps, C5I, Kommando Cyber and the Army.** The JD's `Ueber den Bereich` block leads with all four and states "konsequent nach dem DevSecOps-Modell". `SW-5` is on the resume - Security Champion 2025/2026 after 100 h of Cloud Security / DevSecOps / Security by Design training - and the letter never uses it. A first-party hook matched by current canonical evidence, left on the table. One sentence closes it. **Highest-value edit in the package.**
|
|
|
|
|
2. **`PP-3` is missing and it is the only *current* evidence for the operating half of the role.** The letter's load-bearing sentence is *"Was ich mitbringe, ist die Betriebs- und Plattformseite dieser Rolle"*, and its resume proof is `BS-6`, which **ended Dec 2022**. `claims.json` calls PP-3 "the primary evidence for hands-on Linux administration, system hardening and security configuration, and it is current and continuous". For a defence employer screening every entrant, a decade of self-hosting *and hardening* is materially different, and it evidences Q6 better than any employer bullet. **This is a relevance argument, not page-filling** - section 7a's whitespace ban is not the basis. Kdo Cy used PP-3; this package dropped it.
|
|
|
|
|
3. **`governte Datenprodukte` is not a German word** - the only outright language error in the package. German IT does form participles from English verbs (*gemanagt*, *gehostet*), but *governt* is not among them, and the reader is a native-German Swiss engineer. A corpus check confirms it is a **one-off**: it appears in no other generated document, and **the user's own submitted Kdo Cy CV already carries the fix** - "Modelliere **governance-konforme** Data Products". A one-word substitution, independent of the other two, **worth taking regardless of what is decided about them**. It carried a full point of the Mechanics deduction on its own, separate from cadence.
|
|
|
|
|
|
|
|
|
|
### Tier 2 (6)
|
|
|
|
|
- **The headline drops "AI" from a req titled AI Engineer**, while his canonical title "Staff Data, Analytics & **AI** Engineer" contains it. Deliberate session choice, not reversed; middle option `Staff Data, Analytics & AI Engineer | Python - Kubernetes - MLOps` uses his real title and promises no platform ownership. **User's call.**
|
|
|
|
|
- **Four honestly closeable JD terms absent:** Data Preprocessing/Datenaufbereitung, Wissenstransfer, AI-Workloads, Containerisierung. Leave MVP/Pilotloesung - PoC is what the evidence supports.
|
|
|
|
|
- **`IBM AI Engineering` has no primary-source record.** The other three certs are in `thiessen_certifications.md` with issuer, date, expiry and cert number; this one is only in `bundle_ml_ai_engineer.md`. Same class as the Ansible/Linux/Bosch-promotion gaps - **verify and record, do not remove**. It matters because TensorFlow/Keras is the *sole* answer to the JD's required "moderne ML-/AI-Frameworks".
|
|
|
|
|
- **CL paragraph 2 is ~90 of 275 words re-telling BS-1 and BS-6**, redeemed by one genuinely new sentence. Compressing it frees the words the two Tier 1 fixes need.
|
|
|
|
|
- **The pivot after the gap admission concedes without evidence** - *"die Implementierungsseite wuerde ich mir von dort aus erarbeiten"* promises to learn. The gap sentence itself is a sound call and should stay; anchor the pivot in BS-1/FC-2.
|
|
|
|
|
- **Volunteering foreign citizenship in the letter at a PSP employer.** Already in the resume header. Lean keep (the sentence lands on "ich wohne in Thun, also am Standort selbst"), but a conscious choice.
|
|
|
|
|
|
|
|
|
|
### Tier 3
|
|
|
|
|
Cadence: 6/12 bullets end in a 3+ list, exactly at the section 7a ceiling, with consecutive triples at B1-B2 and B8-B9; **bullets 9 and 10 both open "Implementierte"**, a direct section 7a hit that the validator missed because its check does not cross position boundaries. `\today` in the letter - recompile if submitted after 2026-08-27. Bottom whitespace is **not** a finding (section 7a bans adding content for it). Thesis grade 1,0 is permitted; keep.
|
|
|
|
|
|
|
|
|
|
### Reader verdicts
|
|
|
|
|
ATS **PASS** - clean extraction. Recruiter (Haugwitz) **FORWARD** - every box he owns is above the fold. HR **COMPLETE**. Hiring manager (Heinzen) **MAYBE, and the letter decides it** - if the brief is "build our RAG stack" this is a no; if it is "run the platform while we grow the AI layer" it is a strong yes. Technical reviewer **CREDIBLE** - no claim collapses; first probes are the SW-8 boundary, compute-cluster scale, the 2008-2014 / 2009-2013 officer-track overlap, and Pull-GitOps.
|
|
|
|
|
|
|
|
|
|
### Cover letter decision
|
|
|
|
|
**KEEP.** The resume structurally cannot answer what this candidate thinks he is applying for given what he has not done; the letter does, in his own words, before Heinzen has to infer it. It needs T1-1 and T2-6.
|
|
|
|
|
|
|
|
|
|
## Edit 1 Baseline, 2026-08-27
|
|
|
|
|
- **Pages:** 2 (exact)
|
|
|
|
|
- **Validator:** PASS, 0 warnings
|
|
|
|
|
- **Overfull/Underfull boxes:** 0 | **LaTeX warnings:** 0
|
|
|
|
|
- **Variable bullets:** 12 (Swisscom 5, Bosch 4, Fraunhofer 1, Vizrt 1, Bundeswehr 1)
|
|
|
|
|
- **Skills lines:** 6 (incl. Zertifizierungen)
|
|
|
|
|
- **Char violations:** none - `CLAUDE.md` and `resume_reference.md` sections 4/7 replaced fixed 1L/2L/3L bands with natural-length bullets; character counts are diagnostic only and there is no page-fill quota, so the skill's "all bullets must be 2L" and "<=3 lines white space" gates do **not** apply to this project.
|
|
|
|
|
- **Orphan violations:** none observed in visual QA
|
|
|
|
|
- **White space:** ~2 in at the foot of both pages, accepted per `resume_reference.md` section 7a ("Do not add content merely to reduce bottom whitespace")
|
|
|
|
|
- **Cover letter:** 1 page, 275 body words, 4 paragraphs + close, validator PASS
|
|
|
|
|
|
|
|
|
|
### Edit 1 (2026-08-27): critique Tier 1 + Tier 2, user-approved
|
|
|
|
|
|
|
|
|
|
**Source:** `critique_ruag_ai_engineer_c5i.md`, user instruction 2026-08-27 ("apply 1-5, 6: use my official title, 7: cut").
|
|
|
|
|
|
|
|
|
|
**Resume**
|
|
|
|
|
| # | Change | Class | Source |
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
| 1 | `governte` -> `governance-konforme Datenprodukte` | MODIFY | T1-3 |
|
|
|
|
|
| 2 | New `Projekte` section: `Privater Debian-Server / seit rund zehn Jahren / Eigenbetrieb`, one bullet (`PP-3`) | ADD | T1-2 |
|
|
|
|
|
| 3 | Headline and profile opener -> **`Staff Data, Analytics & AI Engineer`**, his canonical title | MODIFY | T2-2, **user chose the official title** |
|
|
|
|
|
| 4 | `Wissenstransfer`, `Datenaufbereitung`, `AI-/ML-Workloads` + `Containerisierung` added where the work is real | MODIFY | T2-3 |
|
|
|
|
|
| 5 | Bullet 9 opener `Implementierte` -> `Baute` | MODIFY | Tier 3 (7a) |
|
|
|
|
|
| 6 | BS-3 list reordered to natural German: `koordinierte Hersteller, technische Dokumentation und Wissenstransfer an die Nutzer` | MODIFY | found during visual QA |
|
|
|
|
|
|
|
|
|
|
**Cover letter**
|
|
|
|
|
| # | Change | Class | Source |
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
| 7 | New standalone paragraph naming **DevSecOps and C5I**, carried by `SW-5` (Security Champion 2025/2026, 100 h) | ADD | T1-1 |
|
|
|
|
|
| 8 | Paragraph 2 compressed: the Ansible credential-plugin detail re-told resume bullet 7 | MODIFY | T2-5 |
|
|
|
|
|
| 9 | Pivot anchored in evidence: `erarbeite ich mir von dort aus, wie zuvor bei der ML-Inferenz in Dresden` | MODIFY | T2-6 |
|
|
|
|
|
| 10 | **Volunteered citizenship sentence cut** | REMOVE | T2-7, **user chose cut**. The resume header still carries `Deutscher Staatsburger` and `Schweizer Aufenthaltsbewilligung B` |
|
|
|
|
|
| 11 | Paragraph 3 split so the DevSecOps beat stands alone | MODIFY | found during visual QA - the merged paragraph ran to nine lines and carried three jobs |
|
|
|
|
|
|
|
|
|
|
### Two defects found during this edit that the critique had not caught
|
|
|
|
|
|
|
|
|
|
1. **The resume never loaded `babel`, so a German document was being hyphenated with English patterns.** Visible in the compiled PDF as `Hal-bleiterfertigung`, `Tran-skription` and `automa-tisierte`. Present at baseline and inherited by every earlier build. Adding `\usepackage[ngerman]{babel}` fixed the hyphenation (`Halb-leiterfertigung`, `automati-sierte`) **and** cleared the one overfull box that the longer headline had introduced. A `\hyphenation{Trans-krip-ti-on}` exception was added because ngerman still broke `Transkription` after `Tran`. **Worth checking on every future German-language package.**
|
|
|
|
|
2. **A one-box regression appeared and was caught by the gate, not by eye:** the longer official title reflowed the profile paragraph and overflowed by 33.6 pt. Fixed by the babel change above, not by rewording.
|
|
|
|
|
|
|
|
|
|
### Verification after Edit 1
|
|
|
|
|
| Gate | Resume | Cover letter |
|
|
|
|
|
|---|---|---|
|
|
|
|
|
| Canonical validator | **PASS, 0 warnings** | **PASS, 0 warnings** |
|
|
|
|
|
| MiKTeX, two passes | **PASS** | **PASS** |
|
|
|
|
|
| Pages | **2** (unchanged) | **1** (unchanged) |
|
|
|
|
|
| Overfull/Underfull boxes | **0** | **0** |
|
|
|
|
|
| LaTeX warnings | **0** | **0** |
|
|
|
|
|
| Submission copy refreshed + MD5 match | **yes** | **yes** |
|
|
|
|
|
| Visual QA at 130 dpi | both pages re-rendered and inspected | re-rendered and inspected |
|
|
|
|
|
|
|
|
|
|
- **CL body words: 295** (target 250-300). Five short paragraphs plus close.
|
|
|
|
|
- **Cadence improved:** list-terminated bullets **6/12 (50%) -> 4/13 (31%)**, comfortably under the 7a ceiling; **consecutive identical openers 1 -> 0**.
|
|
|
|
|
- Forbidden sweep across both `.tex` files and both extracted PDFs: **0 hits** for Capgemini, LangChain/LangGraph/LlamaIndex, Terraform, Azure, GCP, GitOps, TypeScript, FastAPI, Flask, Django, every global-forbidden pattern, and the standalone acronym `RAG` (the only `rag` matches are inside *Fragen* and *Abfragen*). **0 em dashes.**
|
|
|
|
|
|
|
|
|
|
### Baseline comparison
|
|
|
|
|
| Metric | Before | After | Delta |
|
|
|
|
|
|---|---:|---:|---|
|
|
|
|
|
| Pages | 2 | 2 | 0 |
|
|
|
|
|
| Bullets | 12 | 13 | +1 (`PP-3`, inside the 11-14 guide) |
|
|
|
|
|
| Boxes | 0 | 0 | 0 |
|
|
|
|
|
| Validator warnings | 0 | 0 | 0 |
|
|
|
|
|
| List-terminated bullets | 50% | 31% | **-19 pts** |
|
|
|
|
|
| Consecutive identical openers | 1 | 0 | **-1** |
|
|
|
|
|
| CL body words | 275 | 295 | +20 (in range) |
|
|
|
|
|
| German hyphenation | English patterns | **ngerman** | fixed |
|
|
|
|
|
|
|
|
|
|
### KB corrections made during this edit
|
|
|
|
|
- **`IBM AI Engineering` verified and recorded.** The user supplied the certificate; it was read directly. IBM via Coursera, **4 Jun 2020**, no expiry, verify code `3ZBZFVAL6A34`, name on certificate `Dennis Thiessen` (ss/sz variant, as on ITIL and iSAQB). Added as entry **#8** in `thiessen_certifications.md`. **T2-4 is closed** - the resume's `IBM AI Engineering mit TensorFlow/Keras` line is now backed by a primary source, which matters because it is the sole evidence for the JD's required *moderne ML-/AI-Frameworks*.
|
|
|
|
|
- **`PyTorch` upgraded in `claims.json`** from `coursework-or-personal-unverified` to `evidence: certification`. The same certificate includes *Deep Neural Networks with PyTorch*. `output` stays `certification-context-only`, so this changes nothing on any current document - it just means PyTorch now has a real source if a JD ever asks. Patched as text, not re-serialized, per the CRLF/compact-JSON note in `CLAUDE.md`.
|
|
|
|
|
- The certificate is explicitly **non-credit** and confers no grade or degree; never present it as an academic qualification.
|
|
|
|
|
|
|
|
|
|
## Critique Round 2, 2026-08-27 (post-Edit 1)
|
|
|
|
|
- **File:** `critique_ruag_ai_engineer_c5i.md`, rewritten as Round 2 with a Round 1 resolution table.
|
|
|
|
|
- **Evidence Fit: 74/100 - unchanged.** Strategic Stretch, title-capability gate **FAIL**, PSP and compensation **UNRESOLVED**. Document edits cannot move candidate-role fit. **`PP-3` deliberately did not move it**: it is a personal project and cannot convert an Adjacent title-capability into a Direct one - counting it would be the "bridge valued as highly as direct evidence" error `critique_framework.md` section 5 warns against.
|
|
|
|
|
- **Document Quality: 85 -> 93/100.** Truth and provenance **23 -> 24/25**.
|
|
|
|
|
- **Channel: Weak - unchanged.** Heinzen's published direct line still unused.
|
|
|
|
|
- **Tier 1 findings: NONE.** No truth, fit or relevance defect remains that editing can fix.
|
|
|
|
|
|
|
|
|
|
### Dimension movement
|
|
|
|
|
| Dimension | R1 | R2 | Why |
|
|
|
|
|
|---|---:|---:|---|
|
|
|
|
|
| Truth and provenance | 23 | **24** | IBM cert primary-source verified; new PP-3 and SW-5 content audited clean; headline now his real title, not a positioning label |
|
|
|
|
|
| Information hierarchy | 17 | **19** | Headline carries the req's word above the fold; `Projekte` parses cleanly |
|
|
|
|
|
| Bullet evidence and impact | 16 | **16** | **Unchanged - now the weakest dimension** |
|
|
|
|
|
| Relevance and terminology | 12 | **15** | 22/22 claimable JD terms; all six gap terms still correctly absent |
|
|
|
|
|
| Skills evidence | 9 | **9** | Unchanged; `MLOps` remains an umbrella term with no `skills[]` entry |
|
|
|
|
|
| Mechanics/readability | 8 | **10** | `governte` fixed, German hyphenation fixed, cadence 50%->31%, consecutive openers 1->0 |
|
|
|
|
|
|
|
|
|
|
### Reader verdicts
|
|
|
|
|
ATS **PASS**. Recruiter **FORWARD** - the Round 1 friction point is gone, the headline now shows the req's own word. HR **COMPLETE**. Hiring manager **still MAYBE, but a stronger MAYBE** - the underlying R1/R2 split is unchanged; the letter now argues the operating-layer case more completely. Technical **CREDIBLE**, with a new and welcome probe invited by PP-3: "what have you actually hardened, and how do you patch it?"
|
|
|
|
|
|
|
|
|
|
### The one dimension that did not move
|
|
|
|
|
**Bullet impact: 12 of 13 bullets describe activity with no outcome clause; only `BS-1` says what changed.** Every other claim in `claims.json` carries `metrics: unverified`, and inventing figures is barred - so the resume is correctly written but flat where a hiring manager looks for consequence. **The fix is upstream, not in this package:** if any verified outcome exists for `SW-2` (incident/SLA record), `SW-3` (deployment frequency, service count), `SW-7` (data products delivered, sources onboarded) or `BS-3` (applications owned), recording it in `claims.json` would lift this dimension for **every** future package. Do not invent anything to close it here.
|
|
|
|
|
|
|
|
|
|
### Remaining Tier 2 / Tier 3
|
|
|
|
|
Officer career still on page 2 (structural; moving it breaks reverse chronology). Headline now duplicates the Swisscom title line verbatim (cosmetic). The CL's *"entspricht damit meiner heutigen Praxis"* is a soft alignment claim worth being ready to answer, not worth rewording. Bosch bullet lengths cluster at a 5-word spread (validator passes; diagnostic only). `\today` - recompile if submitted after 2026-08-27.
|
|
|
|
|
|
|
|
|
|
## SUBMITTED 2026-08-27
|
|
|
|
|
|
|
|
|
|
Application sent via `jobs.ruag.ch` (portal only - email and postal applications are explicitly refused).
|
|
|
|
|
Application ID **18027**, publish ID 10075372.
|
|
|
|
|
|
|
|
|
|
### As-submitted record
|
|
|
|
|
| Field | Value |
|
|
|
|
|
|---|---|
|
|
|
|
|
| Employer | RUAG MRO Holding AG, Business Area C5I |
|
|
|
|
|
| Role | AI Engineer C5I (w/m/d), Thun, 80-100% |
|
|
|
|
|
| Submitted | **2026-08-27** |
|
|
|
|
|
| Fit class | **Stretch** (numerically top-of-Adjacent at 74) |
|
|
|
|
|
| Evidence Fit | **74/100** |
|
|
|
|
|
| Hard gate | **FAIL** - R1 and R2, the two title-defining responsibilities, are Adjacent not Direct |
|
|
|
|
|
| Document Quality | **93/100** (85 pre-edit), truth and provenance 24/25, **0 Tier 1 findings** |
|
|
|
|
|
| Channel | **Weak** - cold portal submit |
|
|
|
|
|
| Cohort | evidence-first-2026-01, now **6/10**; **the sole Stretch slot is CONSUMED (stretch 1/1)** |
|
|
|
|
|
| Outcome | applied - awaiting response |
|
|
|
|
|
|
|
|
|
|
**Submitted documents:** `Dennis_Thiessen_Lebenslauf.pdf` (2 pages, 13 bullets) and
|
|
|
|
|
`Dennis_Thiessen_Motivationsschreiben.pdf` (1 page, 295 words, 5 short paragraphs). Both validators PASS with
|
|
|
|
|
0 warnings, 0 boxes, clean two-pass compiles, correct text-order parse and visual QA of every page. Submission
|
|
|
|
|
copies were MD5-verified identical to their `e2e_` builds before sending.
|
|
|
|
|
|
|
|
|
|
### What went in, in one line
|
|
|
|
|
Staff Data, Analytics & AI Engineer - his canonical title - with production ML-inference integration (`BS-1`),
|
|
|
|
|
professional Linux/Ansible automation (`BS-6`), current Kubernetes and data-product work (`SW-3`, `SW-7`, `SW-2`),
|
|
|
|
|
current self-hosted Linux and hardening (`PP-3`), DevSecOps practice tied to C5I's stated operating model (`SW-5`),
|
|
|
|
|
and the canonical six-year Bundeswehr officer career (`BW-1`). The letter names the AI-platform gap in one sentence
|
|
|
|
|
and pivots to the operations and platform side.
|
|
|
|
|
|
|
|
|
|
### Live screening topics - none of these were resolved before sending
|
|
|
|
|
1. **Compensation.** No band published. Kununu samples are small and non-authoritative but suggest a material cut
|
|
|
|
|
against the ~CHF 140k current and the 180k bar. The Thun-local exception permits near-current pay, not a large
|
|
|
|
|
reduction. **Ask Frank Haugwitz.**
|
|
|
|
|
2. **PSP and project access.** RUAG screens every entrant. No citizenship requirement is stated and German
|
|
|
|
|
citizenship plus a Swiss B permit is not an evidenced disqualifier, but role-specific project eligibility is
|
|
|
|
|
unknown. **Ask Frank Haugwitz.**
|
|
|
|
|
3. **Level.** The req is labelled only "Berufserfahrene" and may be lateral or a down-level move against current
|
|
|
|
|
Staff + Component Owner scope. **Ask what decision authority separates this from RUAG's Senior/Principal roles.**
|
|
|
|
|
4. **The question the application actually turns on:** does C5I want someone who has *built* an AI/LLM platform, or
|
|
|
|
|
someone who can *operate* one and grow into building it? **Marco Heinzen, +41 79 568 14 96** - the published
|
|
|
|
|
direct line that was never used. A call now would still upgrade the channel from Weak to Moderate.
|
|
|
|
|
|
|
|
|
|
### Honest gaps that travel with this application
|
|
|
|
|
No AI/LLM platform built or operated; no compute or GPU cluster; no RAG, retrieval or document-solution
|
|
|
|
|
implementation; no formal LLM evaluation; no model-training ownership. ML/AI-framework depth is certification-context
|
|
|
|
|
only (IBM AI Engineering, now primary-source verified). These are real and were never written around.
|
|
|
|
|
|
|
|
|
|
### Standing note for any future RUAG C5I application
|
|
|
|
|
The KB now holds a verified, live JD and a full Phase 0 for this business area, and RUAG C5I has **five other reqs**
|
|
|
|
|
already in the scout log (Senior DevOps Engineer C5I and Data Lakehouse / Senior Data Platform Engineer are both
|
|
|
|
|
shortlisted and are **materially better fits than this one** - they sit on the DevOps/data-platform lane where his
|
|
|
|
|
evidence is Direct rather than Adjacent). If this application is rejected, that is **not** a signal to drop RUAG;
|
|
|
|
|
it is a signal to target the reqs that match the evidence. Note also that the cohort's Stretch slot is now full,
|
|
|
|
|
so any further RUAG application must clear Core or Adjacent on its own merits.
|
|
|
|
|
|
|
|
|
|
## Output Files
|
|
|
|
|
- Verbatim JD: `output/RUAG_AI_Engineer_C5I/JD_ruag_ai_engineer_c5i.txt`
|
|
|
|
|
- Session: `output/RUAG_AI_Engineer_C5I/session_ruag_ai_engineer_c5i.md`
|
|
|
|
|
- Resume: `output/RUAG_AI_Engineer_C5I/e2e_ruag_ai_engineer_c5i_resume.tex`; finished, Capgemini defect corrected, re-validated and re-compiled 2026-08-27; awaiting user approval.
|
|
|
|
|
- Compiled resume PDF: `output/RUAG_AI_Engineer_C5I/e2e_ruag_ai_engineer_c5i_resume.pdf` and a submission-named copy `output/RUAG_AI_Engineer_C5I/Dennis_Thiessen_Lebenslauf.pdf`, both built 2026-08-27 from the corrected source. ⚠ **`Dennis_Thiessen_Lebenslauf.pdf` is a copy, not a build target.** pdflatex only regenerates the `e2e_` file, so the submission-named copy must be **refreshed after every recompile** or it silently becomes the old version under the exact filename that would be attached to the application.
|
|
|
|
|
- Cover letter: `output/RUAG_AI_Engineer_C5I/e2e_ruag_ai_engineer_c5i_cover_letter.tex`, with `e2e_ruag_ai_engineer_c5i_cover_letter.pdf` and the submission-named `Dennis_Thiessen_Motivationsschreiben.pdf`. Built 2026-08-27; awaiting user approval.
|
|
|
|
|
- Critique: `output/RUAG_AI_Engineer_C5I/critique_ruag_ai_engineer_c5i.md` - **CURRENT**, written 2026-08-27. Evidence Fit 74, Document Quality 85, Channel Weak.
|
|
|
|
|
|
|
|
|
|
## Status
|
|
|
|
|
- **Phase 0:** COMPLETE 2026-08-27.
|
|
|
|
|
- **Fit gate:** Explicitly overridden by the user on 2026-08-27; strict hard-gate FAIL, Evidence Fit 74 and strategic Stretch remain recorded.
|
|
|
|
|
- **Phase 2:** COMPLETE; audience and 12-bullet content plan prepared.
|
|
|
|
|
- **Phase 3/4:** COMPLETE; resume generated, validated, compiled and visually inspected. **Re-audited after handover 2026-08-27:** one standing-preference defect (Capgemini) found and fixed, then re-validated, re-compiled and re-inspected. See Post-Handover Fix and Re-Verification.
|
|
|
|
|
- **Resume:** finished; awaiting user approval.
|
|
|
|
|
- **Phase 5 (cover letter):** COMPLETE 2026-08-27; generated, hooks verified live, validated, compiled and inspected.
|
|
|
|
|
- **Cover letter:** DONE; awaiting user approval.
|
|
|
|
|
- **Application/outcome:** **SUBMITTED 2026-08-27** via jobs.ruag.ch, application ID 18027. Awaiting response. Cohort recorded: Stretch slot consumed, cohort 6/10.
|
|
|
|
|
- **Contact location:** RESOLVED 2026-08-27 - `Thun, Schweiz`.
|
|
|
|
|
- **Resume:** approved by the user 2026-08-27 (implicitly, by invoking `/make-cl`), after three review changes: sponsoring sentence removed, Bosch title with promotion date, Vizrt shortened to DevOps Engineer.
|
|
|
|
|
- **Critique:** **CURRENT (Round 2, 2026-08-27, post-Edit 1)** - Evidence Fit **74/100**, Document Quality **93/100**, Channel **Weak**, **Tier 1 findings: none**. Round 1 (pre-edit) scored - Evidence Fit **74/100**, Document Quality **85/100**, Channel **Weak**, **no Tier 1 truth finding**, 3 Tier 1 fixes open (DevSecOps hook in the letter, PP-3 on the resume, `governte` -> `governance-konforme`).
|
|
|
|
|
- **Edit 1:** COMPLETE 2026-08-27. All three Tier 1 fixes applied, plus Tier 2 items 3-5 and the two user decisions (official title; citizenship sentence cut). Both documents re-validated, recompiled, re-rendered and inspected; submission-named PDFs refreshed and MD5-matched.
|
|
|
|
|
- **Next:** await response. Optional and still worthwhile: call **Marco Heinzen, +41 79 568 14 96** about technical scope and level, and **Frank Haugwitz** about compensation and PSP/project eligibility - all three are now live screening topics rather than pre-cleared ones. Do not react to a single rejection with positioning changes (`application_strategy.md` sections 38/74); the better-fitting RUAG C5I DevOps and Data Platform reqs are already shortlisted in the scout log. **Unchanged and unaffected by any edit:** Evidence Fit 74, Stretch, title-capability gate FAIL, and the open PSP / compensation / level questions. The highest-value remaining action is not a document change - it is the call to Marco Heinzen (+41 79 568 14 96). Compensation, PSP/project access and role level remain open practical questions and are unaffected by the documents. Because the cover-letter decision is YES, proceed with `/make-cl` after approval. Compensation, PSP/project access and level remain open practical questions.
|