diff --git a/output/CitadelSecurities_PlatformEngineer/e2e_citadel_securities_platform_engineer_cover_letter.tex b/output/CitadelSecurities_PlatformEngineer/e2e_citadel_securities_platform_engineer_cover_letter.tex new file mode 100644 index 0000000..08c3006 --- /dev/null +++ b/output/CitadelSecurities_PlatformEngineer/e2e_citadel_securities_platform_engineer_cover_letter.tex @@ -0,0 +1,57 @@ +% Citadel Securities — Platform Engineer, Research Platform Engineering (Zurich) +% Cover Letter Decision: YES — domain transition needs explaining; the resume can carry PP-1 +% only as a compact block and cannot show why a Swisscom data engineer wants this seat. +% Industry format per cl_reference.md: 3 short paragraphs, 200--300 words. +% Hooks: JD text only (first-party, scraped verbatim). No named executives — cl_reference.md +% says omit an unnecessary hook rather than spend words proving company familiarity. +% Every claim traceable to the resume. PP-1: no performance figure, labelled personal. + +\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} +Research Platform Engineering\\ +Citadel Securities\\ +Zurich, Switzerland + +\vspace{1em} +26 August 2026 + +\vspace{1em} +\textbf{Application for Platform Engineer, Research Platform Engineering} + +\vspace{0.8em} +Dear Hiring Team, + +The posting describes data systems for ingestion, transformation, storage and lifecycle management of large datasets, built so that researchers can work without fighting their infrastructure. That is my day job. At Swisscom I am Component Owner for business-critical Fulfillment ETL -- a distributed system across Oracle, Kafka, Python and Teradata -- and I build the governed data products that analytics and AI teams consume. I carry the data quality and the on-call pager for that estate, which is a different relationship to a system than having built it and moved on. + +What draws me to research platform work specifically is that I already build this kind of system for myself. Outside work I built a self-hosted equity signal platform: it ingests daily prices, fundamentals and sentiment, runs a long-only cross-sectional momentum book through scheduled scan and backtest pipelines, and surfaces the gated setups to a dashboard. It is a personal system, not a production service, and I make no claims for its results. But it is the reason I understand what a researcher actually needs from a platform -- fast iteration, reproducible runs, and trust that the data underneath is right -- rather than knowing it only as a requirements document. + +I should be straightforward about the shape of my experience: I have built and operated data products and pipelines on a platform, not authored a research platform at firm scale. That step is the reason the role interests me, and the operational judgement I would bring to it is real. I am based in Bern, hold EU citizenship and a Swiss B permit, and need no sponsorship. + +\vspace{0.8em} +I would welcome the chance to talk. + +\vspace{1em} +Kind regards, + +\vspace{1.5em} +Dennis Thiessen + +\end{document} diff --git a/resume_builder/bundles/bundle_data_platform.md b/resume_builder/bundles/bundle_data_platform.md index 1e01a5e..f09eb1d 100644 --- a/resume_builder/bundles/bundle_data_platform.md +++ b/resume_builder/bundles/bundle_data_platform.md @@ -106,11 +106,18 @@ Kubernetes, Docker, AWS (S3 · Glue · Athena · Redshift · CloudFormation), Ka **Institution type:** Cloud-first tech company, scale-up with AWS-heavy stack, enterprise platform team, or data infrastructure consultancy **Opening hook pattern:** -> "Across my career at Swisscom and Bosch, I've owned data infrastructure at two ends of the spectrum: migrating Swisscom's legacy ETL stack to a cloud-native AWS platform (CloudFormation, Glue, Athena with Iceberg, Airflow) while operating Kubernetes-deployed Python applications with GitLab CI/CD — and containerizing ML inference into a 24/7 semiconductor production line at Bosch using Docker, Kubernetes, and Ansible. In both cases, the infrastructure had to be production-grade with no tolerance for downtime. [Tie to their platform challenge]." +> "Across my career at Swisscom and Bosch, I've owned data infrastructure at two ends of the spectrum: migrating my own domains' pipelines onto Swisscom's AWS platform (CloudFormation, Glue, Athena with Iceberg, Airflow) as part of its wider cloud programme, while operating Kubernetes-deployed Python applications with GitLab CI/CD — and containerizing ML inference into a 24/7 semiconductor production line at Bosch using Docker, Kubernetes, and Ansible. In both cases, the infrastructure had to be production-grade with no tolerance for downtime. [Tie to their platform challenge]." + +> **Scope warning (corrected 2026-08-26).** This hook previously read "*migrating Swisscom's legacy +> ETL stack to a cloud-native AWS platform*" — a full-ownership framing on a company-scale object, +> contradicting `claims.json` SW-1 (`forbidden`: "migrated the company warehouse", "led the migration +> of the legacy warehouse"). Same defect fixed in `bundle_data_engineer.md` on 2026-08-21; this +> bundle was missed by that sweep. Never pair a full-ownership verb with a company-scale object. +> See CLAUDE.md → Scope Discipline. **Key narrative thread:** 1. **Production Kubernetes** — SW-3 + BS-1: K8s at two employers, in different contexts (data apps at Swisscom, ML inference at Bosch). Cross-employer K8s ownership is a strong signal. -2. **Full AWS platform stack** — SW-1: Not just using one AWS service — migrating an entire ETL infrastructure to AWS with CloudFormation/IaC shows platform-level thinking. +2. **AWS platform breadth** — SW-1: not just one AWS service — migrating his own domains' pipelines with CloudFormation/IaC, inside the wider company programme, shows platform-level thinking. **Never write "an entire ETL infrastructure" or any company-scale object here** (corrected 2026-08-26). 3. **Observability initiative** — BS-4: Self-initiated ELK + Prometheus + Grafana PoC shows platform engineer mindset (monitoring is not optional). 4. **Operational accountability** — use Component/Application Owner evidence. Security Champion is optional and never a substitute for production ownership. diff --git a/resume_builder/bundles/bundle_ml_ai_engineer.md b/resume_builder/bundles/bundle_ml_ai_engineer.md index 64fe933..dbc26fa 100644 --- a/resume_builder/bundles/bundle_ml_ai_engineer.md +++ b/resume_builder/bundles/bundle_ml_ai_engineer.md @@ -59,7 +59,7 @@ |----|----------------|--------------------|--------------------| | BS-1 | ML inference containerization | **LEAD bullet** — "Designed and deployed ML inference pipeline (Docker, K8s, Ansible) into 24/7 semiconductor fab; automated image-based defect classification" | Production ML in constrained 24/7 environment | | SW-3 | K8s + GitLab CI/CD | "Deployed and operated ML-ready Python applications on Kubernetes with GitLab CI/CD automation — production-grade containerized delivery" | K8s ownership = MLOps infrastructure | -| SW-1 | AWS migration | "Built cloud-native data infrastructure on AWS (S3, Glue, Athena/Iceberg, Redshift, Airflow) — the scalable data layer that ML models depend on" | AWS data lake for ML workloads | +| SW-1 | AWS migration | "Migrated his domains' pipelines onto Swisscom's AWS platform (S3, Glue, Athena/Iceberg, Redshift, Airflow) — the data layer ML workloads depend on" — **corrected 2026-08-26**, previously read "Built cloud-native data infrastructure… the scalable data layer", pairing a full-ownership verb with an org-scale object (SW-1 `forbidden`) and asserting unverified scale | AWS data lake for ML workloads | | SW-2 | Component Owner | "Owned business-critical ETL pipelines (Oracle/Kafka → Teradata) — reliable data supply for downstream ML and analytics" | Data reliability for ML input | | FC-2 | ARTUS NLP | "Contributed ML and speech recognition components to ARTUS — Fraunhofer research project targeting automatic sea rescue transcription" | Applied NLP in safety-critical domain | | BS-4 | ELK PoC | "Delivered anomaly detection PoC: ELK + Kafka pipeline with Grafana/Prometheus monitoring — ML-adjacent signal processing" | Anomaly detection / observability |