feat(app): Kongsberg Seatex DevOps & Test Infra submitted; KB gaps closed; scout triage 2026-10-08

Application
- Kongsberg Discovery / Seatex, Lead Engineer DevOps and Test Infrastructure
  (Trondheim): resume, cover letter (+ paste text), verbatim JD, session and
  critique. Submitted 2026-10-08 via EasyCruit as a deliberate cold application
  on a user override of the embedded-SW hard gate (Evidence Fit 69, Document
  Quality 84). Recorded in applications.json and decisions.json.
- Google Senior SWE Full Stack Commerce: session and verbatim JD from
  2026-10-03 (no-go on the frontend gap, held, not submitted).

Knowledge base
- claims.json: ED-1 (embedded/robotics coursework, none since studies),
  SW-9 (current unit testing, pytest), new skills (pytest, unit testing,
  embedded systems (coursework), VHDL, robotics (coursework)), and Jenkins and
  GitLab CI/CD registered from existing GN-1/FC-1/BS-6/SW-3 scopes.
- Earlier uncommitted KB work: 2026-09-18 Python frameworks / enterprise SaaS
  clarification, 2026-10-03 data-product design / no-frontend clarification,
  2026-10-06 working-model rule (3 homeoffice days baseline) in config.md and
  application_strategy.md, plus related experience/bundle/taxonomy updates.
- CLAUDE.md corrections log: 2026-10-08 entry for the three canonical gaps.

Scout
- 2026-10-08 run triaged by JD read: NVIDIA DGX Cloud Senior Production
  Engineer, Google SRE III Prod AI / Senior SRE / Staff Shopping Graph and
  Amazon RIVR DevOps logged as maybe; GenAI FDE family, Kraken AI Platform,
  PostFinance DevOps and five Kdo Cy reqs logged as skip with reasons.

Housekeeping
- .gitignore: ignore .cache/ and raw HTML page dumps under output/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
dennisthiessenandClaude Opus 5.5 committed 2026-10-08 21:50:04 +02:00
1 parent 881d904e68
commit 504fa373f7
24 files changed
+1279 -36

No files matched your search

@@ -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.
@@ -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.
@@ -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.
@@ -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}
@@ -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
@@ -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}
@@ -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
```
@@ -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
}
@@ -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.