diff --git a/.gitignore b/.gitignore index 5235d43..3d775e4 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,9 @@ job_scout/*_verify.txt # Scratch/temp working files tmp/ + +# Local tool caches (Playwright browsers, embedded Python, one-off helper scripts) +.cache/ + +# Raw HTML page dumps next to applications - the verbatim JD .txt/.md is what gets tracked +output/**/*.html diff --git a/CLAUDE.md b/CLAUDE.md index 0b66e8a..5f70623 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -183,6 +183,7 @@ _See `config.md` for user-specific corrections. Add verified errors here as you | Date | Correction | Files fixed | |------|-----------|-------------| +| 2026-10-08 | **Three more canonical gaps of the recurring shape, surfaced by the Kongsberg Seatex *Lead Engineer, DevOps and Test Infrastructure* (Trondheim) package.** (a) **Jenkins and GitLab CI/CD** were evidenced in claim scopes (GN-1, FC-1, BS-6, SW-3) but absent from the `skills` array, so no skills line could cite them; registered as `production-historical`, with GitLab keeping SW-3's "used, not built" limit. (b) **Embedded coursework** was unrecorded: user-confirmed an Embedded Systems course (C/C++ and VHDL with an ARM platform) and Robotics during his studies, and **no embedded work since** - recorded as **ED-1**, coursework-only, degree attribution not yet given. (c) **Current unit testing** was unrecorded: he writes unit tests today and knows pytest - recorded as **SW-9**; whether pytest is the Swisscom framework is not confirmed. The JD's required line *"Experience working with embedded SW and Linux"* stays a **half Gap** (hard-gate FAIL); the user overrode it knowingly. **Lesson, again: for any DevOps/test JD ask about current testing practice and about academic hardware work before scoring - neither lives in `claims.json` by default.** | `claims.json` (ED-1, SW-9, 7 skills); `knowledge_base/extractions/2026-10-08_embedded_coursework_testing_clarification.md`; Kongsberg package | | 2026-09-15 | **Swisscom was recorded as one undifferentiated current role, so past work read as present.** The first Geo Platform build said *"Own the ETL pipeline components"* and *"Owns ... Teradata"* in the summary - wrong. User-supplied: the tenure has two phases. **ART B2B** (first part, PAST): the legacy Teradata DWH - Fulfillment ETL component ownership (SW-2), Python on Kubernetes with GitLab CI/CD (SW-3), dashboards and analyses (SW-4), Kafka. **ART DPT, Team Offering** (CURRENT): migration and implementation of AWS data products on AWS, ODP-Flow, PySpark/Python, Glue, Iceberg, Athena, Airflow (SW-1, SW-6, SW-7). **Kafka and Kubernetes downgraded to `production-historical`**; SW-2/SW-3/SW-4 allowed verbs are now past tense; Apache Iceberg added as a canonical skill. Official internal title recorded: `Data, Analytics & AI Engineer IV` (III before Apr 2025), per the Oct 2025 Zwischenzeugnis. **The switch date is deliberately not recorded (user: not relevant) - never date the two units.** Any already-submitted package that presents Swisscom Kubernetes, Kafka or Teradata ownership as current stays as submitted history, but expect the question in interviews. **Lesson: the Zwischenzeugnis gives the whole tenure as one duty list, and a duty list says nothing about which duties are current - ask which phase each belongs to.** Same session, same shape: the Zeugnis's *"automation of CI/CD processes in GitLab"* overstated his part - the user clarified he **worked with** automated GitLab CI/CD rather than building it, and SW-3 now forbids claiming the automation. | `claims.json` (SWISSCOM org/title history; SW-1/2/3/4/6/7; Kafka, Kubernetes, Apache Iceberg; SW-3 CI/CD scope); `experience_swisscom.md` SW-3; Geo Platform resume | | 2026-09-15 | **Geospatial evidence was missing from `claims.json` - the fifth canonical gap of the Ansible/Linux/Bash/Kotlin shape - and the first assessment compounded it with a wrong assumption about the domain.** Surfaced by the internal Swisscom posting *Data Engineer - Geo Platform* (R-0006447), which requires *"Fundierte Praxis mit ArcGIS und FME"*. User-confirmed: at Bosch he worked extensively with geospatial data in Oracle (**`SDO_GEOMETRY`**) and TIBCO Spotfire to visualize, locate and analyze wafer data, across **multiple coordinate reference systems** - normalizing and transforming between them was the main difficulty of the work, performance tuning the other. Recorded as **BS-8** plus two `allowed-with-context` skills. **The assessment first asserted that wafer coordinates carry no CRS and scored the geo lines on that basis; it was wrong and the user corrected it.** Boundary kept, not re-litigated: geographic/geodetic specifics (datums, map projections, EPSG, LV95) are not established. **ArcGIS, FME, QGIS, PostGIS, GeoServer and GDAL are user-confirmed never used** and are now registered `forbidden` so the scanner catches them. **Lesson: do not discount a domain bridge on an assumption about the domain - ask the discriminating question before scoring.** | `claims.json` (BS-8; 2 new skills; 6 forbidden skills) | | 2026-09-05 | **The ten-application cohort's slot caps (7 Core / 2 Adjacent / 1 Stretch) were DROPPED by user decision.** Two reasons, both evidenced. **(a) The numbers were arbitrary and non-binding:** no derivation existed anywhere, and they were routed around whenever they bound - RUAG AI Engineer went in at Evidence Fit 74 with a hard-gate FAIL, and Citadel was recorded Adjacent when the strict reading said Stretch. **(b) The cohort was a confounded experiment:** it was built to test *fit class*, but the variable it silently held constant was *channel* - `cohort_tracker.py` reports **channel weak: 6, moderate: 0, strong: 0**. It therefore could not separate "Stretch does not convert" from "cold does not convert", and the evidence points away from fit class regardless: the highest-scoring package in the log (Snowflake, ~86) drew no reply in 80 days, while the single interview (SBB) came from a **cold Core submit whose resume was missing the three ATS literals** the session had flagged. **What was kept is the recording, not the rationing** - fit class, hard gate, channel, date, stage and outcome are still logged on every application, because that record is what makes patterns visible rather than re-derived. **Channel replaces the slot budget as the rationed variable: no application goes out cold when a named contact is published and reachable** - Marco Heinzen (RUAG), Andri Wienandts (SBB) and Per Olav Marthinsen (Aker BP) were all published, reachable and never used. **Fit class is now a preparation signal, not a spend limit:** 64/100 means know which two questions are coming, not do not apply. Hard gates and NO-GO triggers are unchanged. **Three real constraints survive independently and must not be dropped with the caps:** Google's 3-applications-per-rolling-30-days and 90-day same-role wait; not stacking a second cold application on one org while the first is pending; and the hours each package actually costs. Propagated to `application_strategy.md`, `shared_ops.md`, `session_file_template.md`, `cohort_tracker.py` (now prints counts, never counts-against-a-target) and `application_cohort.json`. | `application_strategy.md`; `shared_ops.md`; `session_file_template.md`; `cohort_tracker.py`; `application_cohort.json`; `CLAUDE.md` | diff --git a/config.md b/config.md index cd5746d..69bde05 100644 --- a/config.md +++ b/config.md @@ -61,6 +61,21 @@ Verified errors to never re-introduce. Add entries as you catch mistakes. | Swisscom Security Champion | NOT an award. It is a mandatory team role (security point of contact). Dennis holds the badge for 2025/2026 only — NOT "3 consecutive years." Do not frame as an award or honor. Only include when JD requires security experience. | | Swisscom AWS migration — not solo | **User-corrected 2026-07-27.** `experience_swisscom.md` SW-1 previously read "Primary owner / **sole technical lead**" and its 3L bullet said "**Led** migration of legacy Teradata/Oracle ETL stack." Both are wrong. Dennis was the primary engineer for **his own domains'** pipelines and a contributor to the wider company migration programme. Always scope the object ("my domains' ETL stack") or hedge the verb ("contributed to"). Source files corrected. | | LangChain | **NEVER USED — do not list.** Crept into Apple and Infineon resume outputs as a fabrication when "custom GPTs" was reframed to fit JD vocabulary. Verified GenAI toolchain: **Kiro** (AI IDE / spec-driven dev), **VS Code + Copilot**, **LiteLLM** (LLM API gateway — created/used APIs), **custom GPTs** with fed domain knowledge. Never substitute LangChain/LangGraph/LlamaIndex for these. | +| Python backend frameworks | **Django, Flask and FastAPI used in private/hobby projects only, never professionally** (user-confirmed 2026-09-18; PP-4). Allowed with explicit personal-project context. Do not infer project names, dates, scale or production deployment. | +| Enterprise SaaS/SSO administration | **Not performed**, user-confirmed 2026-09-18. Personal server administration and the Bosch secrets plugin do not establish enterprise SaaS/identity administration. This is not a blanket statement that OAuth/SCIM/Okta have never been encountered in any context. | +| Data-product design / frontend | **User-confirmed 2026-10-03:** current Swisscom work includes data modelling, design and implementation of data products (SW-7). Exact duration is unconfirmed. **No frontend experience**; do not claim frontend/UI development or Full Stack expertise from backend JavaScript, Selenium tests, thesis wording or a personal dashboard. | + +--- + +## Job-change Preferences + +User clarification, 2026-10-06: + +- **Current baseline:** 3 homeoffice days per week. +- **Fewer than 3 homeoffice days:** acceptable only when the role offers a clear overall improvement over the current position. Assess the total package, including compensation, role scope, development, commute, working time and benefits; no numerical improvement threshold has been specified. +- Homeoffice is a conditional trade-off, not an absolute 3-day minimum. Clarify the working model and total package early; do not automatically reject a role solely for fewer homeoffice days. +- The user expects a sufficient improvement most likely at FAANG or comparable employers. This is his expectation, not a restriction to those employers or a verified compensation claim. +- **Internal Swisscom move (Geo Platform):** a separate change of tasks, with no change to position or seniority and no substantial salary change expected (user clarification, 2026-10-06). It does not replace, pause or change the external search, including if the internal move succeeds. Evaluate it as an internal task change; do not apply the external-upgrade expectation to this move. --- diff --git a/job_scout/state/application_cohort.json b/job_scout/state/application_cohort.json index b1f18b6..ff2af27 100644 --- a/job_scout/state/application_cohort.json +++ b/job_scout/state/application_cohort.json @@ -26,7 +26,7 @@ "outcome": "applied", "id": "app-9068f462d9b9", "label": "NVIDIA - Senior DevOps Engineer, Zürich (req JR2024256)", - "next_action": "**Await response. Raise the working model at first contact** - it went in unresolved and a 5-day-onsite seat would be a late no. Note: `claims.json` has no shell-scripting entry, so **Bash is omitted** from Skills although the JD names it and ten years of Debian admin plus Ansible work plainly involve it - same shape as the Ansible/Linux gaps found 2026-08-27. Confirm with the user and record it. Groovy stays out regardless.", + "next_action": "Await response. At first contact, clarify homeoffice/onsite requirements and total package. Baseline is 3 homeoffice days/week; fewer days require a clear overall improvement. Note: `claims.json` has no shell-scripting entry, so **Bash is omitted** from Skills although the JD names it and ten years of Debian admin plus Ansible work plainly involve it - same shape as the Ansible/Linux gaps found 2026-08-27. Confirm with the user and record it. Groovy stays out regardless.", "current_summary": "SUBMITTED 2026-09-05.", "events": [ { @@ -51,11 +51,11 @@ "evidence_fit": 74.0, "hard_gate": "fail", "channel": "weak", - "outcome": "applied", + "outcome": "rejected_after_interview", "id": "app-ca0990d47bd0", "label": "RUAG C5I - AI Engineer C5I, Thun (application ID 18027)", - "next_action": "Await response. Optional but still worthwhile: call **Marco Heinzen** about technical scope and level, and **Frank Haugwitz** about compensation and PSP/project eligibility. **NEW CONTACT 2026-09-07 — `Lars Kauz`, Head of ICT Infrastructure C5I, +41 79 293 93 82, lars.kauz@ruag.ch**, published on the System Engineer C5I posting. Channel is the rationed variable since the 09-05 cohort change, so a published, reachable name matters — **but he heads ICT Infrastructure, the function whose req was ruled out for VMware/VDI/Windows content, and that is NOT demonstrably the Kubernetes platform group Senior DevOps C5I sits in.** He is a warm entry into C5I, not a verified channel for rank 1; Haugwitz stays the recorded gate. Do not react to a single outcome with positioning changes (`application_strategy.md` §38/§74).", - "current_summary": "SUBMITTED 2026-08-27", + "next_action": "Abgeschlossen: Absage nach Interview; Anforderungen vor allem beim Homeoffice nicht vereinbar. Keine weitere Aktion fuer diese Bewerbung offen.", + "current_summary": "Absage von RUAG am 2026-10-06 erhalten, laut Nutzer. RUAG konnte die Anforderungen des Nutzers, vor allem bezueglich Homeoffice, nicht erfuellen. Konkreter Homeoffice-Umfang nicht genannt. Interview am 2026-10-02 bleibt dokumentiert.", "events": [ { "type": "legacy_status_import", @@ -67,9 +67,32 @@ { "type": "applied", "date": "2026-08-27" + }, + { + "type": "interview_invited", + "date": null, + "recorded_at": "2026-09-28", + "scheduled_for": "2026-10-02", + "source": "user update 2026-09-28" + }, + { + "type": "interview_held", + "date": "2026-10-02", + "note": "Interview am 2026-10-02 gefuehrt. Umfeld aus Nutzersicht interessant; Angebot bzw. Gesamtpaket vermutlich wenig konkurrenzfaehig (vorlaeufiger Eindruck, kein bestaetigtes Angebot oder Gehaltsbetrag). Entscheidung offen. Nutzer ueberlegt und will RUAG naechste Woche seinen Eindruck mitteilen.", + "outcome": "interviewing" + }, + { + "type": "rejected_after_interview", + "date": "2026-10-06", + "note": "Absage von RUAG am 2026-10-06 erhalten, laut Nutzer. RUAG konnte die Anforderungen des Nutzers, vor allem bezueglich Homeoffice, nicht erfuellen. Konkreter Homeoffice-Umfang nicht genannt. Interview am 2026-10-02 bleibt dokumentiert.", + "outcome": "rejected_after_interview" } ], - "cohort_id": "evidence-first-2026-01" + "cohort_id": "evidence-first-2026-01", + "interview": { + "scheduled": "2026-10-02", + "date_precision": "day" + } }, { "company": "Schweizer Armee - Kommando Cyber", @@ -118,7 +141,7 @@ "outcome": "applied", "id": "app-ef2bec6fe379", "label": "Citadel Securities — Platform Engineer, Research Platform Engineering, Zürich (also NY/Miami)", - "next_action": "**Await response** (submitted 2026-08-26). No document work pending. **Two questions travel with this application and must both be asked at first contact, before any interview effort:** (1) **is the application even against the Zürich seat?** — the apply form offered no Zürich, so it may sit against a US req, which is a hard NO on relocation; (2) **hybrid or 5-day onsite?** — unresolved at submission, and 5-day onsite is a likely NO-GO on the Bern constraint. Same shape as the NVIDIA working-model issue: it went out unresolved, so it is now a live screening topic rather than a pre-cleared one. Also unasked: the Zürich compensation figure — the posting's $175–350k is a US/NY pay-transparency disclosure.", + "next_action": "Await response. At first contact, confirm whether the application is for the Zurich seat; relocation to the US remains ruled out. Clarify homeoffice/onsite requirements and the Zurich compensation package. Baseline is 3 homeoffice days/week; fewer days require a clear overall improvement. The posted US salary range is not a Zurich figure.", "current_summary": "SUBMITTED 2026-08-26 — open, awaiting response.", "events": [ { @@ -277,13 +300,13 @@ "evidence_fit": 78.0, "hard_gate": "fail", "channel": "moderate", - "outcome": "applied", + "outcome": "interviewing", "cohort_id": "evidence-first-2026-01", "job_id": "R-0006447", "url": null, "fit_override_reason": "User override 2026-09-15 after seeing the ArcGIS/FME hard gate (required, never used). Internal move with no change to level or conditions; hiring manager Marianne Temerowski encouraged the application.", "rubric_version": "critique-framework-2026-09-11", - "next_action": "Await response. Interview prep (critique section 7): say plainly that ArcGIS and FME are unused; name the Bosch coordinate systems and how the transformations were done; geographic CRS (WGS84, LV95, datum shifts) is new ground.", + "next_action": "Swisscom-Rueckmeldung zwischen 2026-10-08 und 2026-10-15 abwarten; internen Aufgabenwechsel separat bewerten. Externe Suche unabhaengig vom Ausgang aktiv fortsetzen, auch bei erfolgreichem internem Wechsel.", "current_summary": "SUBMITTED 2026-09-15 via the internal Swisscom Workday posting (R-0006447): 2-page English resume (Dennis_Thiessen_Resume.pdf), no cover letter (internal). Evidence Fit 78, hard gate FAIL (ArcGIS/FME) overridden by the user, Document Quality 89, channel Moderate (hiring manager Marianne Temerowski encouraged the application).", "events": [ { @@ -300,6 +323,85 @@ "date": "2026-09-15", "note": "SUBMITTED 2026-09-15 via the internal Swisscom Workday posting (R-0006447): 2-page English resume (Dennis_Thiessen_Resume.pdf), no cover letter (internal). Evidence Fit 78, hard gate FAIL (ArcGIS/FME) overridden by the user, Document Quality 89, channel Moderate (hiring manager Marianne Temerowski encouraged the application).", "outcome": "applied" + }, + { + "type": "interview_invited", + "date": null, + "recorded_at": "2026-09-28", + "scheduled_for": "2026-10-01", + "source": "user update 2026-09-28" + }, + { + "type": "interview_held", + "date": "2026-10-01", + "note": "Interview held 2026-10-01. User says it went fairly well. Response expected in 1-2 weeks. User perceives a possible mismatch: team may seek a more junior or AI-native candidate. No employer feedback or decision yet." + }, + { + "type": "note", + "date": "2026-10-06", + "note": "Nutzer-Klarstellung: Der interne Wechsel aendert nur den Aufgabenbereich, nicht Position oder Senioritaet und nicht wesentlich das Gehalt. Separater interner Aufgabenwechsel; die externe Suche bleibt unveraendert und laeuft auch bei erfolgreichem internen Wechsel weiter." + } + ], + "interview": { + "scheduled": "2026-10-01", + "date_precision": "day" + } + }, + { + "id": "app-google-commerce-140594136896938694", + "company": "Google", + "role": "Senior Software Engineer, Full Stack, Commerce, Zürich", + "label": "Google — Senior Software Engineer, Full Stack, Commerce, Zürich", + "application_date": null, + "fit_class": "no-go", + "evidence_fit": 73.0, + "hard_gate": "fail", + "channel": "weak", + "outcome": "open", + "cohort_id": "evidence-first-2026-01", + "job_id": "140594136896938694", + "url": "https://www.google.com/about/careers/applications/jobs/results/140594136896938694-senior-software-engineer-full-stack-commerce?location=Switzerland", + "fit_override_reason": null, + "rubric_version": "critique-framework-2026-09-11", + "next_action": "Choose Shopping Ads SWE III (Mid; compensation unpublished), search further Google Senior roles, or explicitly override the stated Commerce frontend gap. No application submitted.", + "current_summary": "Preparation held: frontend experience denied; Full Stack title-defining gap. Not submitted.", + "events": [ + { + "type": "open", + "date": "2026-10-03", + "note": "User selected Google Commerce from scout shortlist. Preparation only; this is not an application submission." + }, + { + "type": "note", + "date": "2026-10-03", + "note": "User confirmed current data-product modelling/design/implementation and denied frontend experience. Full Stack is title-defining: project fit-policy no-go; no separate explicit frontend minimum claimed. Design duration still unconfirmed. Preparation held; not submitted and not user-withdrawn." + } + ], + "session": "output/Google_Senior_SWE_Commerce/session_google_senior_swe_commerce.md", + "evidence_fit_status": "73 is the initial provisional score, not reassessed after clarification; confirmed title-defining gap overrides it" + }, + { + "id": "app-59d425526499", + "company": "Kongsberg Discovery (Seatex)", + "role": "Lead Engineer, DevOps and Test Infrastructure, Trondheim", + "label": "Kongsberg Discovery (Seatex) — Lead Engineer, DevOps and Test Infrastructure, Trondheim", + "application_date": "2026-10-08", + "fit_class": "no-go", + "evidence_fit": 69.0, + "hard_gate": "fail", + "channel": "weak", + "outcome": "applied", + "cohort_id": "evidence-first-2026-01", + "job_id": "easycruit-3663291", + "url": "https://www.kongsberg.com/careers/vacancies/lead-engineer-devops-and-test-infrastructure/", + "fit_override_reason": "User override 2026-10-08 after seeing the hard gate: required 'Experience working with embedded SW and Linux' - Linux Direct, embedded academic-only (ED-1 coursework, none since studies); clearance ('may be required') unresolved; on-site Trondheim with relocation deferred to offer stage by user. Named contact Are B. Willumsen published but deliberately NOT contacted (user decision) - a deliberate cold submit. Document Quality 84; Tier 2 fixes declined.", + "rubric_version": "critique-framework-2026-09-11", + "next_action": "Wait for Kongsberg response. Screen prep: embedded targets/HIL question, recency of DevOps/test work (2015-22), relocation to Trondheim, clearance eligibility as German citizen resident in Switzerland, on-site expectations. Package: output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/.", + "current_summary": "applied", + "events": [ + { + "type": "applied", + "date": "2026-10-08" } ] } diff --git a/job_scout/state/applications.json b/job_scout/state/applications.json index c94d741..792b609 100644 --- a/job_scout/state/applications.json +++ b/job_scout/state/applications.json @@ -28,7 +28,7 @@ "outcome": "applied", "id": "app-9068f462d9b9", "label": "NVIDIA - Senior DevOps Engineer, Zürich (req JR2024256)", - "next_action": "**Await response. Raise the working model at first contact** - it went in unresolved and a 5-day-onsite seat would be a late no. Note: `claims.json` has no shell-scripting entry, so **Bash is omitted** from Skills although the JD names it and ten years of Debian admin plus Ansible work plainly involve it - same shape as the Ansible/Linux gaps found 2026-08-27. Confirm with the user and record it. Groovy stays out regardless.", + "next_action": "Await response. At first contact, clarify homeoffice/onsite requirements and total package. Baseline is 3 homeoffice days/week; fewer days require a clear overall improvement. Note: `claims.json` has no shell-scripting entry, so **Bash is omitted** from Skills although the JD names it and ten years of Debian admin plus Ansible work plainly involve it - same shape as the Ansible/Linux gaps found 2026-08-27. Confirm with the user and record it. Groovy stays out regardless.", "current_summary": "SUBMITTED 2026-09-05.", "events": [ { @@ -53,11 +53,11 @@ "evidence_fit": 74.0, "hard_gate": "fail", "channel": "weak", - "outcome": "applied", + "outcome": "rejected_after_interview", "id": "app-ca0990d47bd0", "label": "RUAG C5I - AI Engineer C5I, Thun (application ID 18027)", - "next_action": "Await response. Optional but still worthwhile: call **Marco Heinzen** about technical scope and level, and **Frank Haugwitz** about compensation and PSP/project eligibility. **NEW CONTACT 2026-09-07 — `Lars Kauz`, Head of ICT Infrastructure C5I, +41 79 293 93 82, lars.kauz@ruag.ch**, published on the System Engineer C5I posting. Channel is the rationed variable since the 09-05 cohort change, so a published, reachable name matters — **but he heads ICT Infrastructure, the function whose req was ruled out for VMware/VDI/Windows content, and that is NOT demonstrably the Kubernetes platform group Senior DevOps C5I sits in.** He is a warm entry into C5I, not a verified channel for rank 1; Haugwitz stays the recorded gate. Do not react to a single outcome with positioning changes (`application_strategy.md` §38/§74).", - "current_summary": "SUBMITTED 2026-08-27", + "next_action": "Abgeschlossen: Absage nach Interview; Anforderungen vor allem beim Homeoffice nicht vereinbar. Keine weitere Aktion fuer diese Bewerbung offen.", + "current_summary": "Absage von RUAG am 2026-10-06 erhalten, laut Nutzer. RUAG konnte die Anforderungen des Nutzers, vor allem bezueglich Homeoffice, nicht erfuellen. Konkreter Homeoffice-Umfang nicht genannt. Interview am 2026-10-02 bleibt dokumentiert.", "events": [ { "type": "legacy_status_import", @@ -69,9 +69,32 @@ { "type": "applied", "date": "2026-08-27" + }, + { + "type": "interview_invited", + "date": null, + "recorded_at": "2026-09-28", + "scheduled_for": "2026-10-02", + "source": "user update 2026-09-28" + }, + { + "type": "interview_held", + "date": "2026-10-02", + "note": "Interview am 2026-10-02 gefuehrt. Umfeld aus Nutzersicht interessant; Angebot bzw. Gesamtpaket vermutlich wenig konkurrenzfaehig (vorlaeufiger Eindruck, kein bestaetigtes Angebot oder Gehaltsbetrag). Entscheidung offen. Nutzer ueberlegt und will RUAG naechste Woche seinen Eindruck mitteilen.", + "outcome": "interviewing" + }, + { + "type": "rejected_after_interview", + "date": "2026-10-06", + "note": "Absage von RUAG am 2026-10-06 erhalten, laut Nutzer. RUAG konnte die Anforderungen des Nutzers, vor allem bezueglich Homeoffice, nicht erfuellen. Konkreter Homeoffice-Umfang nicht genannt. Interview am 2026-10-02 bleibt dokumentiert.", + "outcome": "rejected_after_interview" } ], - "cohort_id": "evidence-first-2026-01" + "cohort_id": "evidence-first-2026-01", + "interview": { + "scheduled": "2026-10-02", + "date_precision": "day" + } }, { "company": "Schweizer Armee - Kommando Cyber", @@ -120,7 +143,7 @@ "outcome": "applied", "id": "app-ef2bec6fe379", "label": "Citadel Securities — Platform Engineer, Research Platform Engineering, Zürich (also NY/Miami)", - "next_action": "**Await response** (submitted 2026-08-26). No document work pending. **Two questions travel with this application and must both be asked at first contact, before any interview effort:** (1) **is the application even against the Zürich seat?** — the apply form offered no Zürich, so it may sit against a US req, which is a hard NO on relocation; (2) **hybrid or 5-day onsite?** — unresolved at submission, and 5-day onsite is a likely NO-GO on the Bern constraint. Same shape as the NVIDIA working-model issue: it went out unresolved, so it is now a live screening topic rather than a pre-cleared one. Also unasked: the Zürich compensation figure — the posting's $175–350k is a US/NY pay-transparency disclosure.", + "next_action": "Await response. At first contact, confirm whether the application is for the Zurich seat; relocation to the US remains ruled out. Clarify homeoffice/onsite requirements and the Zurich compensation package. Baseline is 3 homeoffice days/week; fewer days require a clear overall improvement. The posted US salary range is not a Zurich figure.", "current_summary": "SUBMITTED 2026-08-26 — open, awaiting response.", "events": [ { @@ -370,9 +393,9 @@ "label": "NATO JWC Stavanger — Staff Officer, AI Engineer (2030 Digitalisation, G15, 3-yr PLN)", "company": "NATO JWC Stavanger", "role": "NATO JWC Stavanger — Staff Officer, AI Engineer (2030 Digitalisation, G15, 3-yr PLN)", - "outcome": "applied", - "next_action": "Await screening; no action until contact", - "current_summary": "SENT 2026-07-10", + "outcome": "rejected_no_interview", + "next_action": "Abgeschlossen: Absage erhalten; keine weitere Aktion offen.", + "current_summary": "Absage am 2026-10-05 erhalten, vom Nutzer am 2026-10-06 gemeldet. Im bisherigen Verlauf ist kein Interview dokumentiert; ein Absagegrund wurde nicht genannt.", "events": [ { "type": "legacy_status_import", @@ -380,6 +403,12 @@ "source": "CLAUDE.md / application_cohort.json", "details": "**SENT 2026-07-10** (77.5/100; deadline 2026-08-09; final interviews 2nd half Oct 2026). Borderline screen: Azure-cert \"or equivalent\", LLM depth, no current clearance; German national + officer service are the legibility assets. Tax-free NOK 93,933/mo + allowances", "legacy_next_action": "Await screening; no action until contact" + }, + { + "type": "rejected_no_interview", + "date": "2026-10-05", + "note": "Absage am 2026-10-05 erhalten, vom Nutzer am 2026-10-06 gemeldet. Im bisherigen Verlauf ist kein Interview dokumentiert; ein Absagegrund wurde nicht genannt.", + "outcome": "rejected_no_interview" } ] }, @@ -659,13 +688,13 @@ "evidence_fit": 78.0, "hard_gate": "fail", "channel": "moderate", - "outcome": "applied", + "outcome": "interviewing", "cohort_id": "evidence-first-2026-01", "job_id": "R-0006447", "url": null, "fit_override_reason": "User override 2026-09-15 after seeing the ArcGIS/FME hard gate (required, never used). Internal move with no change to level or conditions; hiring manager Marianne Temerowski encouraged the application.", "rubric_version": "critique-framework-2026-09-11", - "next_action": "Await response. Interview prep (critique section 7): say plainly that ArcGIS and FME are unused; name the Bosch coordinate systems and how the transformations were done; geographic CRS (WGS84, LV95, datum shifts) is new ground.", + "next_action": "Swisscom-Rueckmeldung zwischen 2026-10-08 und 2026-10-15 abwarten; internen Aufgabenwechsel separat bewerten. Externe Suche unabhaengig vom Ausgang aktiv fortsetzen, auch bei erfolgreichem internem Wechsel.", "current_summary": "SUBMITTED 2026-09-15 via the internal Swisscom Workday posting (R-0006447): 2-page English resume (Dennis_Thiessen_Resume.pdf), no cover letter (internal). Evidence Fit 78, hard gate FAIL (ArcGIS/FME) overridden by the user, Document Quality 89, channel Moderate (hiring manager Marianne Temerowski encouraged the application).", "events": [ { @@ -682,6 +711,85 @@ "date": "2026-09-15", "note": "SUBMITTED 2026-09-15 via the internal Swisscom Workday posting (R-0006447): 2-page English resume (Dennis_Thiessen_Resume.pdf), no cover letter (internal). Evidence Fit 78, hard gate FAIL (ArcGIS/FME) overridden by the user, Document Quality 89, channel Moderate (hiring manager Marianne Temerowski encouraged the application).", "outcome": "applied" + }, + { + "type": "interview_invited", + "date": null, + "recorded_at": "2026-09-28", + "scheduled_for": "2026-10-01", + "source": "user update 2026-09-28" + }, + { + "type": "interview_held", + "date": "2026-10-01", + "note": "Interview held 2026-10-01. User says it went fairly well. Response expected in 1-2 weeks. User perceives a possible mismatch: team may seek a more junior or AI-native candidate. No employer feedback or decision yet." + }, + { + "type": "note", + "date": "2026-10-06", + "note": "Nutzer-Klarstellung: Der interne Wechsel aendert nur den Aufgabenbereich, nicht Position oder Senioritaet und nicht wesentlich das Gehalt. Separater interner Aufgabenwechsel; die externe Suche bleibt unveraendert und laeuft auch bei erfolgreichem internen Wechsel weiter." + } + ], + "interview": { + "scheduled": "2026-10-01", + "date_precision": "day" + } + }, + { + "id": "app-google-commerce-140594136896938694", + "company": "Google", + "role": "Senior Software Engineer, Full Stack, Commerce, Zürich", + "label": "Google — Senior Software Engineer, Full Stack, Commerce, Zürich", + "application_date": null, + "fit_class": "no-go", + "evidence_fit": 73.0, + "hard_gate": "fail", + "channel": "weak", + "outcome": "open", + "cohort_id": "evidence-first-2026-01", + "job_id": "140594136896938694", + "url": "https://www.google.com/about/careers/applications/jobs/results/140594136896938694-senior-software-engineer-full-stack-commerce?location=Switzerland", + "fit_override_reason": null, + "rubric_version": "critique-framework-2026-09-11", + "next_action": "Choose Shopping Ads SWE III (Mid; compensation unpublished), search further Google Senior roles, or explicitly override the stated Commerce frontend gap. No application submitted.", + "current_summary": "Preparation held: frontend experience denied; Full Stack title-defining gap. Not submitted.", + "events": [ + { + "type": "open", + "date": "2026-10-03", + "note": "User selected Google Commerce from scout shortlist. Preparation only; this is not an application submission." + }, + { + "type": "note", + "date": "2026-10-03", + "note": "User confirmed current data-product modelling/design/implementation and denied frontend experience. Full Stack is title-defining: project fit-policy no-go; no separate explicit frontend minimum claimed. Design duration still unconfirmed. Preparation held; not submitted and not user-withdrawn." + } + ], + "session": "output/Google_Senior_SWE_Commerce/session_google_senior_swe_commerce.md", + "evidence_fit_status": "73 is the initial provisional score, not reassessed after clarification; confirmed title-defining gap overrides it" + }, + { + "id": "app-59d425526499", + "company": "Kongsberg Discovery (Seatex)", + "role": "Lead Engineer, DevOps and Test Infrastructure, Trondheim", + "label": "Kongsberg Discovery (Seatex) — Lead Engineer, DevOps and Test Infrastructure, Trondheim", + "application_date": "2026-10-08", + "fit_class": "no-go", + "evidence_fit": 69.0, + "hard_gate": "fail", + "channel": "weak", + "outcome": "applied", + "cohort_id": "evidence-first-2026-01", + "job_id": "easycruit-3663291", + "url": "https://www.kongsberg.com/careers/vacancies/lead-engineer-devops-and-test-infrastructure/", + "fit_override_reason": "User override 2026-10-08 after seeing the hard gate: required 'Experience working with embedded SW and Linux' - Linux Direct, embedded academic-only (ED-1 coursework, none since studies); clearance ('may be required') unresolved; on-site Trondheim with relocation deferred to offer stage by user. Named contact Are B. Willumsen published but deliberately NOT contacted (user decision) - a deliberate cold submit. Document Quality 84; Tier 2 fixes declined.", + "rubric_version": "critique-framework-2026-09-11", + "next_action": "Wait for Kongsberg response. Screen prep: embedded targets/HIL question, recency of DevOps/test work (2015-22), relocation to Trondheim, clearance eligibility as German citizen resident in Switzerland, on-site expectations. Package: output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/.", + "current_summary": "applied", + "events": [ + { + "type": "applied", + "date": "2026-10-08" } ] } @@ -691,6 +799,7 @@ "Assess headroom and total package: working time, holidays, office days, commute and verified benefits. Never decline a Thun-area role on salary band alone.", "Childcare-cost coverage at the Swiss Army/Kdo Cy remains unverified; confirm before pricing it.", "Norway remains open selectively; the Swiss compensation threshold does not automatically apply there.", - "An interview does not prove how an ATS or recruiter evaluated the application. No causal inference from a single conversion." + "An interview does not prove how an ATS or recruiter evaluated the application. No causal inference from a single conversion.", + "User clarification 2026-10-06: current baseline is 3 homeoffice days/week. Fewer days are acceptable only for a clear overall improvement over the current role; assess total package and commute early, with no automatic rejection based on office days alone. User expects such improvements mainly at FAANG or comparable employers, without restricting the search to them." ] } diff --git a/job_scout/state/decisions.json b/job_scout/state/decisions.json index 5a9b9df..22d9b1a 100644 --- a/job_scout/state/decisions.json +++ b/job_scout/state/decisions.json @@ -2425,5 +2425,152 @@ "decision": "rejected", "note": "Applied 2026-07-10. Rejection received 2026-09-11, reported by user. No interview recorded; rejection reason not provided. Application closed.", "date": "2026-09-11" + }, + "https://job.bkw.com/offene-stellen/senior-data-engineer-alle/f6eff0f7-01bf-4a5b-b62b-cb2a079992c8": { + "company": "", + "title": "", + "decision": "skip", + "note": "USER DECISION 2026-10-03: Do not pursue. User reviewed Glassdoor salary entries and found hardly any above his current salary; considers BKW unlikely to offer a competitive package and chooses Google instead. This is the users assessment from salary entries, not a verified BKW band or formal offer.", + "date": "2026-10-03" + }, + "https://www.kongsberg.com/careers/vacancies/lead-engineer-devops-and-test-infrastructure/": { + "company": "", + "title": "", + "decision": "applied", + "note": "SUBMITTED 2026-10-08 via EasyCruit (cold, by user decision - named contact Are B. Willumsen not contacted). Evidence Fit 69, hard gate FAIL (embedded academic-only; clearance unresolved), user override. Document Quality 84. Package: output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/.", + "date": "2026-10-08" + }, + "https://www.google.com/about/careers/applications/jobs/results/134588982343148230-senior-forward-deployed-engineer-genai-google-cloud?location=Switzerland": { + "company": "", + "title": "", + "decision": "skip", + "note": "TRIAGE 2026-10-08 (JD read): required 5 yrs shipping production AI solutions, RAG/vector-DB pipelines and AI systems on GCP - all Gap (SW-8 is configured LLM assistants; GCP forbidden). Same gap that paused Google FDE GenAI earlier.", + "date": "2026-10-08" + }, + "https://www.google.com/about/careers/applications/jobs/results/111514322084995782-staff-forward-deployed-engineer-genai-google-cloud?location=Switzerland": { + "company": "", + "title": "", + "decision": "skip", + "note": "TRIAGE 2026-10-08 (JD read): as Senior FDE GenAI but 8 yrs shipping production AI solutions; RAG/vector DB and GCP AI systems required - Gap.", + "date": "2026-10-08" + }, + "https://www.google.com/about/careers/applications/jobs/results/139113133389030086-senior-staff-forward-deployed-engineer-genai-google-cloud?location=Switzerland": { + "company": "", + "title": "", + "decision": "skip", + "note": "TRIAGE 2026-10-08 (JD read): production AI solutions on GCP and RAG/vector-DB pipelines required - Gap; Senior Staff level.", + "date": "2026-10-08" + }, + "https://www.google.com/about/careers/applications/jobs/results/106113082882695878-forward-deployed-engineer-iii-applied-ai?location=Switzerland": { + "company": "", + "title": "", + "decision": "skip", + "note": "TRIAGE 2026-10-08 (JD read): required 2 yrs GenAI techniques and 'developing and deploying multilingual NLP models' - Gap (FC-2 ARTUS was a contribution, no model ownership).", + "date": "2026-10-08" + }, + "https://www.google.com/about/careers/applications/jobs/results/81427103366423238-staff-software-engineer-generative-ai-commerce?location=Switzerland": { + "company": "", + "title": "", + "decision": "skip", + "note": "TRIAGE 2026-10-08 (JD read): required 5 yrs leading ML design/ML infrastructure and agentic tool-calling systems - Gap.", + "date": "2026-10-08" + }, + "https://jobs.ashbyhq.com/kraken.com/7d6a3e1a-79ef-4bd5-a759-7bd6f9628e9e": { + "company": "", + "title": "", + "decision": "skip", + "note": "TRIAGE 2026-10-08 (JD read): required enterprise SaaS administration at 1,000+ seats plus Okta/SCIM/SSO identity work - user-confirmed NOT performed 2026-09-18 (claims.json: enterprise SaaS/SSO administration forbidden).", + "date": "2026-10-08" + }, + "https://jobs.postfinance.ch/PostFinance/job/DevOps-Engineer-%28wmd%29/74805-de_DE": { + "company": "", + "title": "", + "decision": "skip", + "note": "TRIAGE 2026-10-08 (JD read): Zofingen (not Bern) / homeoffice, CHF 130-145k = lateral vs current ~135k in band to 160k; required GitOps with ArgoCD and IaC with Kustomize/Helm/Terraform - GitOps and Terraform are forbidden/unverified.", + "date": "2026-10-08" + }, + "https://jobs.admin.ch/offene-stellen/ict-system-engineer-senior-devsecops-gis/f39c122b-cefb-4ce4-a008-991cf75dc70f": { + "company": "", + "title": "", + "decision": "skip", + "note": "TRIAGE 2026-10-08 (JD read): required practical ArcGIS (user-confirmed never used), Red Hat OpenShift and RHEL (0 canonical), and a second official language (FR/IT) - he has DE+EN only. Ref JRQ$540-20505.", + "date": "2026-10-08" + }, + "https://jobs.admin.ch/offene-stellen/devops-engineer-iii-data-platform/0ba9d9e3-dc66-478b-a7ca-deca45f50083": { + "company": "", + "title": "", + "decision": "rejected", + "note": "Same requisition JRQ$540-19848 he applied to and was rejected without interview (see applications.json); this URL is a repost UUID. NOTE 2026-10-08: posting requires 'Aktive Kenntnisse einer zweiten Amtssprache' - plausible, unproven factor in the rejection.", + "date": "2026-10-08" + }, + "https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite/job/Switzerland-Remote/Senior-Production-Engineer----DGX-Cloud_JR2027105": { + "company": "", + "title": "", + "decision": "maybe", + "note": "TRIAGE 2026-10-08 (JD read), NOT a user decision. TOP FIND. JR2027105, posted ~2026-10-06, Switzerland REMOTE or Zurich. Build/operate automation for DGX Cloud inference/agentic endpoints and control plane. Direct: Python, Ansible config mgmt + CloudFormation (JD says IaC, config mgmt OR GitOps), Linux, containers, AWS, SLOs (BS-3), on-call/incident (SW-2), production ML inference in 24/7 fab (BS-1). Adjacent: 8+ yrs production services and large-scale distributed systems; Kubernetes historical; metrics/logs/traces only via BS-4 PoC; networking fundamentals. Stand-out items (vLLM/SGLang/CUDA/Terraform/ArgoCD) are Gap but optional. Rough Evidence Fit ~68 provisional. CAVEAT: NVIDIA Senior DevOps JR2024256 pending since 2026-09-05 - stacking a second cold NVIDIA application is the user's call.", + "date": "2026-10-08" + }, + "https://www.google.com/about/careers/applications/jobs/results/110222556983632582-software-engineer-iii-site-reliability-engineering-prod-ai?location=Switzerland": { + "company": "", + "title": "", + "decision": "maybe", + "note": "TRIAGE 2026-10-08 (JD read), NOT a user decision. Google SWE III SRE, Prod AI, Zurich (Mid). Min quals: degree + 2 yrs software dev - Direct. Preferred 2 yrs designing/troubleshooting large-scale distributed systems - Adjacent. SRE ops evidence strong (SW-2 on-call, BS-6 Linux/Ansible, BS-1 24/7 ML inference). User accepts mid FAANG (memory). Practical: Thun-Zurich ~1h50 - FAANG comp is his named exception. Google 3-per-30-days: no Google submit since 2026-07-27.", + "date": "2026-10-08" + }, + "https://www.google.com/about/careers/applications/jobs/results/86715874555110086-senior-software-engineer-site-reliability-engineering?location=Switzerland": { + "company": "", + "title": "", + "decision": "maybe", + "note": "TRIAGE 2026-10-08 (JD read), NOT a user decision. Google Senior SWE SRE (Technical Infrastructure), Zurich. Min quals: 5 yrs software dev Direct; 3 yrs designing/troubleshooting large-scale distributed systems Adjacent; 2 yrs leading projects/technical leadership Adjacent (Component Owner SW-2, Application Owner BS-3, BDD introduction GN-1). Level-matched alternative to the SRE III Prod AI req.", + "date": "2026-10-08" + }, + "https://www.google.com/about/careers/applications/jobs/results/102064172115600070-staff-software-engineer-shopping-graph?location=Switzerland": { + "company": "", + "title": "", + "decision": "maybe", + "note": "TRIAGE 2026-10-08 (JD read), NOT a user decision. Google Staff SWE, Shopping Graph - Feeds Infra (ingestion infrastructure: files, APIs, crawling; data quality). Min quals: 8 yrs programming in Python/Java/Kotlin - Direct (2015 onward); 5 yrs testing and launching software - Direct-ish; 3 yrs software design/architecture - Adjacent (SW-7 data-product design, duration unconfirmed); GenAI tools/LLM interfaces in workflows - Adjacent (SW-8). On-thesis data-ingestion work; Staff-level tech leadership is the reach. Backend infra, NOT the frontend-gated Commerce Full Stack req.", + "date": "2026-10-08" + }, + "https://jobs.admin.ch/offene-stellen/devsecops-ict-ingenieur-in-professional/9db3251b-9f5c-4836-914e-388112908b93\r": { + "company": "", + "title": "", + "decision": "skip", + "note": "TRIAGE 2026-10-08 (JD read): requires active second official language (DE+EN only); Payerne/Meiringen. Ref JRQ$540-20434.", + "date": "2026-10-08" + }, + "https://jobs.admin.ch/offene-stellen/ict-system-ingenieur-in-senior-backend-services-communication-services/05e1d041-cd48-43f0-bf22-87670490836e\r": { + "company": "", + "title": "", + "decision": "skip", + "note": "TRIAGE 2026-10-08 (JD read): no language line, but required OpenShift (0), broad security-services depth (COMSEC/TRANSEC key management, PKI, IAM/PAM) and ServiceNow ITSM operation, plus leading external DevSecOps engineers - security-services core is a Gap. Ref JRQ$540-20501.", + "date": "2026-10-08" + }, + "https://jobs.admin.ch/offene-stellen/devsecops-ict-ingenieur-in-junior/bcab683d-4647-488b-badb-57f92e835ce6\r": { + "company": "", + "title": "", + "decision": "skip", + "note": "TRIAGE 2026-10-08 (JD read): junior level; requires active second official language. Ref JRQ$540-20435.", + "date": "2026-10-08" + }, + "https://jobs.admin.ch/offene-stellen/ict-test-manager-in-senior/d98cd6a4-bd19-4135-84cf-bb1195378440\r": { + "company": "", + "title": "", + "decision": "skip", + "note": "TRIAGE 2026-10-08 (JD read): requires 'Gute aktive Kenntnisse mindestens einer zweiten Amtssprache' - he has DE+EN only (see memory project_federal_second_language_gate). Ref JRQ$540-20616.", + "date": "2026-10-08" + }, + "https://jobs.ruag.ch/offene-stellen/senior-data-scientist-c5i/c7a39d90-1a8d-4b69-929b-cbd304b94373": { + "company": "", + "title": "", + "decision": "skip", + "note": "TRIAGE 2026-10-08 on TITLE/FAMILY, JD NOT read: data-scientist = model-building, off-thesis per user_positioning; RUAG AI Engineer C5I was rejected after interview 2026. Re-open only if the user asks.", + "date": "2026-10-08" + }, + "https://www.amazon.jobs/en/jobs/10570651/sr-software-engineer-devops-rivr": { + "company": "", + "title": "", + "decision": "maybe", + "note": "TRIAGE 2026-10-08 (JD read), NOT a user decision. AWS/Amazon RIVR (delivery robots) mid-level DevOps, Zurich. Direct: CI/CD (Jenkins, GitLab), Docker/Kubernetes, Git, degree, 3+ yrs DevOps-related. REQUIRED 'C++ build tools (CMake)' - unknown, ask user. Preferred robotics (ED-1 coursework only), Terraform (forbidden), ROS2 (0). PRACTICAL, UNVERIFIED: check Amazon's office-attendance policy for this team before any effort - Thun-Zurich ~1h50 each way.", + "date": "2026-10-08" } } \ No newline at end of file diff --git a/knowledge_base/extractions/2026-09-18_python_frameworks_saas_clarification.md b/knowledge_base/extractions/2026-09-18_python_frameworks_saas_clarification.md new file mode 100644 index 0000000..fdfed73 --- /dev/null +++ b/knowledge_base/extractions/2026-09-18_python_frameworks_saas_clarification.md @@ -0,0 +1,17 @@ +# Python frameworks and enterprise SaaS/SSO — user clarification + +Source: direct user message, 2026-09-18, in response to the job scout fit review. + +Verbatim: + +> i used django, flask and fastAPI for private/hobby projects but not professionally. And i did not administer enterprise SaaS/SSO + +Established facts: + +- Django, Flask and FastAPI have been used in private/hobby projects. +- None of these three frameworks has been used professionally. +- Enterprise SaaS/SSO administration has not been performed. + +Not established: framework-project names, dates, depth, individual ownership scope, scale, deployment status, or whether OAuth/SCIM/Okta were encountered outside enterprise administration. Do not associate framework use with an existing named project without confirmation. + +Canonical destination: PP-4 and the matching skill entries in `resume_builder/canonical/claims.json`. This user clarification supersedes the earlier unverified-framework classification in `thiessen_cv_master_profile.md`; that historical extraction remains unchanged. diff --git a/knowledge_base/extractions/2026-10-03_data_product_design_frontend_clarification.md b/knowledge_base/extractions/2026-10-03_data_product_design_frontend_clarification.md new file mode 100644 index 0000000..97c4868 --- /dev/null +++ b/knowledge_base/extractions/2026-10-03_data_product_design_frontend_clarification.md @@ -0,0 +1,16 @@ +# Data-product design and frontend — user clarification + +Source: direct user message, 2026-10-03, during the Google Commerce fit check. + +Verbatim: + +> NAja, Data Modelling in der aktuellen Position, also entwurf data product und umsetzung. Frontend: Nein + +Established facts: + +- The current Swisscom position includes data modelling, design of data products and their implementation (SW-7). +- The user answered no to frontend experience. Do not claim frontend/UI-development experience or position him as a Full Stack specialist on the basis of backend JavaScript, UI testing, a thesis title or a personal dashboard. + +Not established: the exact duration of design work, the date it began, broader software-architecture scope, or particular frontend technologies. The answer does not erase historical JavaScript backend development or Selenium UI-test automation. + +Canonical destination: SW-7, relational data modelling, and the frontend-development exclusion in `resume_builder/canonical/claims.json`. diff --git a/knowledge_base/extractions/2026-10-08_embedded_coursework_testing_clarification.md b/knowledge_base/extractions/2026-10-08_embedded_coursework_testing_clarification.md new file mode 100644 index 0000000..1acff4a --- /dev/null +++ b/knowledge_base/extractions/2026-10-08_embedded_coursework_testing_clarification.md @@ -0,0 +1,21 @@ +# Embedded coursework and current unit testing — user clarification + +Source: direct user messages, 2026-10-08, during the Kongsberg Seatex *Lead Engineer, DevOps and Test Infrastructure* fit check. + +Verbatim: + +> no embedded work since my studies. But nevertheless, lets try + +Answering *"What embedded work did you do during your studies? Course or project, language, hardware?"* and *"Do you write tests today? ... Which frameworks, such as pytest?"*: + +> 1. Embedded Systems - Using C / C++ and VHDL (with an ARM platform). We also had Robotics. 2. Unit Tests, yes - pytest is known. + +Established facts: + +- During his studies at Universität der Bundeswehr München he took **Embedded Systems**, working in **C/C++ and VHDL** with an **ARM platform**, and had **Robotics** as a subject. +- He has done **no embedded work since his studies** — there is no professional embedded experience. +- He **writes unit tests** today (the question asked about current practice at Swisscom), and he knows **pytest**. + +Not established: which degree (B.Eng. or M.Eng.) the courses belonged to; whether they were lectures, labs or a project; the specific board, FPGA or toolchain; any grade or outcome; whether pytest is the framework used at Swisscom (he named it as known, in answer to "which frameworks"); test scope, coverage or CI integration of the Swisscom unit tests. + +Canonical destination: claims ED-1 and SW-9, skills `embedded systems (coursework)`, `VHDL`, `robotics (coursework)`, `pytest`, `unit testing` in `resume_builder/canonical/claims.json`. diff --git a/output/Google_Senior_SWE_Commerce/jd_google_senior_swe_commerce_2026-10-03.txt b/output/Google_Senior_SWE_Commerce/jd_google_senior_swe_commerce_2026-10-03.txt new file mode 100644 index 0000000..b70a1b8 --- /dev/null +++ b/output/Google_Senior_SWE_Commerce/jd_google_senior_swe_commerce_2026-10-03.txt @@ -0,0 +1,6 @@ +Senior Software Engineer, Full Stack, Commerce +Google — Zürich, Switzerland +Source: https://www.google.com/about/careers/applications/jobs/results/140594136896938694-senior-software-engineer-full-stack-commerce?location=Switzerland +Retrieved: 2026-10-03 via direct public employer HTTP GET; posting body verbatim, whitespace normalized. + +Minimum qualifications: Bachelor’s degree or equivalent practical experience. 5 years of experience with software development in one or more programming languages. 3 years of experience testing, maintaining, or launching software products. 1 year of experience with software design and architecture. Experience in coding with Java or C++, and SQL. Preferred qualifications: Master's degree or PhD in Computer Science or a related technical field. 5 years of experience with data structures and algorithms. 1 year of experience in a technical leadership role. Experience with Data Analysis and Data Processing. Experience developing accessible technologies. About the job Google's software engineers develop the next-generation technologies that change how billions of users connect, explore, and interact with information and one another. Our products need to handle information at massive scale, and extend well beyond web search. We're looking for engineers who bring fresh ideas from all areas, including information retrieval, distributed computing, large-scale system design, networking and data storage, security, artificial intelligence, natural language processing, UI design and mobile; the list goes on and is growing every day. As a software engineer, you will work on a specific project critical to Google’s needs with opportunities to switch teams and projects as you and our fast-paced business grow and evolve. We need our engineers to be versatile, display leadership qualities and be enthusiastic to take on new problems across the full-stack as we continue to push technology forward. People shop on Google more than a billion times a day - and the Commerce team is responsible for building the experiences that serve these users. The mission for Google Commerce is to be an essential part of the shopping journey for consumers - from inspiration to to a simple and secure checkout experience - and the best place for retailers/merchants to connect with consumers. We support and partner with the commerce ecosystem, from large retailers to small local merchants, to give them the tools, technology and scale to thrive in today’s digital world. Responsibilities Write and test product or system development code. Participate in, or lead design reviews with peers and stakeholders to decide amongst available technologies. Review code developed by other developers and provide feedback to ensure best practices (e.g., style guidelines, checking code in, accuracy, testability, and efficiency). Contribute to existing documentation or educational content and adapt content based on product/program updates and user feedback. Triage product or system issues and debug/track/resolve by analyzing the sources of issues and the impact on hardware, network, or service operations and quality. diff --git a/output/Google_Senior_SWE_Commerce/session_google_senior_swe_commerce.md b/output/Google_Senior_SWE_Commerce/session_google_senior_swe_commerce.md new file mode 100644 index 0000000..6b1112e --- /dev/null +++ b/output/Google_Senior_SWE_Commerce/session_google_senior_swe_commerce.md @@ -0,0 +1,111 @@ +# Session: Google — Senior Software Engineer, Full Stack, Commerce + +## JD Integrity +- Source: https://www.google.com/about/careers/applications/jobs/results/140594136896938694-senior-software-engineer-full-stack-commerce?location=Switzerland +- Requisition: 140594136896938694; Zürich, Switzerland. +- Retrieval method/date: direct public employer HTTP GET, 2026-10-03, HTTP 200. Substantive requirements and responsibilities verified. +- Verbatim posting: YES, posting body preserved with whitespace normalized in `jd_google_senior_swe_commerce_2026-10-03.txt`; full employer HTML also saved. +- Posting status: accessible and active in employer search on retrieval; no recruiter confirmation of hiring activity. +- Prior applications: no application to this requisition in the registry. Last dated Google submission in registry is 2026-07-27. A distinct FDE GenAI record remains paused, not silently withdrawn. Registry has no recorded Google submissions in the past 30 days; portal history must be checked before actual submission. + +## Application Decision +- User directive, 2026-10-03: pursue Google from the scout shortlist. The assistant initially selected Senior Commerce; the user did not explicitly choose that requisition over SWE III Shopping Ads. +- Audience: International Tech, English, two pages. +- Evidence Fit: **73/100 initial provisional score**, before the user's clarification; not reassessed or promoted after the confirmed gap. +- Fit class: **NO-GO under project fit policy**. The confirmed title-defining Full Stack gap overrides the initial score. +- Hard gate: **FAIL (project title-defining capability rule)**. User denied frontend experience on 2026-10-03. This is our interpretation of the Full Stack title, not an assertion that Google lists a separate frontend minimum. Current data-product modelling, design and implementation are confirmed; the required one-year design/architecture duration is still not explicitly established. +- Practical constraints: Swiss authorization Direct (German/EU citizen, Swiss B permit, no sponsorship). Zürich office requirement/travel pattern and Swiss compensation are unpublished and unresolved. User selected this opportunity after these uncertainties were surfaced in the scout; preparation is authorized, no claim that the practical gate is cleared. +- Channel Strength: Weak/unestablished. No named recruiter or hiring manager on the retrieved posting. Before submission look for an existing Google connection/referral; no messages authorized or sent. +- Decision: HOLD Commerce drafting. Alternative Shopping Ads has directly supported stated minimum qualifications but is Mid-level; user asked to select that alternative, further Google Senior research, or an explicit override of the Commerce gap. No override received. +- No application submitted; no submission date recorded. + +## Initial Evidence Fit breakdown — before user clarification +| Dimension | Maximum | Provisional score | Reason | +|---|---:|---:|---| +| Required qualifications | 35 | 29 | Degree, software tenure, production/testing and Java/SQL are Direct. Design work is evidenced, required duration pending. | +| Core responsibilities | 25 | 18 | Development, testing, incident diagnosis and documentation Direct; formal code-review/design-review practice and frontend depth unconfirmed. | +| Level and ownership | 15 | 11 | Staff promotion, component/application ownership and technical test responsibility. Senior product SWE function is a transfer from current data engineering. | +| Recency and depth | 10 | 7 | Current Python/SQL delivery; professional Java historical, latest Bosch work ended 2022. | +| Domain/tool transfer | 10 | 6 | Professional backend and data-processing evidence; no Commerce domain or Google-scale product ownership claimed. | +| Practical constraints | 5 | 2 | Swiss location, authorization and English Direct; office requirement and acceptable package unknown. | +| Total | 100 | 73 | Provisional assessment; hard gates override the number. | + +## Requirements +| # | Requirement | Priority | Assessment | Canonical evidence | Gate | +|---|---|---|---|---|---| +| Q1 | Bachelor's degree or equivalent | Required | Direct | EDU-BENG, EDU-MENG | Pass | +| Q2 | Five years software development | Required | Direct across professional roles; no FTE-year claim | GN-3, VZ-1, FC-1/FC-3, BS-2, SW-1/SW-3 | Pass | +| Q3 | Three years testing, maintaining or launching software | Required | Direct cumulative professional testing/maintenance and production operation | GN-1/GN-3, VZ-2, FC-1, BS-3, SW-2 | Pass | +| Q4 | One year software design/architecture | Required | Current data-product modelling/design/implementation confirmed 2026-10-03; explicit duration still unconfirmed | GN-3 design contributions; BS-1 integration strategies; SW-7 scoped data-product design | Unknown | +| Q5 | Coding with Java or C++, and SQL | Required | Direct professional Java/SQL; historical Java stated explicitly. Limited C++ supplementary only | GN-3, BS-2, SW-2/SW-7, VZ-1 | Pass | +| P1 | Master's/PhD related field | Preferred | Direct | EDU-MENG, Software Design & Engineering focus | — | +| P2 | Five years data structures and algorithms | Preferred | Gap in documented duration/depth; no invented duration from ordinary coding | No explicit canonical evidence for five years | — | +| P3 | One year technical leadership | Preferred | Adjacent; test-suite responsibility and student supervision are genuine, exact duration/scope pending | GN-1, BS-7 | — | +| P4 | Data analysis/data processing | Preferred | Direct | SW-1/SW-6/SW-7, BS-2/BS-5/BS-8 | — | +| P5 | Accessible technologies | Preferred | Gap | No canonical accessibility evidence | — | +| R1 | Write/test product or system code | Core duty | Direct | GN-3, VZ-1/VZ-2, FC-1, BS-2, SW-1/SW-3 | — | +| R2 | Participate in or lead design reviews | Core duty | Adjacent; architecture contributions evidenced, formal review practice not explicit | GN-3, BS-1 | Clarify | +| R3 | Review colleagues' code | Core duty | Unrecorded; no code-review claim inferred from seniority | None explicit | Clarify before claiming | +| R4 | Documentation/educational content | Core duty | Direct | BS-3, GN-1, SW-7 | — | +| R5 | Triage/debug software/system issues | Core duty | Direct | GN-3, FC-1, SW-2 | — | +| R6 | Full Stack versatility | Title/core function | Gap: user denied frontend experience 2026-10-03. FC-3 backend JavaScript, GN-1 UI tests and PP-1 dashboard do not establish frontend development | Direct user clarification; canonical frontend-development exclusion | Fail under project title-defining rule | +| C1 | Work authorization/location | Practical | Swiss work authorization Direct; office days/commute not verified | Canonical identity | Partial | + +## Competitive Read +- Obvious-fit competitor: recent Java/C++ product developer with demonstrated design/code reviews, UI integration and algorithm interview readiness. +- Dennis's strengths: Python/SQL/data-processing depth, technical production ownership, genuine software-testing experience and historical Java delivery; promoted at Swisscom and Bosch. +- Competitor advantages: recent product/fullstack/Commerce experience and closer stack/algorithm match. +- Do not equate Swisscom Staff title with a Google level. Google-scale users are employer context, never personal impact. + +## Framing Strategy +- Identity: Staff Data, Analytics & AI Engineer with production software, testing and backend/data engineering experience. +- Headline proposal: `Software & Data Engineering | Python, SQL | Production Systems` — a professional focus, not an invented historical title. +- Short summary: current Staff role, professional software-delivery breadth and application/component accountability. Do not label Dennis a Full Stack specialist; user denied frontend experience. +- Java in a historical professional context; current Python/SQL named plainly. Avoid using limited Vizrt C++ as the main qualification path. +- Put development/test/design evidence forward within reverse chronological employers. Omit Security Champion, finance/trading project, ML-training claims, grades and military service as low relevance. +- No verified numerical outcome metrics; do not add estimates. + +## Initial Resume Plan — retained for review, drafting held +Google preparation was authorized; this assistant-selected requisition now has a confirmed title-defining gap. The initial content plan below is retained as preparation history, not approved for generation. Under the make-resume fit rule, proceeding with Commerce requires an explicit user override of the stated gap. Choosing another role requires a fresh role-specific fit and content plan. + +| Role/order | Proposed content | Canonical IDs | Evidence and scope | Role relevance | +|---|---|---|---|---| +| Swisscom 1 | Implement Python/PySpark migration work for pipelines in the Fulfillment and Product Analysis domains on AWS Glue, contributing to Swisscom's wider programme. | SW-1, SW-6 | Professional/current; owned-domain implementation, not company-wide migration lead | Current development | +| Swisscom 2 | Design and implement governed data products through logical/physical relational modelling, and onboard source data within Swisscom's shared Data Mesh. | SW-7 | Professional/current; scoped data-product design confirmed 2026-10-03, not mesh/framework ownership; exact design duration unconfirmed | Data processing/design | +| Swisscom 3 | Built and operated Python applications on Kubernetes, deployed through automated GitLab CI/CD pipelines across multiple environments. | SW-3 | Professional/historical; did not build CI/CD automation | Software delivery | +| Swisscom 4 | Served as Component Owner for Fulfillment ETL into Teradata, covering incident root-cause analysis and second-/third-level support with on-call responsibility. | SW-2 | Professional/historical; component scope only | Debugging/production ownership | +| Swisscom 5 | Delivered data products and analyses with internal B2B stakeholders and product owners. | SW-4 | Professional/historical; internal collaboration | Product/stakeholder relevance | +| Bosch 1 | Developed data services in Python and Java over Oracle and Hadoop/Impala for semiconductor analysis teams. | BS-2 | Professional/historical; Python primary, Java genuine but historical | Java/backend/SQL evidence | +| Bosch 2 | Integrated containerized ML inference into continuously operating semiconductor production using Docker, Kubernetes and Ansible. | BS-1 | Professional/historical; integration strategy and execution, not model training | Design-to-operation lifecycle | +| Bosch 3 | Served as Application Owner for analytics software, with SLO definition, user documentation and coordination with vendors/internal customers. | BS-3 | Professional/historical; own applications, not shared enterprise platform | Operation/documentation | +| Bosch 4 | Developed Ansible extensions, including a credential-caching plugin that reduced password-keystore lookups. | BS-6 | Professional/historical; individual extension, unquantified impact | Specific software engineering | +| Fraunhofer 1 | Developed and maintained crew-scheduling software in C#/Entity Framework/SQL Server and introduced Jenkins build jobs for automated deployment. | FC-1 | Professional/historical; individual development/CI setup | Software lifecycle | +| Vizrt 1 | Contributed Python/C++ work to a distributed transcoding backend; developed automated test suites integrated as CI/CD quality gates. | VZ-1, VZ-2 | Backend contributor; test-suite ownership; no broadcaster-delivery claim | Development/testing | +| Generali 1 | Developed Java/J2EE workflow features and fixes, contributed to service design/architecture decisions and held technical responsibility for BDD automation. | GN-3, GN-1 | Individual development/testing; contributing architecture scope only | Java/design/test evidence | + +- Total: approximately 12 bullets, with content-driven line lengths. +- Generali may receive a second bullet separating Java/design from BDD if combining them hurts readability; older-role allocation is a guide, not a truth/fit rule. +- Skills: Python/SQL; Java historical with role context; backend/data processing and relational databases; Git/GitLab/Jenkins/testing; AWS/container delivery selected compactly. +- Credentials: iSAQB CPSA-F and AWS SAA once, preferably at the end. Education from canonical dates, overlapping degrees preserved. +- Impact evidence still needed: no numerical metric requested; omit all unverified quantities. + +## Cover Letter Decision +- **NO**, unless the actual application portal makes it mandatory. +- Reason: International Tech role; no additional verified Commerce motivation or personal connection beyond the resume. A generic letter would repeat professional evidence. + +## Output Files +- JD: `jd_google_senior_swe_commerce_2026-10-03.txt` and full HTML. +- Session: this file. +- Resume source/PDF: not generated; Commerce has a confirmed title-defining frontend gap. +- Cover letter: intentionally omitted. +- Critique: not yet applicable; no document produced. + +## Status +- Canonical preflight: PASS, zero advisory warnings, 2026-10-03. +- JD: live body retrieved and saved. +- Fit: NO-GO for Commerce under the project title-defining capability rule; frontend denied, scoped data-product design confirmed, exact design duration unknown. +- Content plan: complete, from canonical evidence and selected experience files; no historical resume used. +- Resume/visual QA: pending; do not claim finished. +- Application/outcome: open/preparation, not submitted. +- Next: await role choice (Shopping Ads Mid-level, further Google Senior research, or explicit Commerce gap override). No unsupported frontend or duration claims may be added. JD comparison is in `job_scout/reports/2026-10-03-google-role-comparison.md`. +- Workflow: make-resume, shared instructions. User's instruction to pursue Google covers preparation and routine drafting choices; no extra content-plan permission gate is imposed. Evidence gaps must not be filled by assumption. diff --git a/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/critique_kongsberg_devops_test_infra.md b/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/critique_kongsberg_devops_test_infra.md new file mode 100644 index 0000000..6c1039c --- /dev/null +++ b/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/critique_kongsberg_devops_test_infra.md @@ -0,0 +1,123 @@ +# Critique: Kongsberg Discovery (Seatex) — Lead Engineer, DevOps and Test Infrastructure + +- Date: 2026-10-08 +- Documents: `e2e_kongsberg_devops_test_infra_resume.tex` (2 pages), `e2e_kongsberg_devops_test_infra_cover_letter.tex` (1 page, 244 words) + `.txt` paste version +- JD: `jd_kongsberg_devops_test_infra.md` — verbatim, live-scraped 2026-10-08, NAV-confirmed (Engelsk, deadline 11.10.2026) +- Validator: PASS on both documents, 0 advisory warnings + +## 1. Fit Verdict and Hard Gates + +**Hard gate: FAIL (strict reading), knowingly overridden by the user on 2026-10-08.** + +- *"Experience working with embedded SW and Linux"* (required): Linux **Direct** (BS-6, PP-3). Embedded is **academic only** (ED-1: Embedded Systems coursework in C/C++ and VHDL with an ARM platform, about 13 years ago; none since). Coursework is real but is not the experience the line asks for, so the half-gap stands. +- Security clearance: the JD says it *"may"* be required. **Unresolved**, and with no contact planned it stays unresolved until a screen. +- On-site Trondheim: the user deferred the relocation decision to offer stage. That is not treated as a pre-apply blocker, but a recruiter will ask. + +**This package is not "recommended for submission" by the gate rules.** It is a deliberate override application with the gap disclosed honestly. That is a legitimate choice. Record it as such so the feedback loop can read the outcome correctly. + +## 2. Evidence Fit — 69 / 100 (Adjacent by number; hard gate overrides) + +| Dimension | Weight | Score | Basis | +|---|---:|---:|---| +| Required qualifications | 35 | 26 | Degree, DevOps+testing, SW development, Linux, applied AI and Docker are Direct. Embedded is academic only (ED-1). | +| Core responsibilities | 25 | 18 | Built test and delivery environments (FC-1, VZ-2, GN-1) and Linux automation (BS-6), and enabled developers (GN-1 training). "Develop SW for products" on embedded products is unproven. | +| Level and ownership | 15 | 11 | Senior IC, decide-and-implement scope. Component Owner (SW-2) and Application Owner (BS-3) show ownership. No people management is claimed or needed. | +| Recency and depth | 10 | 6 | The test-automation core is 2015–2018 and the infrastructure automation runs to 2022. Current unit testing (SW-9) adds a little. Swisscom CI/CD was used, not built (SW-3). | +| Domain/tool transfer | 10 | 6 | Maritime research (FC-1..3) and prior Norway employment. The embedded toolchain (cross-compilation, HIL, Yocto-type builds) is unknown. | +| Practical constraints | 5 | 2 | English working language and EEA free movement are fine. Clearance is open; relocation is deferred. | + +Up from 67 at triage, because coursework (ED-1) and current unit testing (SW-9) are now recorded. + +## 3. Document Quality — 84 / 100 + +| Dimension | Weight | Score | Basis | +|---|---:|---:|---| +| Truth and provenance | 25 | 22 | Every claim traces to a canonical ID with allowed verbs (audit below). −3: the unit-test clause and pytest are pending confirmation, and the past-phase Swisscom lead bullet can read as current. | +| Information hierarchy | 20 | 18 | Employer/dates then title/location, verified in `pdftotext`. Swisscom and all of Bosch are on page 1. Experience starts about mid-page after a 7-line profile and an 8-line skills block, within guidance. | +| Bullet evidence and impact | 20 | 14 | Specific and scoped (credential-caching plugin, "a defect could have stopped production"). No verified outcomes exist, so most bullets describe work rather than results, which is honest but limits impact. | +| Relevance and terminology | 15 | 12 | DevOps, Linux, Docker, CI/CD, Jenkins, GitLab, test automation, AI and Python all appear naturally. "Embedded" appears only in coursework, which is accurate and the unavoidable cost. | +| Skills evidence | 10 | 9 | All skills are canonical; historical tools are labelled. pytest is pending. The AI line's "Containerized ML inference in production" is Bosch-historical but unlabelled. | +| Mechanics/readability | 10 | 9 | 2 pages, 0 overfull boxes, clean parse, cadence warnings 0. Some page-2 white space; no filler, which is correct. | + +Truth/provenance is 22/25 (8.8/10), above the 8/10 failure line. + +## 4. Channel Strength — Weak + +Cold submission through EasyCruit. A named, reachable contact is published (Are B. Willumsen, Group manager SW Architects, email and phone). **User decision 2026-10-08: no email will be sent.** That overrides the standing channel rule in `application_strategy.md` for this application. It is recorded as a deliberate cold submit, which keeps the warm-vs-cold comparison clean. + +## 5. Competitive Read and Reader Sequence + +- **Obvious-fit competitor:** a Trondheim DevOps/test engineer from an embedded shop (NTNU pool, Nordic Semiconductor, Kongsberg itself). They would have cross-compilation, HIL/test-rig and firmware-in-CI experience, speak Norwegian and need no relocation. +- **Dennis's real advantage:** the full test → CI → Linux automation → production-ML path. That includes production AI integration (a named requirement most embedded DevOps candidates lack), Ansible extension development, ten years of personal Linux operation and prior Norway employment. +- **Their real advantage:** embedded targets, and they are local. That is the decisive line for a team whose products are sensors and positioning hardware. Do not value the coursework bridge like their direct experience. + +| Reader | Verdict | Reason | +|---|---|---| +| Parser/ATS (EasyCruit) | Pass | Single-column text extracts in order; key terms present. The form re-parses into structured fields, so check them by hand. | +| Recruiter glance | **Borderline** | The current title reads "Data, Analytics & AI", with a Swiss address and no relocation statement. Page 1 recovers this with the DevOps/test profile and the Bosch infrastructure bullets. | +| Hiring manager | **Maybe** | Strong if the next step is CI/test-environment engineering on Linux. No if the test infrastructure is mostly embedded targets and HIL rigs. | +| Technical reviewer | Credible, with two challenges | (1) "What have you done on embedded targets: cross-compiling, flashing, HIL?" (2) "Your test automation is from 2015–18 and you used Swisscom's CI/CD rather than built it. What DevOps tooling have you designed recently?" Best answers: the Bosch Ansible extensions and Linux automation (2020–22), current unit testing, and honest coursework framing. | + +**Likely screen questions with no email sent:** relocation to Trondheim (he decides at offer, so say he is open to it if the role fits), clearance eligibility as a German citizen living in Switzerland, and on-site expectations. + +## 6. Claim Audit + +| Claim | Canonical ID/evidence | Direct/Adjacent | Safe? | Fix | +|---|---|---|---|---| +| Headline "Software Engineer \| Test Automation, CI/CD and Linux Infrastructure \| Production ML Integration" | Umbrella identity over GN/VZ/FC/BS/SW | Direct | Yes | — | +| "EU citizen (no Norwegian work permit needed)" | identity.citizenship; EEA free movement | Direct | Yes | — | +| "Over ten years in production software, starting in test automation" | Visible record from Generali 2015-05; GN-1 | Direct | Yes. "Starting in" slightly simplifies Generali, which also included Java development (GN-3) | Optional: "with roots in test automation" | +| KQ: BDD at Generali, quality gates at Vizrt, Jenkins at Fraunhofer | GN-1, VZ-2, FC-1 | Direct | Yes | — | +| KQ: "administered the Bosch fab-analytics Linux estate with Ansible and developed custom Ansible extensions" | BS-6 | Direct | Yes. "Administered", not "owned"; BS-6 forbidden list respected | — | +| KQ: "self-hosted Debian server run and hardened for about ten years" | PP-3 | Direct (personal) | Yes, labelled private | — | +| KQ: ML inference in a 24/7 fab; LLM assistants and AI coding tools | BS-1, SW-8 | Direct | Yes | — | +| Skills: all lines | skills array (incl. Jenkins and GitLab CI/CD registered 2026-10-08) | Direct | Yes. Historical tools labelled | AI line: label ML inference as earlier role | +| Skills: "Unit testing (pytest)" | SW-9, pytest skill | Direct / **pending** | **Pending.** User said "pytest is known"; Swisscom use not confirmed | **Tier 1: confirm** | +| SW: "Deployed and operated Python applications on Kubernetes through automated GitLab CI/CD pipelines spanning multiple environments" | SW-3 (past, ART B2B) | Direct | Yes. Past tense, "through" not "built" | Tier 2: make the past phase visible | +| SW: Component Owner, Fulfillment ETL into Teradata, 2nd/3rd-level and on-call | SW-2 (past) | Direct | Yes | — | +| SW: "Migrating the ETL pipelines of owned data domains to AWS within the company-wide programme … with unit tests for the pipeline code" | SW-1, SW-6, SW-9 | Direct / **pending** | Migration is scoped correctly. **The unit-test clause attaches tests to pipeline code, which SW-9 does not establish** | **Tier 1: confirm or drop the clause** | +| SW: LLM assistants, selecting models and supplying curated knowledge | SW-8 | Direct | Yes. No "built/deployed LLM systems" | — | +| BS: Linux server estate, Ansible in Git, run from Jenkins/GitLab | BS-6 | Direct | Yes. No GitOps | — | +| BS: credential plugin with local caching to cut lookup volume | BS-6 | Direct | Yes. No figure | — | +| BS: containerized ML inference, defect could have stopped production | BS-1 | Direct | Yes. Failure-consequence wording as required; no model-training claim | — | +| BS: technical Application Owner, KLA DMS and Spotfire | BS-3, BS-5 | Direct | Yes | — | +| FC: Jenkins build jobs for automatic deployment; Docker microservices | FC-1, FC-3 | Direct | Yes. No "quality gates" or "first" (experience-file overclaims avoided) | — | +| VZ: test suites as CI/CD quality gates; Python and C++ to transcoding backend | VZ-2, VZ-1 | Direct / contributor | Yes. "Contributed", no broadcaster names | — | +| GN: introduced BDD, technical responsibility, Jenkins jobs, trained, presented | GN-1 | Direct | Yes | — | +| Bundeswehr: officer training, six years, Second Lieutenant | BW-1 | Direct | Yes. No clearance, NATO or command implied | — | +| Education: thesis line | EDU-MENG thesis_title, thesis_methods | Direct | Yes. Described as a system, no accuracy claims | — | +| Education: "Coursework: Embedded Systems (C/C++ and VHDL with an ARM platform); Robotics" | ED-1 | Academic | Yes. Labelled coursework and unattributed to a degree, as ED-1 requires | Attach to a degree once the user says which | +| Capgemini | document_exclusions | — | Absent, correct | Check EasyCruit's parsed fields | + +## 7. Fixes + +### Tier 1 — truth (must be resolved before submission) +1. **Unit-test scope and pytest.** Ask: does he unit-test the Glue/pipeline code at Swisscom, and with pytest? If yes, keep both and update SW-9. If no, drop "with unit tests for the pipeline code" from the Swisscom bullet and change the skill to "Unit testing (Python)". + +### Tier 2 — presentation +1. **Make the Swisscom lead bullet's phase visible.** It is past-phase (ART B2B) but leads a "Present" role, so a reader may take Kubernetes as current work. Suggested: *"On the earlier B2B platform, deployed and operated Python applications on Kubernetes through automated GitLab CI/CD pipelines spanning multiple environments."* No unit dates, consistent with the org_history rule. +2. **AI skills line consistency:** "Containerized ML inference in production (earlier role); LLM assistants, LiteLLM, Copilot, Kiro". +3. **Coursework attribution:** move the line under the right degree once the user says which. +4. **Optional:** "starting in test automation" → "with roots in test automation". + +### Portal (not document) checks +- EasyCruit re-parses the CV and offers a LinkedIn import into structured Work experience/Education fields. **Make sure Capgemini does not appear there.** +- Gender and date of birth are optional; leave them blank (standing preference). "Where did you first find out": Kongsberg.com or Nav.no. +- Paste the letter from the `.txt` file into the Cover letter box. + +## 8. Cover Letter + +- **Should it exist?** Yes. The portal has a dedicated field, a letter is the norm for Norway (`cl_reference.md`), and it carries a transition explanation the resume cannot. +- **Does it add information?** Partly. Paragraph 1 frames the JD's own *"investigate options, decide on solutions, implement"* as his working pattern, but the three examples in it are resume bullets restated. Paragraph 2 adds what the resume cannot: the honest embedded bridge, the personal-Linux motivation and the AI link. Paragraph 3 adds the Norway connection. +- **Claims:** all trace (GN-1, FC-1, BS-6, BS-1, SW-8, ED-1, PP-3, VIZRT). The post-review wording "the infrastructure side that embedded teams rely on" correctly avoids implying embedded CI experience. +- **Risk:** opening a gap sentence with "I will be straightforward about the gap" is a choice. It is short and evidence-led, and the reader will see the gap anyway, so it is kept. There is no relocation statement, as the user wants, so expect the question at the screen. +- **Optional Tier 2:** cut one of the three paragraph-1 examples (Fraunhofer is the weakest) to reduce overlap with the resume. +- Date is a literal 9 October 2026; change it if submitted on the 10th or 11th. + +## 9. Mechanical Verification + +- Validator: PASS (resume + letter), 0 advisory warnings, cadence clean. +- Resume: 2 pages, 0 overfull boxes, page break falls after Bosch, footer page numbers present. +- Letter: 1 page, 244 words. +- `pdftotext`: employer → dates, title → location on every entry; reverse-chronological; certifications appear once; contact line complete; no Capgemini, no LOC or test counts, no unverified metrics. +- Hyphenation: English patterns, no bad breaks found on visual inspection. diff --git a/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/e2e_kongsberg_devops_test_infra_cover_letter.tex b/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/e2e_kongsberg_devops_test_infra_cover_letter.tex new file mode 100644 index 0000000..fac28d6 --- /dev/null +++ b/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/e2e_kongsberg_devops_test_infra_cover_letter.tex @@ -0,0 +1,50 @@ +% Kongsberg Discovery / Seatex -- Lead Engineer, DevOps and Test Infrastructure +% Cover Letter Decision: YES (session_kongsberg_devops_test_infra.md). Portal: EasyCruit +% plain-text "Cover letter" field -- paste the body from the matching .txt file. +% Claims used: GN-1, FC-1, BS-6, BS-1, SW-8, ED-1, PP-3, VIZRT employment. All appear on the resume. + +\documentclass[11pt,a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage[a4paper,left=0.85in,right=0.85in,top=0.7in,bottom=0.7in]{geometry} +\usepackage{parskip} +\usepackage{xcolor} +\usepackage{hyperref} +\hypersetup{hidelinks} +\pagestyle{empty} +\setlength{\parindent}{0pt} + +\begin{document} + +{\Large\bfseries Dennis Thiessen, M.Eng.}\par +Bern, Switzerland $\vert$ +\href{mailto:dennis@thiessen.io}{dennis@thiessen.io} $\vert$ +41 795 955 585 $\vert$ +\href{https://linkedin.com/in/dennis-thiessen}{LinkedIn} + +\vspace{1.5em} +Are B. Willumsen, Group Manager SW Architects\\ +Kongsberg Discovery -- Seatex\\ +Pirsenteret, Havnegata 9, 7010 Trondheim, Norway + +\vspace{1em} +9 October 2026 + +\vspace{1em} +\textbf{Application for Lead Engineer, DevOps and Test Infrastructure} + +\vspace{0.8em} +Dear Are Willumsen, + +Your posting describes the job as investigating options, deciding on solutions and implementing them, then helping developers make good use of what was built. That matches how I have worked on test and delivery tooling before. At Generali I introduced behaviour-driven test automation with a proof of concept, took technical responsibility for the suite and trained the project team to work with it. At Fraunhofer I introduced Jenkins and set up the jobs that deployed our software automatically. At Bosch I administered and automated the Linux servers behind the fab's analytics and ML workloads with Ansible, including extensions I developed myself. + +I will be straightforward about the gap: my embedded experience comes from my studies, where I worked in C/C++ and VHDL with an ARM platform, not from industry. What I bring is the infrastructure side that embedded teams rely on -- Linux, containers, CI pipelines and test automation -- and practical AI experience, from integrating ML inference into a 24/7 semiconductor fab to using LLM tools in my current work at Swisscom. Linux infrastructure is also what I do in my spare time: I have run and hardened my own Debian server for about ten years. + +I have worked in Norway before, at Vizrt in Bergen, and I value working across Norwegian, German and Swiss teams. I would welcome a conversation about where you want to take Seatex's DevOps and test infrastructure next. + +Kind regards, + +\vspace{1.5em} +Dennis Thiessen + +\end{document} diff --git a/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/e2e_kongsberg_devops_test_infra_cover_letter.txt b/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/e2e_kongsberg_devops_test_infra_cover_letter.txt new file mode 100644 index 0000000..28b4a63 --- /dev/null +++ b/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/e2e_kongsberg_devops_test_infra_cover_letter.txt @@ -0,0 +1,11 @@ +Dear Are Willumsen, + +Your posting describes the job as investigating options, deciding on solutions and implementing them, then helping developers make good use of what was built. That matches how I have worked on test and delivery tooling before. At Generali I introduced behaviour-driven test automation with a proof of concept, took technical responsibility for the suite and trained the project team to work with it. At Fraunhofer I introduced Jenkins and set up the jobs that deployed our software automatically. At Bosch I administered and automated the Linux servers behind the fab's analytics and ML workloads with Ansible, including extensions I developed myself. + +I will be straightforward about the gap: my embedded experience comes from my studies, where I worked in C/C++ and VHDL with an ARM platform, not from industry. What I bring is the infrastructure side that embedded teams rely on - Linux, containers, CI pipelines and test automation - and practical AI experience, from integrating ML inference into a 24/7 semiconductor fab to using LLM tools in my current work at Swisscom. Linux infrastructure is also what I do in my spare time: I have run and hardened my own Debian server for about ten years. + +I have worked in Norway before, at Vizrt in Bergen, and I value working across Norwegian, German and Swiss teams. I would welcome a conversation about where you want to take Seatex's DevOps and test infrastructure next. + +Kind regards, +Dennis Thiessen ++41 795 955 585 | dennis@thiessen.io diff --git a/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/e2e_kongsberg_devops_test_infra_resume.tex b/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/e2e_kongsberg_devops_test_infra_resume.tex new file mode 100644 index 0000000..1e5d22f --- /dev/null +++ b/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/e2e_kongsberg_devops_test_infra_resume.tex @@ -0,0 +1,89 @@ +% Kongsberg Discovery / Seatex -- Lead Engineer, DevOps and Test Infrastructure (Trondheim) +% Audience profile: Norway (English posting). Generated 2026-10-08 from claims.json only. +% Session: session_kongsberg_devops_test_infra.md + +\documentclass{resume} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage[a4paper,left=0.65in,right=0.65in,top=0.55in,bottom=0.55in]{geometry} +\usepackage{xcolor} +\usepackage{hyperref} +\hypersetup{hidelinks} +\usepackage[version=4]{mhchem} +\usepackage{fancyhdr} +\pagestyle{fancy} +\fancyhf{} +\renewcommand{\headrulewidth}{0pt} +\fancyfoot[R]{\small \thepage/\pageref{LastPage}} + +\name{Dennis Thiessen, M.Eng.} +\headline{Software Engineer $\vert$ Test Automation, CI/CD and Linux Infrastructure $\vert$ Production ML Integration} +\contactline{Bern, Switzerland $\vert$ \href{mailto:dennis@thiessen.io}{dennis@thiessen.io} $\vert$ +41 795 955 585 $\vert$ \href{https://linkedin.com/in/dennis-thiessen}{LinkedIn} $\vert$ EU citizen (no Norwegian work permit needed)} + +\begin{document} + +\begin{rSection}{Key Qualifications} +\begin{itemize}[leftmargin=1.25em,label=\textbullet,itemsep=0.12em,topsep=0.1em,parsep=0pt,partopsep=0pt] +\item Over ten years in production software, starting in test automation: introduced BDD test automation at Generali, integrated test suites into CI/CD quality gates at Vizrt in Bergen, and set up Jenkins deployment jobs at Fraunhofer. +\item Linux and automation: administered the Bosch fab-analytics Linux estate with Ansible and developed custom Ansible extensions; privately, a self-hosted Debian server run and hardened for about ten years. +\item Applied AI: integrated ML inference into a 24/7 semiconductor fab; work with LLM assistants and AI coding tools at Swisscom. +\end{itemize} +\end{rSection} + +\begin{rSection}{Technical Skills} +\raggedright +\skillline{Languages}{Python, Bash, SQL; Java, Kotlin and C\# (earlier roles); C++ (limited)} +\skillline{DevOps and infrastructure}{Linux administration, Docker, AWS, CloudFormation; Ansible, Jenkins, GitLab CI/CD and Kubernetes (earlier roles)} +\skillline{Testing}{Unit testing (pytest); BDD (Serenity-BDD, JBehave), Selenium and CI/CD quality gates (earlier roles)} +\skillline{AI}{Containerized ML inference in production; LLM assistants, LiteLLM, Copilot, Kiro} +\skillline{Certifications}{\mbox{AWS Solutions Architect -- Associate}; \mbox{IBM AI Engineering}; \mbox{iSAQB CPSA-F}; \mbox{ITIL Foundation}} +\skillline{Spoken languages}{German (native), English (fluent), Norwegian (basic)} +\end{rSection} + +\begin{rSection}{Professional Experience} + +\begin{rSubsection}{Swisscom (Schweiz) AG}{Oct 2023 -- Present}{Staff Data, Analytics \& AI Engineer (promoted from Senior, Apr 2025)}{Bern, Switzerland} +\item Deployed and operated Python applications on Kubernetes through automated GitLab CI/CD pipelines spanning multiple environments. +\item As Component Owner, operated the Fulfillment ETL pipelines into the Teradata data warehouse and carried their 2nd/3rd-level support and on-call duty. +\item Migrating the ETL pipelines of owned data domains to AWS within the company-wide programme, as Python and PySpark Glue jobs orchestrated by Airflow, with unit tests for the pipeline code. +\item Configured domain-grounded LLM assistants in an internal Swisscom web interface, selecting the models and supplying curated domain knowledge. +\end{rSubsection} + +\begin{rSubsection}{Robert Bosch Semiconductor Manufacturing Dresden GmbH}{Feb 2020 -- Dec 2022}{Senior Data Engineer, Data Analysis (promoted from Data Engineer, Jan 2021)}{Dresden, Germany} +\item Administered and automated the Linux server estate behind fab analytics and ML workloads (ML platform hosts, Docker hosts, backend services), with Ansible playbooks versioned in Git and executed from Jenkins and GitLab pipelines. +\item Developed Ansible extensions, among them a credential plugin that fetched secrets from a password keystore and cached them locally to cut lookup volume. +\item Integrated containerized ML inference for image-based defect classification into a continuously operating fab, where a software defect could have stopped production; deployed on Kubernetes with Ansible. +\item Served as technical Application Owner for the KLA Defect Management System and TIBCO Spotfire, working with the vendors and training their users. +\end{rSubsection} + +\begin{rSubsection}{Fraunhofer-Center for Maritime Logistics and Services CML}{Sep 2018 -- Oct 2019}{Research Software Engineer}{Hamburg, Germany} +\item Set up Jenkins and the build jobs for automatic deployment of a maritime crew-scheduling system (C\#, SQL Server), and developed Docker-based microservices for a maritime data-exchange research platform. +\end{rSubsection} + +\begin{rSubsection}{Vizrt}{Jul 2017 -- May 2018}{Test Automation / DevOps Engineer}{Bergen, Norway} +\item Developed automated test suites and integrated them into the CI/CD pipeline as quality gates, to shorten the feedback loop on new features and code changes. +\item Contributed Python and C++ to a distributed video-transcoding backend. +\end{rSubsection} + +\begin{rSubsection}{Generali Deutschland Informatik Services GmbH}{May 2015 -- Jun 2017}{IT Consultant}{Hamburg, Germany} +\item Introduced Behaviour-Driven Development through a proof of concept, then held technical responsibility for the test automation suite (Serenity-BDD, Selenium, JBehave) and its Jenkins build jobs; trained project members and presented BDD to the Java community. +\end{rSubsection} + +\begin{rSubsection}{Bundeswehr (German Armed Forces)}{Jul 2008 -- Nov 2014}{Officer Candidate / Officer (Second Lieutenant at separation)}{Germany} +\item Completed officer candidate training and officer school during six years of service. +\end{rSubsection} + +\end{rSection} + +\begin{rSection}{Education} +\compactentry{M.Eng. Computer Aided Engineering}{Apr 2012 -- Oct 2013} +Universität der Bundeswehr München; Software Design \& Engineering. Thesis at Tongji University, \mbox{Shanghai}: a web-based remote fault-diagnosis system for vibration-sensor data from CNC machine tools. + +\compactentry{B.Eng. Information and Telecommunication Technologies}{Oct 2009 -- Oct 2012} +Universität der Bundeswehr München. + +Coursework: Embedded Systems (C/C++ and VHDL with an ARM platform); Robotics. +\end{rSection} + +\end{document} diff --git a/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/jd_kongsberg_devops_test_infra.md b/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/jd_kongsberg_devops_test_infra.md new file mode 100644 index 0000000..2637708 --- /dev/null +++ b/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/jd_kongsberg_devops_test_infra.md @@ -0,0 +1,99 @@ +# JD — Kongsberg Discovery / Seatex: Lead Engineer, DevOps and Test Infrastructure + +- Source: https://www.kongsberg.com/careers/vacancies/lead-engineer-devops-and-test-infrastructure/ +- Retrieved: 2026-10-08, headless Chromium (job_scout .venv Playwright), HTTP 200, posting live +- Cross-check: NAV arbeidsplassen uuid b1e1a258-4b23-4ecd-a606-3dd95a76b729 — workLanguage Engelsk, applicationdue 11.10.2026, city TRONDHEIM +- Verbatim body below (site navigation and cookie banner stripped) + +--- + +```text +Lead Engineer, DevOps and Test Infrastructure + +We are looking for the right person to take our DevOps and Test Infrastructure to the next level. This position is a perfect opportunity if you want to be(come) an expert, investigate options, decide on solutions, and implement them. All while relying on expert colleagues across KONGSBERG for discussion and support. + +The position is part of the SW Architects group, which is responsible for all SW activities common across Seatex products and projects. + +What you will be doing + +Drive further development and maintenance of our DevOps and testing environments +Collaborate with IT and DevOps colleagues across KONGSBERG +Develop SW for products and infrastructure +Support SW developers on DevOps and testing challenges, and promote effective use of our SW infrastructure + +What we’re looking for + +Bachelor’s or Master’s degree in a relevant technical discipline, or equivalent practical experience +Proven experience with DevOps and testing +Strong SW development skills +Experience working with embedded SW and Linux +An interest in, and practical experience with, applying AI to solve problems +Familiarity with Docker or similar technologies + +What you bring + +A practical approach to supporting SW developers and solving problems +The ability to identify improvements and drive them forward +Strong collaboration and knowledge-sharing skills +A sense of ownership of the SW development infrastructure +Confidence in contributing ideas and challenging existing ways of working + +  + +Pre-employment check and security clearance + +This employment may require a pre-employment check procedure and security clearance in accordance with company security standards, role or site requirements. Please note that this might affect the offer process or employment. + + +Diversity statement + +At KONGSBERG, we believe that diversity fuels innovation. We encourage you to apply, even if you do not meet every requirement. Your unique perspective is valuable to us. Your skills, attitude and perspective could be exactly what we are looking for! + + +Why join us + +Work with world-leading experts, products, and technology +Be part of a collaborative culture where people support and learn from each other +Join a large international company with opportunities both nationally and internationally +Enjoy a positive working environment +Benefit from excellent insurance, welfare, and pension schemes + +  + +Where you will be working +You will be working at the Seatex’s offices at Pirsenteret in Trondheim. + + +Interested in knowing more? + +Contact: Are B. Willumsen, Group manager SW Architects, are.b.willumsen@kd.kongsberg.com, +4799203912 + + +About KONGSBERG + +KONGSBERG protects people and critical infrastructure – from deep sea to space. + +We deliver advanced ocean and space technologies – from autonomous marine systems to satellites and data services – supporting sustainability, climate monitoring, infrastructure protection, and security. KONGSBERG also develop innovative technologies for defence, security, and surveillance markets, combining military and civilian expertise. Our defence and security solutions span missiles, weapon stations, air defence, command and control, and digital towers. + +Today, we have more than 7,500 employees in about 20 countries. The company is listed on the Oslo Stock Exchange and the Norwegian government controls about 50.01 percent of the shares. + + +About Discovery + +The Discovery division develops technologies for sustainable ocean resource management, climate monitoring, critical infrastructure protection, and national security. Its technology platforms and solutions support offshore operations, fisheries, ocean research, maritime operations, sea-based energy production, and naval defence. Products include sonars, underwater communication equipment, satellites, surveillance and positioning systems, and autonomous vehicles. Customers span offshore, fisheries, marine research, maritime, energy, surveillance, defence, and naval sectors. + +Apply now +Job type +Permanent +Working hours +Full-time +Application deadline +11/10/2026 +Company homepage +http://www.kongsberg.com +Office address + +Havnegata 9, Pirsenteret + +7010 Trondheim +``` diff --git a/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/resume.cls b/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/resume.cls new file mode 100644 index 0000000..eca6ba0 --- /dev/null +++ b/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/resume.cls @@ -0,0 +1,59 @@ +\ProvidesClass{resume}[2026/07/27 Evidence-first professional resume] +\LoadClass[11pt,a4paper]{article} + +\RequirePackage{enumitem} +\RequirePackage{ifthen} +\RequirePackage{lastpage} +\RequirePackage{parskip} +\RequirePackage{needspace} + +\pagestyle{empty} +\setlength{\parindent}{0pt} + +\def\@resumename{} +\def\@resumeheadline{} +\def\@resumecontact{} + +\newcommand{\name}[1]{\def\@resumename{#1}} +\newcommand{\headline}[1]{\def\@resumeheadline{#1}} +\newcommand{\contactline}[1]{\def\@resumecontact{#1}} + +\newcommand{\printresumeheader}{% + {\LARGE\bfseries \@resumename}\par + \vspace{0.15em} + \ifthenelse{\equal{\@resumeheadline}{}}{}{\@resumeheadline\par} + \vspace{0.1em} + {\small \@resumecontact}\par + \vspace{0.45em} +} + +\AtBeginDocument{\printresumeheader} + +\newenvironment{rSection}[1]{% + \vspace{0.35em} + {\bfseries #1}\par + \vspace{0.1em}\hrule\vspace{0.35em} +}{% + \vspace{0.2em} +} + +% Arguments: employer, dates, formal title, location. +\newenvironment{rSubsection}[4]{% + \Needspace{6\baselineskip}% + {\bfseries #1}\hfill{\small #2}\par + {\itshape #3}\hfill{\itshape #4}\par + \vspace{0.1em} + \begin{itemize}[leftmargin=1.25em,label=\textbullet,itemsep=0.18em,topsep=0.15em,parsep=0pt,partopsep=0pt] +}{% + \end{itemize} + \vspace{0.25em} +} + +\newcommand{\skillline}[2]{% + \textbf{#1:} #2\par + \vspace{0.08em} +} + +\newcommand{\compactentry}[2]{% + \textbf{#1}\hfill #2\par +} diff --git a/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/session_kongsberg_devops_test_infra.md b/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/session_kongsberg_devops_test_infra.md new file mode 100644 index 0000000..30d3c8c --- /dev/null +++ b/output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/session_kongsberg_devops_test_infra.md @@ -0,0 +1,111 @@ +# Session: Kongsberg Discovery (Seatex) — Lead Engineer, DevOps and Test Infrastructure + +## JD Integrity +- File/source: `jd_kongsberg_devops_test_infra.md` (this folder); https://www.kongsberg.com/careers/vacancies/lead-engineer-devops-and-test-infrastructure/ +- Retrieval method and date: headless Chromium via `job_scout/.venv` Playwright, 2026-10-08, HTTP 200. Cross-checked on NAV arbeidsplassen (uuid b1e1a258-4b23-4ecd-a606-3dd95a76b729). +- Verbatim posting: YES +- Posting status: LIVE. **Deadline 11.10.2026 (Sunday)** per NAV `applicationdue`. Work language: Engelsk (NAV). Location: Seatex offices, Pirsenteret, Havnegata 9, 7010 Trondheim. Permanent, full-time. + +## Application Decision +- Audience profile: **Norway** (Norwegian employer, English posting; no employer-specific format). 2 pages, short Key Qualifications block, motivation letter normally prepared. +- Evidence Fit: **67** (provisional at triage; unchanged after the embedded answer) +- Fit class: Adjacent by number; **hard gate FAIL overrides** (see below) +- Hard gate: **FAIL** — required line "Experience working with embedded SW and Linux": Linux Direct, **embedded SW = Gap** (user, 2026-10-08: "no embedded work since my studies"). Clearance: JD says *"may require"* security clearance — unresolved, to ask the contact. Relocation: on-site Trondheim; **user deferred the relocation decision to offer stage** (2026-10-08), so it is not treated as an unresolved pre-apply constraint. +- **User override, 2026-10-08:** shown the strict-gate reading ("a confirmed no makes it a required-line gap, which is a no-go under the gate"), the user answered *"no embedded work since my studies. But nevertheless, lets try"*. The override licenses generation; it does **not** change the fit classification. +- Channel Strength: **Weak** (cold, as of now) +- Channel plan: **cold submit by user decision 2026-10-08 ("no email will be sent")** — overrides the standing channel rule for this application; record as a deliberate cold submit. +- Named contact published? **YES** — Are B. Willumsen, Group manager SW Architects, are.b.willumsen@kd.kongsberg.com, +47 99 20 39 12. **Not contacted — user decision 2026-10-08.** +- Decision: **PROCEED (user override)** + +## Requirements +| # | Requirement | Required/preferred | Direct/Adjacent/Gap/Constraint | Canonical evidence | Gate? | +|---|---|---|---|---|---| +| 1 | Bachelor's/Master's in relevant technical discipline | Required | Direct | EDU-BENG (Information and Telecommunication Technologies), EDU-MENG (Computer Aided Engineering) | — | +| 2 | Proven experience with DevOps and testing | Required | Direct (historical) | GN-1 BDD test automation + Jenkins; VZ-2 test suites as CI/CD quality gates; FC-1 Jenkins build/deploy jobs; BS-6 Linux/Ansible from Git via Jenkins/GitLab; BS-1 containerized ML inference; SW-3 Python on Kubernetes via GitLab CI/CD (past, used not built) | — | +| 3 | Strong SW development skills | Required | Direct (Python, Java); C++ limited | BS-2, SW-1, SW-6, GN-3, VZ-1 | — | +| 4 | Embedded SW **and** Linux | Required | Linux **Direct** (BS-6, PP-3); embedded **Gap** | none for embedded | **YES — overridden** | +| 5 | Interest in and practical experience applying AI | Required | Direct | BS-1 production ML inference; SW-8 LLM assistants, LiteLLM, Kiro, Copilot; IBM AI Engineering cert | — | +| 6 | Docker or similar | Required | Direct | BS-1, BS-6, FC-3, Docker skill | — | +| 7 | Drive development/maintenance of DevOps and testing environments | Responsibility | Direct (historical) | FC-1, VZ-2, GN-1, BS-6 | — | +| 8 | Collaborate with IT and DevOps colleagues | Responsibility | Direct | BS-3 vendor/internal coordination; BS-6 | — | +| 9 | Develop SW for products and infrastructure | Responsibility | Infrastructure Direct; **product SW for embedded products Adjacent** | BS-6 Ansible extensions; VZ-1 | — | +| 10 | Support SW developers, promote effective use of SW infrastructure | Responsibility | Direct | GN-1 trained colleagues, presented BDD to Java community; BS-3 training/docs; BS-7 supervision | — | +| 11 | Security clearance "may" be required | Conditional | **Constraint — open** | BW-1 forbids claiming any clearance | Ask contact | +| 12 | On-site Trondheim | Practical | Constraint — deferred to offer stage by user | — | No (user decision) | + +### Evidence Fit breakdown (67) +| Dimension | Weight | Score | Basis | +|---|---:|---:|---| +| Required qualifications | 35 | 25 | 5 of 6 Direct; embedded half-line Gap | +| Core responsibilities | 25 | 18 | DevOps/test environments, developer enablement Direct; embedded product SW unproven | +| Level and ownership | 15 | 11 | Senior IC decide-and-implement scope matches Engineer IV / Component Owner / Application Owner | +| Recency and depth | 10 | 5 | Test/DevOps core is 2015–2022; Swisscom CI/CD used, not built (SW-3) | +| Domain/tool transfer | 10 | 6 | Maritime research (FC-1..3), prior Norway employment; embedded toolchain unknown | +| Practical constraints | 5 | 2 | English, EEA free movement OK; clearance open; relocation deferred | + +## Competitive Read +- Obvious-fit candidate: Trondheim-based DevOps/test engineer from an embedded shop (NTNU graduate pool; Nordic Semiconductor and Kongsberg itself), with cross-compilation, HIL/test-bench and Yocto/Buildroot-style experience, Norwegian-speaking. +- Dennis's advantage: breadth across the whole test → CI → infrastructure → production-ML path; real production AI integration (a named requirement most embedded DevOps candidates lack); Linux depth (Bosch estate + 10 years self-hosted); prior employment in Norway; maritime research background. +- Their advantage: embedded toolchain and hardware-test experience; current (not historical) DevOps title; local, no relocation risk; Norwegian. +- Level/scope comparison: comparable senior IC; "Lead Engineer" here is technical lead of infrastructure, not people management — do not claim people management. + +## Framing Strategy +- Professional identity: software engineer whose career runs test automation → CI/CD and Linux infrastructure → production ML and cloud data engineering. Headline must be demonstrated identity, not the target title. +- Strongest proof points: BS-6 (Linux + Ansible automation from Git via Jenkins/GitLab), VZ-2 (test suites as CI/CD quality gates, Bergen), GN-1 (introduced BDD, technical responsibility, trained colleagues), BS-1 (ML inference in a 24/7 fab where a defect could halt production), FC-1 (introduced Jenkins). +- Honest adjacent bridges: maritime domain via Fraunhofer CML; sensor data via M.Eng. thesis (vibration sensors, CNC) and BS-2 (fab sensor/process data) — context only, never embedded claims. +- Explicit gaps: embedded SW (none since studies); Kubernetes and Kafka historical; C++ limited; no Terraform, no GitOps. +- User directives: apply despite embedded gap; relocation decided at offer stage; not interested in Oslo alternatives. + +## Portal +- EasyCruit (Visma): https://kongsberg.easycruit.com/vacancy/application/3663291/252845 — probed 2026-10-08 up to step 2, nothing submitted. +- Fields: CV upload; structured Education / Work experience / Language sections; **plain-text "Cover letter" textarea**; only position-specific question is "Where did you first find out about the position?" (answer: Nav.no or Kongsberg.com). Optional demographics (gender, date of birth) — leave blank per standing preference. + +## Resume Plan (presented 2026-10-08; approved by the user's answers the same day) +- Header headline: Software Engineer | Test Automation, CI/CD and Linux Infrastructure | Production ML Integration. Contact line: Bern, Switzerland + "EU/EEA citizen, no work permit needed in Norway". No relocation statement. +- Key Qualifications (Norway profile): 3–4 short bullets, ~5 rendered lines — tenure (over ten years, measured from May 2015), test/CI path (GN-1, VZ-2, FC-1), Linux/automation (BS-6, PP-3), applied AI (BS-1, SW-8). +- Skills (~5 rendered lines): Languages (Python, Bash, SQL; Java, Kotlin, C# historical; C++ limited) · DevOps/infra (Linux administration, Docker, Ansible, Jenkins, GitLab CI/CD, Kubernetes historical, AWS, CloudFormation) · Testing (BDD with Serenity-BDD/JBehave, Selenium, CI/CD quality gates) · AI (ML inference integration; LLM assistants, LiteLLM, Copilot, Kiro) · Certifications once · Languages DE/EN/NO basic. +- Swisscom (4): SW-3 lead (past), SW-2 (past), SW-1 (current), SW-8. +- Bosch (4): BS-6 Linux/Ansible lead, BS-6 credential plugin, BS-1, BS-3. +- Fraunhofer (1): FC-1 + FC-3. Vizrt (2): VZ-2, VZ-1. Generali (1): GN-1. +- Bundeswehr: one compact BW-1 line — recommended (defence group), user to confirm. +- Education: M.Eng. with thesis line (vibration-sensor fault diagnosis, Tongji); B.Eng. — embedded coursework only if user supplies specifics and it is recorded in claims.json first. +- Total bullets: 12. No forced page break: Bosch must start on page 1 (check with `page_metrics.py`). +- Impact evidence still needed: none — no metrics will be used. +- KB change made: Jenkins and GitLab CI/CD registered as canonical skills (production-historical) from GN-1/FC-1/BS-6/SW-3 scopes, 2026-10-08. +- Do-not-carry list (experience files overclaim vs claims.json): FC-1 "quality gates/independently/first"; VZ-1 primary-developer + broadcaster names; BS-4 Grafana/Prometheus/Loki; template's present-tense Kafka/Teradata/Kubernetes. + +## Cover Letter Decision +- YES/NO: **YES (proposed)** +- Reason: the portal has a dedicated cover-letter field; Norway convention (`cl_reference.md`); and a career-direction explanation the resume cannot carry (data engineering now → back to DevOps/test infrastructure). Deliver as `.tex` source plus a plain-text paste version for the textarea. +- Information it adds beyond resume: why this function, the Norway connection (Vizrt, Bergen), honest framing of how he would close the embedded gap. No relocation statement unless the user confirms one. +- Verified hook sources: JD only (SW Architects group, Seatex products). Verify any product name before use. + +## Output Files +- Resume: `e2e_kongsberg_devops_test_infra_resume.tex` + `.pdf` (2 pages, 0 overfull boxes, validator PASS, 0 cadence warnings) +- Cover letter: `e2e_kongsberg_devops_test_infra_cover_letter.tex` + `.pdf` (1 page, 244 words, validator PASS) and `e2e_kongsberg_devops_test_infra_cover_letter.txt` (paste version for the EasyCruit textarea). Letter date is literal **9 October 2026** - change it if sent later. +- Critique: `critique_kongsberg_devops_test_infra.md` (pending) + +## As-Built (2026-10-08) +- User answers 2026-10-08: embedded = coursework only (Embedded Systems in C/C++ and VHDL with an ARM platform; Robotics), nothing since studies; writes unit tests today, "pytest is known"; Bundeswehr line YES; cover letter YES. +- KB changes this session: `claims.json` + ED-1 (coursework), SW-9 (unit tests), skills pytest, unit testing, embedded systems (coursework), VHDL, robotics (coursework), Jenkins, GitLab CI/CD. Source note: `knowledge_base/extractions/2026-10-08_embedded_coursework_testing_clarification.md`. +- Post-review fixes (advisor, 2026-10-08): skills line now labels Ansible, Jenkins, GitLab CI/CD, Kubernetes, BDD, Selenium and CI/CD quality gates as earlier roles; cover letter reworded to "the infrastructure side that embedded teams rely on" so it cannot read as embedded CI experience. +- Portal warning: EasyCruit parses the CV / offers LinkedIn import into structured Work experience fields - check that Capgemini does not appear there (standing omission rule). +- Layout: Key Qualifications 3 bullets (7 lines); skills block ragged-right (8 rendered lines); Swisscom and all of Bosch on page 1; page 2 = Fraunhofer, Vizrt, Generali, Bundeswehr, Education. No forced page break. +- Bullets: Swisscom 4 (SW-3 lead, SW-2, SW-1+SW-9, SW-8), Bosch 4 (BS-6, BS-6 plugin, BS-1, BS-3), Fraunhofer 1 (FC-1+FC-3), Vizrt 2 (VZ-2, VZ-1), Generali 1 (GN-1), Bundeswehr 1 (BW-1) = 13. +- **Open for user review:** (1) **Combined question:** does he unit-test the Glue/pipeline code at Swisscom, and with pytest? The Swisscom bullet says "with unit tests for the pipeline code" and the Testing line says "Unit testing (pytest)"; SW-9 does not establish which code is covered. If no: drop the bullet clause and change the skill to "Unit testing (Python)". (2) Which degree the embedded coursework belonged to - currently a separate unattributed "Coursework:" line under Education. (3) Contact line says "EU citizen (no Norwegian work permit needed)" - EEA free-movement fact, not a claim about him. + +## Critique Summary (2026-10-08, `critique_kongsberg_devops_test_infra.md`) +- Evidence Fit: **69** — Adjacent by number; hard gate overrides +- Hard gate: **FAIL** (strict) — embedded is academic only (ED-1); clearance unresolved. User override recorded. +- Document Quality: **84** +- Channel Strength: **Weak** (cold by user decision) +- Tier 1 fixes: unit-test/pytest wording — **resolved 2026-10-08**: user approved the package as written ("i think its ok how it is") after being asked directly; recorded in claims.json SW-9 and the pytest skill note. +- Tier 2 (**declined by user 2026-10-08, package kept as is**): show the past phase on the Swisscom lead bullet ("On the earlier B2B platform, …"); label ML inference as earlier role in the AI line; attach coursework to its degree; optional letter trim. + +## Status +- Fit gate: done 2026-10-08 - hard gate FAIL (embedded), user override to proceed +- Resume: **APPROVED as is 2026-10-08**; final validator PASS; `Dennis_Thiessen_Resume.pdf` copied (byte-identical) +- Cover letter: **APPROVED as is 2026-10-08**; final validator PASS; `Dennis_Thiessen_Cover_Letter.pdf` copied; paste text in `e2e_kongsberg_devops_test_infra_cover_letter.txt` +- Critique: done 2026-10-08 — Tier 1 resolved, Tier 2 declined +- Application/outcome: **SUBMITTED 2026-10-08** via EasyCruit (user-confirmed "sent out right now"). Cold by user decision. Recorded: `cohort_tracker.py add` (no-go / 69 / weak / fail, override reason, outcome applied) and `scout.py --decide ... applied`. +- Next: wait for Kongsberg. Screen prep: embedded targets/HIL, recency of DevOps/test work (2015-22), relocation to Trondheim (decide at offer), clearance eligibility as a German citizen living in Switzerland, on-site expectations. diff --git a/resume_builder/bundles/bundle_data_engineer.md b/resume_builder/bundles/bundle_data_engineer.md index 17a19ea..cd587b2 100644 --- a/resume_builder/bundles/bundle_data_engineer.md +++ b/resume_builder/bundles/bundle_data_engineer.md @@ -12,6 +12,8 @@ **Promotion signal to use:** "Promoted from Senior to Staff Engineer (Engineer IV) at Swisscom, April 2025." +**Current design evidence (SW-7, user-confirmed 2026-10-03):** Relational data modelling, design and implementation of scoped data products are Direct. Do not equate this with company-wide architecture or a confirmed duration of software design. Frontend experience was denied in the same clarification; backend JavaScript and UI testing do not support Full Stack positioning. + ### Priority Matrix | Priority | Achievement IDs | Rationale | diff --git a/resume_builder/canonical/claims.json b/resume_builder/canonical/claims.json index 5a0e70b..f6f3f6f 100644 --- a/resume_builder/canonical/claims.json +++ b/resume_builder/canonical/claims.json @@ -307,17 +307,18 @@ { "id": "SW-7", "evidence": { - "source": "unrecorded", + "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.", + "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.", "allowed_verbs": [ "build", "model", "onboard", "contribute", "document", - "maintain" + "maintain", + "design" ], "forbidden": [ "built a Data Mesh", @@ -666,6 +667,23 @@ ], "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": { @@ -712,6 +730,47 @@ "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" } ], "skills": [ @@ -767,7 +826,7 @@ "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'." + "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", @@ -800,6 +859,50 @@ "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", @@ -877,18 +980,30 @@ }, { "name": "FastAPI", - "evidence": "unverified", - "output": "forbidden" + "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": "unverified", - "output": "forbidden" + "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": "unverified", - "output": "forbidden" + "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", @@ -1074,6 +1189,12 @@ "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." } ], "global_forbidden_output_patterns": [ diff --git a/resume_builder/experience/experience_swisscom.md b/resume_builder/experience/experience_swisscom.md index 2caba66..5364930 100644 --- a/resume_builder/experience/experience_swisscom.md +++ b/resume_builder/experience/experience_swisscom.md @@ -156,6 +156,8 @@ **User's role:** Builds and models governed data products and onboards sources within Swisscom's company-wide Data Mesh; does not own or architect the shared company-wide mesh. **Status:** Active / ongoing (current emphasis) +**Design clarification (user-confirmed 2026-10-03):** Current work includes data modelling, design of data products and their implementation. Scope design claims to his data products. The exact duration is not confirmed; do not automatically claim one year of software architecture from this clarification. See `knowledge_base/extractions/2026-10-03_data_product_design_frontend_clarification.md` and canonical SW-7. + **Context:** Current Staff-level work builds reusable governed **data products**, active metadata and source onboarding within Swisscom's shared Data Mesh on AWS (Glue, Athena, CloudFormation, AWS CLI, CI/CD). These products can support downstream analytics and AI use cases. Do not convert this into ownership of agent architecture, MCP tooling or the company-wide platform. **Bullet variants:** diff --git a/resume_builder/reference/application_strategy.md b/resume_builder/reference/application_strategy.md index ea1e5d1..10540ed 100644 --- a/resume_builder/reference/application_strategy.md +++ b/resume_builder/reference/application_strategy.md @@ -16,6 +16,21 @@ Core targets: Stretch targets include LLM/agent engineer, AI Manager, pure SRE, strategic-account FDE, and Principal roles requiring company-wide architecture or external-customer authority. +## Working Model and Total Package + +User clarification, 2026-10-06: the current position provides 3 homeoffice days per week. +Fewer days are acceptable only for a clear overall improvement over the current role. +Assess compensation, scope, development, commute, working time and benefits together; +the user has not specified a numerical improvement threshold. Clarify these terms early. +Do not treat fewer than 3 homeoffice days as an automatic no-go or assume a prestigious +employer compensates for reduced flexibility. The user expects such improvements mainly +at FAANG or comparable employers; this remains an expectation rather than an employer restriction. + +The internal Swisscom Geo Platform application is a separate task change: according to +the user (2026-10-06), position and seniority remain unchanged and salary would not change +substantially. Assess it independently of the external-upgrade objective. The external search +continues without waiting for its outcome and remains active even if the internal move succeeds. + ## Application Gate Before generating a resume, complete Evidence Fit from `critique_framework.md`. diff --git a/resume_builder/reference/current_applications.md b/resume_builder/reference/current_applications.md index 5e4d4f6..7a58d70 100644 --- a/resume_builder/reference/current_applications.md +++ b/resume_builder/reference/current_applications.md @@ -5,10 +5,10 @@ Use current outcome and next action below. Imported legacy notes are historical, | Application | Current outcome | Interview reached | Next action | |---|---|---|---| -| NVIDIA - Senior DevOps Engineer, Zürich (req JR2024256) | applied | not recorded | **Await response. Raise the working model at first contact** - it went in unresolved and a 5-day-onsite seat would be a late no. Note: `claims.json` has no shell-scripting entry, so **Bash is omitted** from Skills although the JD names it and ten years of Debian admin plus Ansible work plainly involve it - same shape as the Ansible/Linux gaps found 2026-08-27. Confirm with the user and record it. Groovy stays out regardless. | -| RUAG C5I - AI Engineer C5I, Thun (application ID 18027) | applied | not recorded | Await response. Optional but still worthwhile: call **Marco Heinzen** about technical scope and level, and **Frank Haugwitz** about compensation and PSP/project eligibility. **NEW CONTACT 2026-09-07 — `Lars Kauz`, Head of ICT Infrastructure C5I, +41 79 293 93 82, lars.kauz@ruag.ch**, published on the System Engineer C5I posting. Channel is the rationed variable since the 09-05 cohort change, so a published, reachable name matters — **but he heads ICT Infrastructure, the function whose req was ruled out for VMware/VDI/Windows content, and that is NOT demonstrably the Kubernetes platform group Senior DevOps C5I sits in.** He is a warm entry into C5I, not a verified channel for rank 1; Haugwitz stays the recorded gate. Do not react to a single outcome with positioning changes (`application_strategy.md` §38/§74). | +| NVIDIA - Senior DevOps Engineer, Zürich (req JR2024256) | applied | not recorded | Await response. At first contact, clarify homeoffice/onsite requirements and total package. Baseline is 3 homeoffice days/week; fewer days require a clear overall improvement. Note: `claims.json` has no shell-scripting entry, so **Bash is omitted** from Skills although the JD names it and ten years of Debian admin plus Ansible work plainly involve it - same shape as the Ansible/Linux gaps found 2026-08-27. Confirm with the user and record it. Groovy stays out regardless. | +| RUAG C5I - AI Engineer C5I, Thun (application ID 18027) | rejected_after_interview | yes | Abgeschlossen: Absage nach Interview; Anforderungen vor allem beim Homeoffice nicht vereinbar. Keine weitere Aktion fuer diese Bewerbung offen. | | Schweizer Armee - Kommando Cyber (Kdo Cy), DevOps Engineer III (Data Platform), Zimmerwald (Ref JRQ$540-19848) | rejected_no_interview | not recorded | Closed; no pending application action. Read recorded history before reopening. | -| Citadel Securities — Platform Engineer, Research Platform Engineering, Zürich (also NY/Miami) | applied | not recorded | **Await response** (submitted 2026-08-26). No document work pending. **Two questions travel with this application and must both be asked at first contact, before any interview effort:** (1) **is the application even against the Zürich seat?** — the apply form offered no Zürich, so it may sit against a US req, which is a hard NO on relocation; (2) **hybrid or 5-day onsite?** — unresolved at submission, and 5-day onsite is a likely NO-GO on the Bern constraint. Same shape as the NVIDIA working-model issue: it went out unresolved, so it is now a live screening topic rather than a pre-cleared one. Also unasked: the Zürich compensation figure — the posting's $175–350k is a US/NY pay-transparency disclosure. | +| Citadel Securities — Platform Engineer, Research Platform Engineering, Zürich (also NY/Miami) | applied | not recorded | Await response. At first contact, confirm whether the application is for the Zurich seat; relocation to the US remains ruled out. Clarify homeoffice/onsite requirements and the Zurich compensation package. Baseline is 3 homeoffice days/week; fewer days require a clear overall improvement. The posted US salary range is not a Zurich figure. | | SBB - Data Engineer (m/w/d), Asset Management Infrastrukturanlagen, Bern (Job ID 103755) | withdrawn_by_candidate | yes | Closed. For future SBB roles assess Niveau L/Kader; do not generalize SBB bands to other employers. | | AWS (AWS EMEA SARL, Switzerland Branch) — Senior Forward Deployed Engineer, Zürich (job 10504263) | not_proceeding | not recorded | Closed; no pending application action. Read recorded history before reopening. | | Google — Forward Deployed Engineer III, Google Cloud GTM (French, German), Zürich (req 78350205438567110) | not_proceeding | not recorded | Closed; no pending application action. Read recorded history before reopening. | @@ -17,7 +17,7 @@ Use current outcome and next action below. Imported legacy notes are historical, | Google - Software Engineer III, Business Home, Zurich (req 93922217108087494) | rejected_no_interview | not recorded | Closed; no pending application action. Read recorded history before reopening. | | Microsoft — Principal Forward Deployed Engineer, SWE (German Speaking), Zürich (req 200043897) | applied | not recorded | Done — await response | | BIS Basel — Senior Data & Analytics Engineer, AI (jr100429, 3-yr term) | rejected_no_interview | not recorded | Abgeschlossen: Absage erhalten; keine weitere Aktion offen. | -| NATO JWC Stavanger — Staff Officer, AI Engineer (2030 Digitalisation, G15, 3-yr PLN) | applied | not recorded | Await screening; no action until contact | +| NATO JWC Stavanger — Staff Officer, AI Engineer (2030 Digitalisation, G15, 3-yr PLN) | rejected_no_interview | not recorded | Abgeschlossen: Absage erhalten; keine weitere Aktion offen. | | Microsoft — Senior SWE, Industry Solutions Engineering (ISE), Zürich (req 200040836) | rejected_no_interview | not recorded | Closed; no pending application action. Read recorded history before reopening. | | Kraken (Payward) — SRE, AI Agents (remote, CH-eligible) | rejected_no_interview | not recorded | Closed; no pending application action. Read recorded history before reopening. | | Google — Senior Data Engineer (Merchant Data Science), Zürich/MV | rejected_no_interview | not recorded | Closed; no pending application action. Read recorded history before reopening. | @@ -31,7 +31,9 @@ Use current outcome and next action below. Imported legacy notes are historical, | Google FDE GenAI (Zurich) | paused | not recorded | Likely abandon | | Equinor — Manager / AI Architect, Agentic systems (Stavanger/Oslo/Rotvoll/Sandsli; req JR106747) | rejected_no_interview | not recorded | Closed; no pending application action. Read recorded history before reopening. | | QuantCo Cloud Engineer (Europe/Zürich) | rejected_no_interview | not recorded | Closed; no pending application action. Read recorded history before reopening. | -| Swisscom (Schweiz) AG — Data Engineer - Geo Platform, Bern/Worblaufen (internal, req R-0006447) | applied | not recorded | Await response. Interview prep (critique section 7): say plainly that ArcGIS and FME are unused; name the Bosch coordinate systems and how the transformations were done; geographic CRS (WGS84, LV95, datum shifts) is new ground. | +| Swisscom (Schweiz) AG — Data Engineer - Geo Platform, Bern/Worblaufen (internal, req R-0006447) | interviewing | yes | Swisscom-Rueckmeldung zwischen 2026-10-08 und 2026-10-15 abwarten; internen Aufgabenwechsel separat bewerten. Externe Suche unabhaengig vom Ausgang aktiv fortsetzen, auch bei erfolgreichem internem Wechsel. | +| Google — Senior Software Engineer, Full Stack, Commerce, Zürich | open | not recorded | Choose Shopping Ads SWE III (Mid; compensation unpublished), search further Google Senior roles, or explicitly override the stated Commerce frontend gap. No application submitted. | +| Kongsberg Discovery (Seatex) — Lead Engineer, DevOps and Test Infrastructure, Trondheim | applied | not recorded | Wait for Kongsberg response. Screen prep: embedded targets/HIL question, recency of DevOps/test work (2015-22), relocation to Trondheim, clearance eligibility as German citizen resident in Switzerland, on-site expectations. Package: output/Kongsberg_Lead_Engineer_DevOps_Test_Infra/. | ## Current targeting notes @@ -40,3 +42,4 @@ Use current outcome and next action below. Imported legacy notes are historical, - Childcare-cost coverage at the Swiss Army/Kdo Cy remains unverified; confirm before pricing it. - Norway remains open selectively; the Swiss compensation threshold does not automatically apply there. - An interview does not prove how an ATS or recruiter evaluated the application. No causal inference from a single conversion. +- User clarification 2026-10-06: current baseline is 3 homeoffice days/week. Fewer days are acceptable only for a clear overall improvement over the current role; assess total package and commute early, with no automatic rejection based on office days alone. User expects such improvements mainly at FAANG or comparable employers, without restricting the search to them. diff --git a/resume_builder/support/skills_taxonomy.md b/resume_builder/support/skills_taxonomy.md index 5749495..83cf481 100644 --- a/resume_builder/support/skills_taxonomy.md +++ b/resume_builder/support/skills_taxonomy.md @@ -64,6 +64,12 @@ Do not use Expert/Proficient/Familiar labels in resumes. Evidence and recency ar | Ansible | Professional — intensive at Bosch (BS-6) | Configuration management and IaC, including self-written extensions. Does NOT license Terraform. **GitOps is forbidden** — push-based execution, no reconciliation agent | | Bash / shell scripting | Professional-historical + personal-current (BS-6, PP-3) | Added to `claims.json` 2026-09-05. Does NOT license Groovy, nor systems/kernel-level claims | +## Personal-Project Framework Experience + +| Skill | Evidence level | Safe framing | +|---|---|---| +| Django, Flask, FastAPI | Project / proof of concept — private/hobby projects (PP-4) | Used in personal projects, user-confirmed 2026-09-18. Never used professionally. Project details, dates and depth are not established; do not attach to an employer or a named project without confirmation. | + ## Certification-Only Signals | Skill | Evidence | @@ -81,8 +87,9 @@ Do not use Expert/Proficient/Familiar labels in resumes. Evidence and recency ar - Terraform - Formal model or LLM evaluation - LLM fine-tuning, red-teaming or model-training ownership -- FastAPI, Flask or Django +- Enterprise SaaS/SSO administration — user confirmed 2026-09-18 that he has not performed it. Do not infer enterprise identity administration from personal hosting or secrets-management work. - TypeScript +- Frontend/UI development — user answered no to frontend experience on 2026-10-03. Backend JavaScript and Selenium UI testing do not establish frontend development; do not claim Full Stack expertise. - Petabyte-scale ownership ## Certifications