Scout triage 2026-10-20 - 109 new rows screened; 23 JDs read in full and logged with the failing line quoted; 4 Google reqs screened 10-21. One new maybe (Google Senior SRE, YouTube ML); SBB Team Ampere skipped on the user's Niveau rule (J). Google Staff Software Engineer, Shopping Graph (Feeds Infra), Zurich - Chosen as the single Google application after comparing all live Zurich reqs. Evidence Fit 70, Stretch (Staff-level technical leadership is the defining responsibility and only Adjacent), hard gate PASS, channel weak. - Resume generated, critiqued (Document Quality 84), edited for leadership framing, finalized and submitted 2026-10-21. No cover letter. - The summary line "sets the technical direction for the data products of his domains" rests on the user's 2026-10-21 statement and is deliberately NOT in claims.json (user request); recorded in the session Edit History. - Registry: new applied entry; the Commerce entry is marked superseded. KB: software design and architecture - User-confirmed 2026-10-21: design and architecture of the ingestion and inference scripts at Bosch (2020-22) and of data products at Swisscom; the two together exceed three years. Recorded on BS-1, BS-2 and SW-7, with `designed` added to the BS-1/BS-2 verbs, scoped to his own scripts and the inference integration (the first patch over-extended it to the data services and was trimmed the same session). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
11 KiB
11 KiB
Configuration
Edit this file with your personal details. Every skill reads this file.
Personal Info
- Name: Dennis Thiessen
- Degree suffix: M.Eng.
- Email: dennis@thiessen.io
- Phone: +41 795 955 585
- Location (contact line): Bern, Switzerland by default. Use Thun, Switzerland / Thun, Schweiz for roles in Thun or its immediate surroundings - the user lives in Thun, and local residency at the employer's own location is a real screening signal for traditional Swiss employers (user-decided 2026-08-27). This applies to the contact line only; a position's own location stays factual, e.g. the Swisscom entry keeps Bern.
- LinkedIn: linkedin.com/in/dennis-thiessen
- Google Scholar: [leave blank — not applicable]
- ORCID: [leave blank — not applicable]
- Website: [URL or leave blank]
Document Preferences
- Default profile: International Tech (US-tech/FAANG conventions for roles in Europe)
- International Tech resume: 2 pages, 10.5--11pt, conventional employer/title/date headers
- Swiss/DACH resume: 2 pages by default; 3 only when the employer explicitly expects a fuller local dossier
- Experience bullets: 11--14 total as a relevance guide, not a page-fill quota; use natural 1--3 line lengths
- Skills: 4--6 compact lines; evidence-backed skills only; certifications listed once
- Summary: Optional; maximum 2--3 rendered lines
- Photo: Omit for International Tech. Optional only for a traditional Swiss/DACH employer and only by user choice
- Personal data: Never include date of birth, marital status, gender, or children
- Work authorization: German citizen (EU), Swiss B residence permit; no visa or employer sponsorship required. Store for portal questions and use on the resume only when it resolves recruiter uncertainty
- Cover letter: Conditional, following
resume_builder/reference/cl_reference.md; never generate merely to complete a fixed package
Provenance Flags
Track the publication status of your work. Skills check this table before every output.
| Item | Status | Correct Framing |
|---|---|---|
| All work experience | professional/employed | Owned/built/led — full-ownership verbs where you were primary developer |
| RiskAhead app | personal project (discontinued) | "Personal project, 2015–2017" — not peer-reviewed, not published |
| Master's thesis (Tongji University) | academic — completed | "Master's Thesis, Tongji University, Shanghai" |
| VICE article mention | media coverage of RiskAhead | "Featured in VICE (Germany)" — not a publication |
KB Corrections Log
Verified errors to never re-introduce. Add entries as you catch mistakes.
| Correction | Details |
|---|---|
| Capgemini omitted from all documents | Standing user preference. Capgemini Deutschland GmbH (Nov. 2014 - Mai 2015) must never appear on a resume, CV or cover letter - only six months, and the user does not want the short-stay impression. The visible chronology starts at Generali, Mai 2015. The resulting Nov. 2014 - Mai 2015 gap is intentional and must never be "fixed" or explained away. Any tenure claim in a summary line ("over ten years") is measured against the visible record from Mai 2015. Regressed once into the RUAG C5I draft on 2026-08-27 because this rule lived only in memory. |
| Degree name | B.Eng. official name: "Information and Telecommunication Technologies". M.Eng. official name: "Computer Aided Engineering" with focus in Software Design and Software Engineering. Use "Software Design & Engineering" as the focus description on resumes — more recognizable than the official programme name. |
| Education dates | B.Eng. Oct 2009 – Oct 2012 (start 10/2009, finished 01.10.2012). M.Eng. Apr 2012 – Oct 2013 (01.04.2012 – 01.10.2013). Programmes overlap by design — do NOT "fix" the overlap. Both at Universität der Bundeswehr München. |
| Swisscom title | Senior: Oct 2023 – Apr 2025. Staff (Engineer IV): Apr 2025 – Present. Use "Staff Data, Analytics & AI Engineer" for current role; note promotion if space allows. |
| Swisscom data domains | Fulfillment and Product Analysis — use both when describing scope of pipeline work. |
| French + Italian in Zeugnis | Swisscom Zeugnis lists French and Italian — this is HR boilerplate, NOT accurate. Do NOT include on any resume or CV. Actual languages: German (native), English (fluent), Norwegian + Russian (basic, non-professional). |
| 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). Updated 2026-10-21: software design and architecture were part of his work at Bosch (ingestion/inference scripts, 2020-2022) and at Swisscom (data products); combined they exceed three years. The Swisscom start date stays undated, and design is scoped to his own components, never shared-platform architecture or an architect title. 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.
Role Types
Define the role types you're targeting. Each gets a bundle during setup.
| Role Name | Target Employers | Tier | Bundle File |
|---|---|---|---|
| Staff / Senior Data Engineer | Tech companies, scale-ups, platform teams | 1 | bundle_data_engineer.md |
| Analytics Engineer | Data-driven companies, BI/analytics teams | 2 | bundle_analytics_engineer.md |
| ML Platform / MLOps Engineer | Teams hiring for deployment, infrastructure and production operations rather than model research | 2 | bundle_ml_ai_engineer.md |
| Data Platform / Infra | AWS-heavy data-platform teams where Terraform or a dedicated SRE background is not a hard gate | 2 | bundle_data_platform.md |
| Semiconductor Data / AI Engineer | Semiconductor manufacturers, equipment makers (Infineon, ASML, GlobalFoundries, NXP, STMicro, Bosch) | 2 | bundle_semiconductor.md |
Tier guide: 1 = strongest evidence, full portfolio | 2 = strong with targeted emphasis | 3 = viable with careful framing
Role-Type Decision Tree
Customize this to map JD keywords to your role types.
| If JD mentions... | Primary profile | Secondary (hybrid) |
|---|---|---|
| ETL, pipelines, Airflow, dbt, data warehouse | Staff/Senior Data Engineer | Analytics Engineer |
| ML inference, model deployment, MLOps | ML Platform / MLOps Engineer | Staff Data Engineer |
| Dashboards, BI, stakeholder reporting | Analytics Engineer | Staff Data Engineer |
| AWS, Glue, Athena, Redshift, infrastructure | Data Platform / Infra | Staff Data Engineer |
| Semiconductor, fab, wafer, defect, yield | Semiconductor Data / AI Engineer | ML Platform / MLOps Engineer |
| LLM agents, fine-tuning, RAG evaluation, AI research | Stretch unless the required direct experience is optional | ML Platform / MLOps Engineer |
| SRE, Terraform, platform SDK, developer platform | Stretch when any is a required direct qualification | Data Platform / Infra |
FIXED Sections
List template sections that should NEVER be modified during generation. These are copied verbatim from your template every time.
- Education
- Certifications (when listed as standalone section)
- Header block (name, contact, links)
- [Add any other fixed sections]
Output Rules
- Email in all outputs: dennis@thiessen.io
- Default resume: 2-page International Tech profile
- Local alternative: 2-page Swiss/DACH profile
- Cover letter: Generate only when required or when it adds information not visible in the resume
- Academic CV: Not a default target. Generate only for an explicitly academic/research application
- The
.texis the deliverable and the source of truth - never hand-edit a PDF, and always regenerate from the source - Compile the PDF into the application's own
output/folder so the user can review and approve it. A.texalone is not reviewable for him. Never leave the only PDF in a temp directory, and never leave a stale pre-edit PDF next to the deliverable (user-reported 2026-08-27). - If a submission-named copy exists (e.g.
Dennis_Thiessen_Lebenslauf.pdf), refresh it on every recompile. It is a copy, not a build target, so it silently goes stale under exactly the filename that gets attached to an application.