Files
dennisthiessenandClaude Opus 5 a0ec2fedb5 feat: NVIDIA Sr DevOps application, drop cohort caps, fix Workday/decision-log bugs
Scout run 2026-09-04 (36 companies, 778 eligible) plus the NVIDIA package it
surfaced, and the tooling and policy fixes found along the way.

Application
- NVIDIA Senior DevOps Engineer, Zurich (JR2024256): submitted 2026-09-05.
  Evidence Fit 64/100 Stretch, hard gate FAIL x2, channel Weak. Sent on an
  explicit user override with the working model unresolved, so hybrid-vs-onsite
  is a live screening topic. 2pp resume + 1pp cover letter, both validators
  PASS, 0 boxes, 0 Tier 1 findings open.

Policy
- Drop the 7 Core / 2 Adjacent / 1 Stretch cohort caps. They had no derivation
  and were overridden whenever they bound, and the cohort was confounded: it
  tested fit class while holding channel constant at Weak across all six
  applications. Keep the recording, drop the rationing.
- Channel replaces the slot budget as the rationed variable: no application
  goes out cold when a named contact is published and reachable.
- Propagated through shared_ops, session_file_template, cohort_tracker
  (counts, never counts-against-a-target) and application_cohort.json.

Tool fixes
- fetch_workday emitted 404 URLs for every Workday company (NVIDIA, Novartis,
  Equinor): externalPath is site-relative and needs the locale + site prefix.
  6/6 short-form 404, 3/3 long-form 200. 773 dead links repaired across 42
  archived reports.
- find_decision_url silently de-linked decisions on two boards, which is why
  ruled-out roles kept resurfacing as undecided. RUAG rotates its UUID on
  repost; BIS migrated its vacancy URL scheme, orphaning 5 decisions including
  a live application. Fixed as a two-tier match, not a slug key -- slugs
  collide (two live RUAG reqs shared one).

Knowledge base
- claims.json: add Bash / shell scripting, the third canonical gap of this
  shape after Ansible and Linux administration.
- bundle_data_platform: BS-4 was framed as a delivered observability stack over
  what claims.json calls a proof of concept -- the defect the 2026-08-21 sweep
  was told to look for.
- CLAUDE.md and AGENTS.md: correct the RUAG Data Lakehouse shortlist claim,
  which the JD does not support and which both files still asserted.
- resume_template: comment-guard the missing babel/ngerman language block.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QFb8tTCig5r1KzkQiNXcYt
2026-09-05 13:24:44 +02:00

105 lines
7.5 KiB
TeX

% NVIDIA — Senior DevOps Engineer (Zurich, req JR2024256)
% International Tech profile. Generated 2026-09-04 from resume_builder/canonical/claims.json
% plus normalized experience files. Session: session_nvidia_sr_devops.md
\documentclass{resume}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
% English-language document: TeX's default hyphenation patterns are correct here.
% A German package would need \usepackage[ngerman]{babel} — see the template's language note.
\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{Staff Engineer $\vert$ Linux, Ansible \& Kubernetes $\vert$ CI/CD and Infrastructure Automation}
\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, Swiss B permit}
\begin{document}
\begin{rSection}{Summary}
Engineer with over ten years building the automation and delivery layer that engineering and research teams rely on: Jenkins and GitLab CI/CD, containerized delivery on Kubernetes, and Ansible-driven Linux server automation. Integrated containerized ML inference into a continuously operating semiconductor fab, and today owns business-critical pipeline components on call at Swisscom.
\end{rSection}
\begin{rSection}{Technical Skills}
% Debian only: claims.json has Debian x2, Ubuntu x0 (PP-3 is a Debian server). The
% Debian-to-Ubuntu transfer argument is an interview answer, not a skills-line claim.
\skillline{Infrastructure and automation}{Linux administration (Debian), Ansible configuration management including custom plugins, Kubernetes container orchestration, Docker, infrastructure as code (CloudFormation)}
\skillline{CI/CD and delivery}{GitLab CI/CD, Jenkins, containerized build and deployment, automated testing and quality gates}
% Hardening is marked personal-side per the explicit claims.json instruction on Linux
% administration: the evidence "leans on the personal side; say so".
\skillline{Operations}{On-call and incident response, SLO definition and service reliability, application and component ownership, DevSecOps; security hardening (personal server)}
\skillline{Monitoring and observability}{ELK Stack (Elasticsearch, Logstash, Kibana), Grafana, Prometheus, Loki --- proof-of-concept work}
\skillline{Cloud and data}{AWS (S3, Glue, Athena/Iceberg, Redshift, Airflow), Apache Kafka, PySpark, Oracle, Teradata, Hadoop/Impala}
% Bash added 2026-09-05 after the user confirmed it; now canonical in claims.json
% (production-historical-and-personal-current, same evidence basis as Linux administration).
% Groovy stays out - still unverified and forbidden.
\skillline{Languages and certifications}{Python, Bash, SQL; Java and C\# (professional, historical); C++ (limited historical use). AWS Solutions Architect -- Associate; Data Engineering with AWS; iSAQB CPSA-F; ITIL Foundation}
\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 Build and operate Python data applications on Kubernetes with GitLab CI/CD, covering containerized delivery from test through production operation in an agile team.
\item Own business-critical Fulfillment ETL components as Component Owner with on-call duty for their production operation and data quality.
\item Migrated the Fulfillment and Product Analysis domains' legacy Teradata and Oracle ETL onto Swisscom's AWS platform using Glue, Athena/Iceberg, Redshift, Airflow and CloudFormation, contributing to the wider migration programme.
\item Serve as the team's Security Champion for 2025/2026 with responsibility for security compliance and deviation tracking across its pipelines, after 100 hours of DevSecOps training.
\item Model and build governed data products with active metadata management inside Swisscom's company-wide Data Mesh on AWS, using Glue, Athena and CloudFormation.
\end{rSubsection}
\end{rSection}
% Forced break kept: letting LaTeX flow naturally split the Bosch position across pages with no
% continuation header, which costs more in information hierarchy than page-1 white space does.
\newpage
\begin{rSection}{Professional Experience (continued)}
\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 and backend services --- with Ansible playbooks version-controlled in Git and applied from Jenkins and GitLab pipelines.
\item Extended Ansible with a custom credential plugin that retrieved secrets from a password keystore and cached them locally, cutting repeated lookups.
\item Integrated containerized ML inference into a continuously operating semiconductor fab using Docker, Kubernetes and Ansible, automating image-based defect classification and reducing manual inspection work for line engineers.
\item Built an anomaly-detection proof of concept on ELK and Kafka in Docker, with Grafana, Prometheus and Loki monitoring, to validate centralized logging and alerting for 24/7 production systems.
\end{rSubsection}
\begin{rSubsection}{Fraunhofer CML}{Sep 2018 -- Oct 2019}{Research Software Engineer}{Hamburg, Germany}
\item Set up the research team's first Jenkins CI/CD pipeline with quality gates while developing C\#/.NET software and containerized microservices for maritime research platforms.
\end{rSubsection}
\begin{rSubsection}{Vizrt}{Jul 2017 -- May 2018}{Test Automation / DevOps Engineer}{Bergen, Norway}
\item Automated audio and video integration testing in Python for broadcast software, then wired the suite into CI/CD quality gates to shorten the feedback loop on new features.
\end{rSubsection}
\begin{rSubsection}{Generali Deutschland Informatik Services GmbH}{May 2015 -- Jun 2017}{IT Consultant}{Hamburg, Germany}
\item Introduced BDD test automation through a proof of concept and held technical responsibility for the suite and its Jenkins jobs, training colleagues across the internal Java community.
\end{rSubsection}
\end{rSection}
\begin{rSection}{Personal Projects}
% No date range: claims.json PP-3 records only a self-reported "~10 years", so a precise
% start year would assert more than the KB supports. The bullet carries the approximation.
\begin{rSubsection}{Self-hosted Linux server}{Ongoing}{Personal project}{}
\item Run and harden a self-hosted Debian server in continuous operation for around ten years, serving nginx, mail, Nextcloud, a VPN and Docker services.
\end{rSubsection}
\end{rSection}
\begin{rSection}{Education}
\compactentry{M.Eng. Computer Aided Engineering (Software Design \& Engineering), Universität der Bundeswehr München}{Apr 2012 -- Oct 2013}
% Thesis grade omitted: claims.json grade_output_rule allows the 1.0 only "where academic
% performance is genuinely valued". A 10+-years hands-on infrastructure role is not that.
Thesis at Tongji University, Shanghai: \textit{Development of a Web-Based Remote Fault Diagnosis System}.
\compactentry{B.Eng. Information and Telecommunication Technologies, Universität der Bundeswehr München}{Oct 2009 -- Oct 2012}
\end{rSection}
\end{document}