Compare commits

...

7 Commits

Author SHA1 Message Date
dennisthiessen b4fe2505ef chore(repo): Codex skills mirror, scout scratch-dump ignores, allowlist
- AGENTS.md + .agents/skills/: Codex-compatible mirror of the CLAUDE.md
  instructions and the .claude skill set.
- .gitignore: ignore job_scout/jd_*.txt and *_verify.txt one-off
  Playwright scrape dumps (applied JDs are archived in JDs/ + output/).
- settings.local.json: permission allowlist churn from recent sessions.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 13:58:52 +02:00
dennisthiessen e286c6a9bb docs(applications): Google DE interview prep brief + STAR stories
Prep materials for the Google Senior Data Engineer (Merchant Data
Science) process after passing the Hiring Assessment 2026-06-20:
interview prep brief + STAR story bank alongside the session files.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 13:58:43 +02:00
dennisthiessen 127e2dbf87 feat(job_scout): score the forward-deployed/field/resident lane
Adds positive keywords (forward deployed, field engineer, resident
architect/engineer, customer engineer) and title-filter entries so
vendor deploy-to-customer roles surface — the lane matched to
user_international_mobility (intl scope from Bern, travel-OK, no
relocation). Bare "resident" stays title-filter-only to avoid
re-opening the pre-sales-SA overscoring trap.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 13:58:42 +02:00
dennisthiessen 23e2185aa0 chore(kb): upgrade BS-5 to verified TAF 2022 Spotfire platform ownership
BS-5 was a thin "C# extensions" note; now records the verified reality
(Playwright scrape of community.spotfire.com, 2026-06-15): co-ownership
of Bosch's Spotfire analytics platform and the TAF 2022 co-presentation
"Understanding Spatial Variability in Semiconductor Products with
Spotfire Map Charts". Reframing bumped to MED-HIGH for BI-bridged JDs;
new 1L/2L variants. First consumed by the Microsoft ISE package (merged
BS-3+BS-5 bullet; TAF talk reserved for the CL).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 13:58:42 +02:00
dennisthiessen 2ee509bb34 feat(applications): submit Microsoft ISE Senior SWE Zürich (2026-07-03)
Microsoft — Senior Software Engineer, Industry Solutions Engineering
(ISE), Zürich, req 200040836. Applied 2026-07-03, ~7 days after posting.

- Package: 2pp resume (18 bullets) + 1pp CL (299 words), critiqued to
  85.8/100 (Pass 2). Same-day cycle: verbatim Eightfold JD fetch ->
  build -> critique 83.3 -> Tier 1+2 fixes -> 85.8 -> submit.
- Fixes applied: "model evaluation" completes the JD's RQ triple
  verbatim; open-source stack labeled in skills; summary gains LLM +
  cross-functional, on-call bound to Component Owner (precision).
- CL hooks all web-verified: ISE Engineering Fundamentals Playbook,
  SharePoint-permissions-to-RAG blog, USD 400M Swiss datacenter.
- Logs 'applied' in job_scout decisions.json, flips the CLAUDE.md
  Active Sessions row to SENT, archives the JD under JDs/.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 13:58:28 +02:00
dennisthiessen ad5422acb0 chore(applications): Kraken SRE rejected; Google DE advanced to Hiring Assessment
2026-06-17 status updates:
- Kraken (Payward) SRE, AI Agents -> CLOSED, REJECTED (no interview).
  Honest infra/SRE gaps (Terraform, SRE title, agent frameworks) the
  likely filter. decisions.json -> rejected.
- Google Senior Data Engineer -> ADVANCED. Resume cleared recruiter
  screen; invited to ~30-min Google Hiring Assessment (work-styles/SJT).
  Open item at recruiter stage: clarify L4/L5 + comp clears 180k+.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-17 13:53:09 +02:00
dennisthiessen cad2c230eb feat(applications): submit Google Sr Data Engineer + Kraken SRE AI Agents (2026-06-15)
Two applications sent and finalized on 2026-06-15:

- Google - Senior Data Engineer (Merchant Data Science, Zurich), 85.5/100.
  Tier-1 scope fix + both Tier-2 polish applied: re-scoped the Swisscom
  migration claim in resume B2 + CL P2 (Scope-Discipline), added project-
  delivery vocab (B4), and JD-exact 'distributed data processing' (B5).
- Kraken (Payward) - SRE, AI Agents (remote, CH-eligible), 87.2/100.
  Finalized as-is; crypto-native + production-ML edge, honest infra gaps.

Logs both as 'applied' in job_scout/state/decisions.json and flips their
CLAUDE.md Active Sessions rows to SENT. Open item for both: confirm level
and comp clear the 180k+ all-in bar at the recruiter stage.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-15 19:57:18 +02:00
36 changed files with 4698 additions and 12 deletions
+111
View File
@@ -0,0 +1,111 @@
---
description: Re-critique existing resume/CV output files against a JD
user-invocable: true
---
# /critique
**User input:** `$ARGUMENTS`
Parse `$ARGUMENTS`:
- Session file path (e.g., `output/Acme/session_acme_engineer.md`) → read session file, derive .tex paths from Output Files
- .tex file path(s) + JD source (existing format) → backward compatible
- Session name (e.g., `acme_engineer`) → find session file via derivation
If no CL .tex provided or found in session file, critique resume/CV alone (Part 7 adjustments noted below).
---
## Safety Rules
**Accuracy > Relevance > Impact > ATS > Brevity**
Read `config.md` Provenance Flags. Verify every claim against that table.
**JD integrity:** the critique is only as valid as the JD. If the JD source is a reconstruction/inference/template rather than the real posting (see `shared_ops.md` → JD Integrity), STOP — flag it to the user and offer to scrape the live posting (Playwright recipe) before critiquing. Never score against a fabricated JD.
Check `config.md` KB Corrections Log — do not flag corrected items as errors.
Use the email from `config.md` Personal Info — flag if a different email appears in output.
FIXED sections (from `config.md` FIXED Sections) are template-locked — do not flag for editing. Flag only VARIABLE sections.
---
## User Input During Execution
If the user provides feedback, corrections, or suggestions at any point:
1. Acknowledge the input immediately
2. If it changes scoring criteria or focus: adjust the critique accordingly
3. Never restart — resume from current position
---
## Startup
Read `resume_builder/reference/shared_ops.md` — Fresh Session Startup + Session File Derivation.
Read `AGENTS.md` — check Active Sessions and KB Corrections.
Read `config.md` — load Provenance Flags, FIXED Sections, email.
Find and read the session file for the .tex being critiqued (use derivation protocol from shared_ops.md).
**Recovery check:**
- If CL not DONE in session file → "CL not yet generated. Run `/make-cl` first."
- If Critique: CURRENT → "Already critiqued (score X/100). Re-run? Waiting for confirmation."
- If Critique: STALE → "Edits made since last critique. Re-critiquing."
- If Critique: PENDING → proceed
---
## Protocol
1. **Read session file** — specifically note:
- **Company Context** → reviewer persona, "why this company"
- **Framing Strategy** → intentional reframing decisions (flag only execution inconsistencies, not the strategy itself)
- **Cover Letter Plan** → CL structure rationale
- **Critique Context** → reviewer persona, competitive landscape, domain vocabulary
- If session file lacks Company Context or Critique Context: do 1-2 web searches to fill gaps
2. Read `resume_builder/reference/critique_framework.md`
3. Read `resume_builder/support/ai_fingerprint_rules.md` — use Section 6 checklist in Part 7 verification
3. Read the .tex file(s) — derive paths from session file Output Files, or from `$ARGUMENTS`
4. Read the JD (path from `$ARGUMENTS` or session file)
5. Read the relevant bundle (`resume_builder/bundles/bundle_[role_type].md` — from session file)
6. Run char count:
```bash
python3 resume_builder/helpers/char_count.py -f [resume|cv] [file.tex]
```
7. Compile and visually verify:
```bash
pdflatex -interaction=nonstopmode -output-directory=output/<FolderName> [file.tex]
```
Use the Read tool to view the compiled PDF — check orphans, page fill, header wrapping.
If compile fails: note "COMPILE FAILED — visual checks could not be verified" in Part 8.
8. If a prior critique exists (`output/<FolderName>/critique_<name>.md`): read it and note previous score.
8b. **Paper Hook Verification:** If the CL cites named papers, PIs, programs, or publications, web-search to verify title, journal, year, and PI affiliation. Flag factual errors as Tier 1 fixes.
9. **Run the full critique per critique_framework.md. The output MUST contain ALL 8 sections** (even if the framework file has partially compacted, produce every section):
1. **Domain-Specialist Lens** — 7 elements:
(a) Reviewer persona (b) Company context (c) JD vocabulary extraction (d) Domain vocabulary map
(e) Gap ranking (fatal/serious/cosmetic) (f) Methodology transfer test (g) Competitive landscape
2. **Five-Perspective Read-Through** — ATS, Recruiter (10s), HR (30s), HM (2min), Technical (10min) — each with verdict
3. **Eight-Dimension Scoring** — weighted table summing to 100
(ATS 15%, Summary 10%, Skills 10%, Bullets 25%, Publications 10%, Narrative 15%, Visual 5%, Credibility 10%)
4. **Interview Likelihood** — per-reader probability + ceiling analysis
5. **Tiered Improvements** — Tier 1 (>=1pt each), Tier 2 (0.3-0.9), Tier 3 (<0.3)
6. **Interview Bridge Points** — 5-7 resume-to-interview talking points
7. **Cover Letter Critique** — 6 sub-checks (6A anti-patterns, 6B tailoring, 6C context-specific, 6D ATS, 6E structural, 6F package cohesion)
- **If no CL provided:** Skip 6A-6E. Run 6F as resume standalone assessment — evaluate whether the resume earns an interview without a CL. Note: "Cover letter not provided — package cohesion not assessed."
8. **Post-Generation Verification** — mechanical + content + structural checklists
10. Save to `output/<FolderName>/critique_<name>.md`
11. **Update session file** — Critique Summary (score, findings, tier 1 fixes), Status → Critique: CURRENT
12. **Update memory pointer** with new score
Progress: "Reading session file for framing context..." / "Running ATS keyword scan — 16/20 match..." / "Scoring 8 dimensions..." / "Score: 87.0/100"
### >>>>>> MANDATORY STOP <<<<<<
Present: score table + tier 1 actionable fixes + interview likelihood.
**You MUST wait for the user's explicit text response before continuing.**
If edits needed, tell user to run `/edit-resume`.
### When user approves / says "looks good" / finalizes:
Verify all expected files exist in `output/<FolderName>/`:
- session file, resume/CV .tex + .pdf, CL .tex + .pdf, critique .md
- Compile artifacts (.aux, .log, .out)
Confirm to user: "Package complete in output/<FolderName>/ — [list files]"
+208
View File
@@ -0,0 +1,208 @@
---
description: Edit existing resume/CV or cover letter from critique feedback and user suggestions
user-invocable: true
---
# /edit-resume
**User input:** `$ARGUMENTS`
Parse `$ARGUMENTS`: First argument is the .tex file path (required). A `.md` path is the critique file. Text in quotes is inline instructions.
- `/edit-resume output/Acme/e2e_acme_resume.tex`
- `/edit-resume output/Acme/e2e_acme_resume.tex output/Acme/critique_acme.md`
- `/edit-resume output/Acme/e2e_acme_resume.tex "shorten Position 1 header, fill last page"`
If only .tex path and no instructions: ask the user what to fix.
---
## Safety Rules (ALWAYS ENFORCED)
**Accuracy > Relevance > Impact > ATS > Brevity**
Read `config.md` Provenance Flags before editing any content. Verify every claim against that table.
- Use the email from `config.md` Personal Info in all outputs
- Source ALL bullet content from `resume_builder/experience/` files. Never fabricate.
- Resume bullets: ALL variable bullets must be 2L (CV: 2L/3L mix OK, check `config.md` Document Preferences)
- Run `python3 resume_builder/helpers/char_count.py` after edits — the tool is authoritative
### FIXED Sections — Refuse if Asked to Edit
Check `config.md` FIXED Sections for the list of template-locked sections. Say no and explain: these are template-locked across all outputs.
VARIABLE sections only: Summary, Technical Skills, Research Experience bullets/headers.
---
## User Input During Execution
If the user provides feedback, corrections, or suggestions at any point:
1. Acknowledge the input immediately
2. If it affects an already-applied edit: go back, fix it, re-run char count gate
3. If it changes the edit plan: update session file, adjust remaining edits
4. If it's a question: answer it, then continue from current step
5. Never restart a phase — resume from current position
---
## Startup
Read `resume_builder/reference/shared_ops.md` — Fresh Session Startup + Session File Derivation.
Read `AGENTS.md` — check Active Sessions and KB Corrections.
Read `config.md` — load Provenance Flags, email, FIXED Sections, document preferences.
Find and read the session file (use derivation protocol from shared_ops.md).
**Recovery check:**
- Read session file, check for existing Edit N Status
- If Edit N Status shows IN_PROGRESS: read .tex, identify which edits are done, resume
- If no edit in progress: proceed to Phase 1
---
## Phase 1: Load Context
Read in this order:
1. **Session file** (`output/<FolderName>/session_<name>.md`) — note: Framing Strategy, Company Context, Bullet Plan, Edit History
2. `resume_builder/reference/resume_reference.md` — char limits, budgets, fixed sections
3. The .tex file being edited
4. Critique file (if provided in `$ARGUMENTS`)
5. JD file (path from session file's JD Info section)
6. Compile current .tex and record baseline page count
7. Run: `python3 resume_builder/helpers/char_count.py -f [resume|cv] [file.tex]`
**Record baseline in session file** under `## Edit [N] Baseline` (scan existing Edit History sections; next N = max existing + 1, or 1 if none):
```
## Edit [N] Baseline
- Pages: [N]
- Char violations: [list or "none"]
- Orphan violations: [list or "none"]
- White space last page: [N lines]
- Variable bullets: [N]
- Rendered lines: [N]
```
Progress: "Reading session file — [company], [role type] bundle..." / "Baseline: 2 pages, 0 char violations, 1 orphan..."
---
## Phase 2: Diagnose & Plan Edits
Gather change requests from THREE sources:
1. **User instructions** from `$ARGUMENTS` (highest priority)
2. **Critique file** (Tier 1 fixes first, then Tier 2)
3. **Auto-detected issues** from Phase 1 (char violations, orphans, page fill)
Cross-check against **session file framing strategy** — edits must stay consistent with decisions from `/make-resume`.
**For each change, classify:**
- **MODIFY:** Change text of existing bullet/summary/skills. Budget unchanged.
- **SWAP:** Replace one bullet with another. Budget unchanged if same variant.
- **ADD:** Insert new bullet. Budget increases by rendered lines.
- **REMOVE:** Drop a bullet. Budget decreases.
- **VARIANT CHANGE:** e.g., 2L → 3L. Budget changes by rendered line delta.
- **FIXED:** Blocked — show in plan with `[FIXED — cannot edit]` and explain why.
**Budget revalidation (if any change is ADD, REMOVE, SWAP-with-different-variant, or VARIANT CHANGE):**
Recalculate total variable bullets and rendered lines. Compare against budget from resume_reference.md.
If OVER budget: present overflow and ask user which bullet to drop or shorten.
Show: `Budget: [N] bullets ([M] rendered lines) vs target [T]. PASS/FAIL`
If edit targets **cover letter** (not resume/CV): note this — Phase 4 will use CL-specific gates. Load CL .tex path from session file Output Files section.
### >>>>>> MANDATORY STOP — DO NOT PROCEED <<<<<<
Present numbered edit plan. Each item shows: what, why, source, classification (MODIFY/ADD/SWAP/FIXED).
**You MUST wait for the user's explicit text response before continuing.**
Proceeding without confirmation may make unwanted edits that break package consistency.
---
## Phase 3: Load Reference Files (only confirmed edits)
Load ONLY what the confirmed edits need:
- **All edits:** `resume_builder/support/ai_fingerprint_rules.md` — scan for banned words/patterns before and after edits
- **Bullet expand/rewrite/add:** `resume_builder/experience/` files + matching bundle + `resume_builder/support/achievement_reframing_guide.md`
- **Summary rewrite:** Bundle (S2 summary guide) + `resume_builder/support/skills_taxonomy.md`
- **Cover letter edits:** `resume_builder/support/significance_*.md` + `resume_builder/reference/cl_reference.md`
- **Simple fixes** (orphans, headers, spacing): No extra files needed
---
## Phase 4: Execute Edits
Apply edits one section at a time. After each edited section:
1. Run char count gate:
```bash
python3 resume_builder/helpers/char_count.py -f [resume|cv] output/<FolderName>/[file].tex
```
2. Fix any OVER violations or orphans before next section
3. If a bullet expansion doesn't render as expected (1L when targeting 2L, or 3L), adjust immediately
Update session file Edit N Status after each individual edit:
- Edit 1 (orphan fix): DONE
- Edit 2 (Summary rewrite): IN_PROGRESS
### Resume/CV Verification Gates
| Gate | Check | If FAIL |
|------|-------|---------|
| Char count | No OVER violations | Fix bullet before proceeding |
| Page fill | Resume: <= 3 lines white space. CV: check rendered line target | Expand/trim variable bullets |
| Page count | Match `config.md` Document Preferences | Trim/expand variable content |
| Orphan | 2L bullet last line >= 70% | Pad or trim |
| Title width | Position title + date fits 1 line | Shorten title |
| Compile | Clean pdflatex | Fix LaTeX errors |
### Cover Letter Verification Gates (if CL was edited)
| Gate | Check | If FAIL |
|------|-------|---------|
| Word count | Industry 250-300, Lab/Academic 350-450 | Trim/expand |
| Page fill | 1pg: well-filled. 2pg: page 2 >= half filled before signature | Adjust |
| Paragraph count | Industry 3, Lab/Academic 4 | Restructure |
| Anti-patterns | No generic opener, no defensive framing, no credential dump | Rewrite |
| Package cohesion | CL claims traceable to resume bullets, no contradictions | Fix |
After all edits, compile:
```bash
pdflatex -interaction=nonstopmode -output-directory=output/<FolderName> output/<FolderName>/[file].tex
```
Use the Read tool to view the compiled PDF — check page count, white space, orphans, header wrapping.
Progress: "Editing Position 1 bullet 6 — was 184 chars, now 197..." / "Compiling... 2 pages, page fill OK"
---
## Phase 5: Update Session File & Present
1. **Append Edit History** (use the N from Phase 1 baseline):
```
### Edit [N] ([date]): [short description]
- Changes: [what changed]
- Source: critique item # / user request / auto-detected
- Verification: gates passed
```
2. **Compare against baseline:**
| Metric | Before | After | Delta |
|--------|--------|-------|-------|
| Page count | [N] | [N] | [+/-] |
| Char violations | [N] | [N] | [+/-] |
| Orphans | [N] | [N] | [+/-] |
| White space | [N] | [N] | [+/-] |
Flag any metric that worsened.
3. **Update Status** — mark critique as STALE if edits made after last critique. Update Next.
4. **Update memory pointer** if status changed.
5. **Present:** Changes summary + delta table + compiled PDF.
### >>>>>> MANDATORY STOP <<<<<<
Show results. Wait for user approval or further edits.
**You MUST wait for the user's explicit text response before continuing.**
### When user approves / says "looks good" / finalizes:
Run file organization from `resume_builder/reference/shared_ops.md` — Finalization check.
+142
View File
@@ -0,0 +1,142 @@
---
description: Generate a tailored cover letter from an existing session file and finished resume/CV
user-invocable: true
---
# /make-cl
**User input:** `$ARGUMENTS`
Parse `$ARGUMENTS`:
- Session file path (e.g., `output/Acme/session_acme_engineer.md`) → read that session file
- Session name (e.g., `acme_engineer`) → find session file via shared_ops.md derivation
- Empty → check `AGENTS.md` Active Sessions for latest
---
## Safety Rules (ALWAYS ENFORCED)
**Accuracy > Relevance > Impact > ATS > Brevity**
Read `config.md` Provenance Flags before generating any content. Verify every claim against that table.
- Use the email from `config.md` Personal Info in all outputs
- CL deepens what resume presents — never introduces new claims not traceable to resume bullets
- Source field context from `resume_builder/support/significance_*.md` files
---
## User Input During Execution
If the user provides feedback, corrections, or suggestions at any point:
1. Acknowledge the input immediately
2. If it affects already-written content: fix it, re-verify word count and anti-patterns
3. If it changes the framing: note the change in session file Framing Strategy
4. Never restart — resume from current position
---
## Startup
Read `resume_builder/reference/shared_ops.md` for session startup and file derivation.
Then:
1. Read `AGENTS.md` — check Active Sessions and KB Corrections
2. Read `config.md` — load Provenance Flags, email, role types
3. Find and read the session file
4. **Recovery check:**
- If CL Status is DONE → "CL already generated. Run `/critique` next." Show next command. Stop.
- If CL Status is IN_PROGRESS → check if CL .tex exists, offer to resume or regenerate
- If Resume Status is not DONE → "Resume not yet generated. Run `/make-resume` first." Stop.
- If CL Status is PENDING → proceed to Phase 1
---
## Phase 1: Load Context
Read in this order:
1. **Session file** — specifically: Company Context, Cover Letter Plan, Framing Strategy, ATS Keywords
2. **Finished resume/CV .tex** — path from session file Output Files. Read to understand what CL must complement.
3. `resume_builder/reference/cl_reference.md` — CL format rules, paragraph templates, anti-patterns
4. `resume_builder/support/ai_fingerprint_rules.md` — Banned words, structural rules (CLs are most vulnerable)
5. The matching bundle from session file role type → `resume_builder/bundles/bundle_[role_type].md` — Section 5 (Cover Letter)
5. All significance files from `resume_builder/support/significance_*.md`
Update session file Status: `Cover Letter: IN_PROGRESS`
Progress: "Loading CL context — [company], [role type] bundle, [institution type]..."
---
## Phase 2: Generate Cover Letter
Read `resume_builder/templates/coverletter_template.tex`.
**Detect institution type** from session file Cover Letter Plan:
- Industry → 3 paragraphs, 250-300 words
- National Lab → 4 paragraphs, 350-450 words
- Academic → 4 paragraphs, 350-450 words (postdoc) or 450-650 words (faculty)
**Generate CL following cl_reference.md paragraph structure:**
- Use significance files for field-context depth (NOT resume bullet text)
- Use session file CL hooks and "why them" angle
- Ensure every major claim is traceable to a resume/CV bullet
- Open with a specific reference to their work — no generic openers
- Weave credentials into body paragraphs, not closing
Save to `output/<FolderName>/e2e_<name>_cover_letter.tex`
Progress: "Writing [institution type] cover letter — [N] paragraphs, targeting [N] words..."
### CL Hook Verification Gate (MANDATORY before presenting to user)
Web-search every hook used in the CL:
- Academic: PI name + cited paper/research area
- National Lab: named program, thrust area, or group publication
- Industry: product, technology, or company news referenced
Present evidence as:
> **Claim:** [what the CL says] → **Evidence:** [what the search found] → **Source:** [URL]
Flag any unverified item: **"UNVERIFIED — please confirm"**
Do NOT present the CL draft to the user until all hooks are verified or flagged.
---
## Phase 3: Compile & Verify
```bash
pdflatex -interaction=nonstopmode -output-directory=output/<FolderName> output/<FolderName>/e2e_<name>_cover_letter.tex
```
Use Read tool to view compiled PDF. Verify:
| Gate | Check | If FAIL |
|------|-------|---------|
| Word count | Industry 250-300, Lab/Academic 350-450 | Trim/expand |
| Page count | Resume package: 1 page. CV package: 1-2 pages | Adjust content |
| Page fill | 1pg: well-filled. 2pg: page 2 >= half filled before signature | Adjust |
| Anti-patterns | No generic opener, no defensive framing, no credential dump | Rewrite |
| Package cohesion | CL claims traceable to resume bullets, no contradictions | Fix |
| Compile | Clean pdflatex | Fix LaTeX errors |
Update session file:
- Add CL to Output Files
- Status: `Cover Letter: DONE`
- Add Next Critique command
Progress: "Compiled — 1 page, 278 words. Package cohesion verified."
### >>>>>> MANDATORY STOP — DO NOT PROCEED <<<<<<
Present: CL summary (word count, page count, key hooks used).
**You MUST wait for the user's explicit text response before continuing.**
If user requests changes: apply them, re-compile, re-verify. Update session file.
If user approves: update Status, present next command.
**Do NOT trigger file organization** — that happens after `/critique` approval.
"Cover letter done. Next steps:
1. /clear
2. [exact /critique command with session file path]"
+241
View File
@@ -0,0 +1,241 @@
---
description: Generate a tailored resume/CV from a JD
user-invocable: true
---
# /make-resume
**User input:** `$ARGUMENTS`
Parse `$ARGUMENTS`:
- File path (e.g., `JDs/*.txt`) → read that file for the JD
- A URL → this is NOT a JD, it's a pointer. Fetch the real posting text first (see JD Integrity below), save it verbatim to `JDs/<company>_<role>.txt`, then proceed.
- Text after the path starting with "Focus:"/"Emphasize:"/"Downplay:" → focus directive
- "Quick:" prefix → Quick Mode (see below)
- Empty → ask the user for the JD
- Inline JD text (no file path) → save to `JDs/temp_<company>.txt`, proceed normally
**JD Integrity (read `shared_ops.md` → "JD Integrity"):** The JD must be the real posting, verbatim. NEVER invent, reconstruct, paraphrase, or infer JD content. `WebFetch` is JS-blind on careers boards — use the job_scout Playwright recipe in `shared_ops.md` to scrape JS-gated postings. If you cannot get the real text, STOP and ask the user to paste it. Do not proceed on a guessed JD.
---
## Safety Rules (ALWAYS ENFORCED)
**Accuracy > Relevance > Impact > ATS > Brevity**
Read `config.md` Provenance Flags before generating any content. Verify every claim against that table.
- **JD is ground truth — use the real posting verbatim. NEVER reconstruct, invent, or infer a JD** (see `shared_ops.md` → JD Integrity). If you can't get the real text, STOP and ask the user to paste it.
- Use the email from `config.md` Personal Info in all outputs
- Resume bullets: ALL variable bullets are 2L (CV: 2L/3L mix OK, check `config.md` Document Preferences)
- Source ALL bullet content from `resume_builder/experience/` files. Never fabricate.
- Run `python3 resume_builder/helpers/char_count.py` after each section — the tool is authoritative
---
## User Input During Execution
If the user provides feedback, corrections, or suggestions at any point:
1. Acknowledge the input immediately
2. If it affects an already-written section: go back, fix it, re-run char count gate
3. If it changes the bullet plan: update session file Bullet Plan
4. If it's a question: answer it, then continue from current step
5. Never restart a phase — resume from current position
---
## Startup
Read `resume_builder/reference/shared_ops.md` for session startup, file derivation, and organization protocols.
Then:
1. Read `AGENTS.md` — check Active Sessions and KB Corrections
2. Read `config.md` — load Provenance Flags, email, document preferences, role types
3. If session file exists for this JD:
- Read session file, check Status
- Phase 0: DONE, Phase 1: PENDING → resume at Phase 1
- Phase 1: DONE → resume at Budget Gate
- Phase 2: IN_PROGRESS → read .tex, check what sections exist, resume from checkpoint
- Phase 2: DONE → "Resume already done. Run /make-cl next." Show next command. Stop.
4. If no session file: proceed to Phase 0
---
## Quick Mode
Trigger: `$ARGUMENTS` starts with "Quick:"
Defaults:
- Select all HIGH priority achievements from bundle's Priority Matrix as 2L
- Fill remaining budget with MEDIUM priority in Priority Matrix order
- Default format: 2-page resume (unless JD clearly requires CV)
- Skip Phase 0 STOP and Phase 1 STOP
- Keep Budget Gate (auto-pass if within target) and end-of-resume STOP
- Run all phases with progress commentary instead of interactive stops
---
## Phase 0: Research & Session Setup
**Read these files:**
1. The JD — the **real posting text**, verbatim. If `$ARGUMENTS` was a URL or the posting is on a JS-gated board, scrape it with the Playwright recipe in `shared_ops.md` (JD Integrity) BEFORE this step and save to `JDs/`/`output/<FolderName>/JD_<name>.txt`. If you cannot obtain the real text, STOP and ask the user to paste it — do NOT reconstruct or infer it.
2. `resume_builder/reference/resume_reference.md` — Budget Card, Section Specs, Char Limits, Page Budgets
3. `config.md` — Role-Type Decision Tree to identify the matching bundle
**Web Search (MANDATORY — 2-3 searches).** Load WebSearch via ToolSearch first.
1. `[Company] research & development [key JD domain]` — products, recent projects
2. `[Company] [specific technology from JD]` — concrete hooks for cover letter
3. `[Company] careers [role type] culture` OR recent news — hiring context
If web search returns no results: use JD text + training knowledge. Flag: "Web search returned limited results — CL hooks may be generic."
**Produce all of these (reference `resume_builder/reference/session_file_template.md` for format):**
- **JD Analysis** — classify every requirement as Direct / Bridge (with confidence) / Gap. Extract ATS keywords by category.
- **Company Context** — mission, role purpose, culture signals, "why them" angle (from web research)
- **Framing Strategy** — lead narrative, reframing map, emphasize/downplay, CL hooks, user focus directives
- **Critique Context** — reviewer persona, competitive landscape, domain vocabulary
- **Cover Letter Plan** — institution type, paragraph structure, hooks, jargon level
**Create output folder:**
Derive folder name from JD filename: `JDs/JD_Acme.txt``output/Acme/`
```bash
mkdir -p output/<FolderName>/
```
Write session file to `output/<FolderName>/session_<name>.md` (NOT flat `output/`).
All subsequent output files go in this folder.
**Verify completeness:** Re-read the session file. Confirm these 8 sections are non-empty: JD Info, Requirements table, ATS Keywords, Gap Assessment, Company Context, Framing Strategy, Critique Context, Cover Letter Plan. Fill any missing section before presenting.
**Write memory pointer** to `AGENTS.md` Active Sessions.
**Update session file Status:** `Phase 0: DONE`
Progress: "Searching for [company] + [domain]..." / "JD analysis: X/Y requirements direct match, Z bridges, W gaps"
### >>>>>> MANDATORY STOP — DO NOT PROCEED <<<<<<
Present: research summary, role type + bundle, format, framing strategy.
Ask user to confirm: (1) role type + bundle, (2) format, (3) framing strategy.
**You MUST wait for the user's explicit text response before continuing.**
Proceeding without confirmation misaligns the entire resume and requires full regeneration.
---
## Phase 1: Plan Bullets
**Re-read `output/<FolderName>/session_<name>.md`** — specifically Framing Strategy and ATS Keywords.
**Read:**
1. The matching bundle from `config.md` Role Types → `resume_builder/bundles/bundle_[role_type].md` — Section 1 (Priority Matrix)
- For hybrid JDs: read both bundles. Use primary for Priority Matrix, secondary for Reframing Map on 1-2 bridging bullets.
2. All experience files from `resume_builder/experience/`
3. `resume_builder/support/achievement_reframing_guide.md`
4. `resume_builder/support/skills_taxonomy.md`
5. `resume_builder/support/pub_metadata.md`
**Present one table per position:**
**[Position Name] (Budget: N-M bullets, ~X-Y rendered lines)**
| | ID | Achievement | Variant | Lines | JD Match |
|---|---|-------------|---------|-------|----------|
| * | P1-1 | [short description] | 2L | 2 | Direct |
| * | P1-5 | [short description] | 2L | 2 | Direct |
| o | P1-3 | [short description] | 2L | 2 | Bridge |
| x | P1-7 | [short description] | -- | -- | Weak |
**Legend:** `*` = recommended (HIGH on Priority Matrix + Direct JD match) | `o` = available (MEDIUM priority or Bridge match) | `x` = not recommended (LOW priority or Gap)
**After all positions, show:**
- Recommended set total vs budget (from Quick Budget Card in resume_reference.md)
- Remaining budget slots and what could fill them
- Forced exclusions per provenance flags
- Focus directive impact (what changed vs Priority Matrix defaults)
- CV: confirm first bullet of first experience is 2L (page 1 rule)
**Update session file** — write Bullet Plan tables. Status: `Phase 1: DONE (N bullets confirmed)`
Progress: "Reading experience files for bullet candidates..." / "Recommending N bullets per position"
### >>>>>> MANDATORY STOP — DO NOT PROCEED <<<<<<
Present bullet plan. Wait for user to confirm/modify selections.
**You MUST wait for the user's explicit text response before continuing.**
If you proceed without confirmation, you will generate bullets the user didn't approve.
**Update session file with confirmed plan before continuing.**
---
## Budget Gate (AFTER user confirms bullet plan, BEFORE Phase 2)
**Re-read session file Bullet Plan section** to verify confirmed counts.
- Check budget targets from `resume_builder/reference/resume_reference.md` Budget Card.
- Show: `Budget: [N] bullets vs target [T]. PASS/FAIL`
- **FAIL = do not proceed. Reconcile with user first.**
---
## Phase 2: Generate
**Re-read to restore context after compaction:**
1. `output/<FolderName>/session_<name>.md` (framing + confirmed bullet plan)
2. `resume_builder/reference/critical_rules.md` — Character Limits, Bold Width Penalty, Orphan rules
3. `resume_builder/support/ai_fingerprint_rules.md` — Banned words, structural rules, post-gen checklist
**Read template:** `resume_builder/templates/resume_template.tex` or `cv_template.tex` + `.cls`
FIXED sections (from `config.md` FIXED Sections) are template-locked — only generate VARIABLE sections (Summary, Skills, Experience bullets/headers).
**Read section specs:** `resume_builder/reference/resume_reference.md` — Section-by-Section Specs for your format
**Generate section by section** (follow Section-by-Section Specs):
1. Summary → check against session framing strategy
- Update Status → `Phase 2: Summary DONE`
2. Technical Skills
- Update Status → `Phase 2: Skills DONE`
3. Each position's bullets → **CHAR COUNT GATE after each position**
- Position titles: bold theme + date must fit ONE line (see resume_reference.md). If wrapping, shorten title.
- After each position: Update Status → `Phase 2: [Position] DONE`
4. **PAGE FILL GATE after all experience**
Save .tex to `output/<FolderName>/e2e_<name>_resume.tex` or `_cv.tex`
**Update session file** — add Output Files.
Progress: "Writing Position 1 bullets (6 of 7)..." / "Bullet 4 is SHORT at 184 chars — padding" / "Compiling resume... 2 pages OK"
### CHAR COUNT GATE (per position)
```bash
python3 resume_builder/helpers/char_count.py -f [resume|cv] output/<FolderName>/[file].tex
```
No OVER violations. Last line of 2L bullets >= 70% fill. **Fix before next position.**
### PAGE FILL GATE
Resume: <= 3 lines white space on last page. CV: check rendered line target from resume_reference.md. **If FAIL: add/trim variable bullets.**
### COMPILE GATE
```bash
pdflatex -interaction=nonstopmode -output-directory=output/<FolderName> output/<FolderName>/e2e_<name>_resume.tex
```
Verify page counts match `config.md` Document Preferences. Use the Read tool to view compiled PDF — check orphans, header wrapping, page fill. **If FAIL: fix variable content, recompile.**
Run the Post-Generation Verification checklist from `resume_builder/reference/resume_reference.md` before proceeding.
Update Status → `Phase 2: Compile DONE`
---
## End of /make-resume
Update session file Status:
- `Resume: DONE`
- `Cover Letter: PENDING`
- `Critique: PENDING`
- `Next: /make-cl output/<FolderName>/session_<name>.md`
- `Next Critique: /critique output/<FolderName>/session_<name>.md`
### >>>>>> MANDATORY STOP <<<<<<
Present: resume compilation summary (pages, char count results, any violations fixed).
**You MUST wait for the user's explicit text response before continuing.**
"Resume compiled and verified. Next steps:
1. /clear
2. [exact /make-cl command with session file path]"
+329
View File
@@ -0,0 +1,329 @@
---
description: Synthesize completed extractions into the knowledge base files needed for resume generation
user-invocable: true
---
# /setup-build-kb
**User input:** `$ARGUMENTS`
Parse `$ARGUMENTS`:
- Empty → full build (all phases)
- Phase number (e.g., `3`) → resume from that phase
- "experience" / "bundles" / "skills" / "pubs" / "reframing" / "significance" → run only that component
- "status" → show what's built and what's missing
---
## Startup
1. Read `AGENTS.md` — check KB Corrections Log
2. Read `config.md` — load:
- Personal Info (positions, institutions, dates)
- Role Types table (defines which bundles to create)
- Provenance Flags (propagate to all KB files)
- Document Preferences (bullet variant defaults)
3. Read `knowledge_base/extractions/_INVENTORY.md` — verify extractions exist
4. Scan `resume_builder/` to see what's already built
**Pre-flight check:**
- If `_INVENTORY.md` is empty or has no entries: "No extractions found. Run `/setup-extract` first." Stop.
- If fewer than 2 extractions: warn "Only [N] extraction(s) found. KB quality improves with more papers. Continue anyway?"
Progress: "Found [N] extractions across [M] positions. Config has [K] role types defined."
---
## Phase 1: Build Experience Files
**Goal:** Create one experience file per position, containing all achievements organized for resume generation.
**Read:** All extraction files listed in `_INVENTORY.md`
**For each position** (from `config.md` or inferred from extraction metadata):
1. Group extractions by the position they belong to (based on dates, institution, or user clarification)
2. Ask the user to confirm grouping if ambiguous: "I've grouped these papers under [Position]. Correct?"
**Experience file format** (`resume_builder/experience/experience_<position_key>.md`):
```markdown
# Experience: [Position Title] — [Institution]
## [Date Range]
### Cross-Position Section
[Brief narrative connecting this position's work to the user's broader trajectory]
[CL framing content — how this position fits the career arc]
---
### Achievement [ID]: [Short Title]
**Source:** [extraction filename]
**Paper:** [citation or "internal"/"unpublished"]
**User's role:** [first author / contributing / sole developer]
**Status:** [published / under review / draft / internal]
**Context:** [1-2 sentences — what problem, why it matters]
**Bullet variants:**
- **2L:** [Full 2-line bullet text — STAR format, ~180-210 rendered characters]
- **3L:** [Full 3-line bullet text — for CV use, ~270-310 rendered characters]
- **1L:** [Condensed 1-line version — ~90-110 rendered characters, for tight budgets]
**Key skills:** [comma-separated list of skills this achievement demonstrates]
**ATS keywords:** [domain-specific terms an ATS might scan for]
**Reframing notes:** [how to emphasize different aspects for different role types]
---
[Repeat for each achievement]
```
### >>>>>> MANDATORY STOP — DO NOT PROCEED <<<<<<
Present the experience file(s) — show achievement count per position, total bullet variants.
Ask user to review: "Are the groupings correct? Any achievements missing or misattributed?"
**You MUST wait for the user's explicit text response before continuing.**
---
## Phase 2: Build Skills Taxonomy
**Goal:** Create a categorized inventory of all technical skills from extractions.
**Read:** All extraction files (Methods & Tools sections) + experience files from Phase 1
**Build** `resume_builder/support/skills_taxonomy.md`:
```markdown
# Skills Taxonomy
## Summary Stats
- Total unique skills: [N]
- Publications: [N] ([breakdown by status])
- Top methods: [ranked list]
## Categories
### [Category 1: e.g., Computational Methods]
| Skill | Proficiency | Evidence | Resume Weight |
|-------|-----------|----------|---------------|
| [skill] | [expert/proficient/familiar] | [paper IDs] | [HIGH/MED/LOW] |
### [Category 2: e.g., Programming & Software]
[same table format]
### [Category 3: e.g., Machine Learning]
[same table format]
[Continue for all categories — typically 4-7 categories]
```
**Proficiency levels:**
- **Expert:** Multiple first-author papers, developed custom tools
- **Proficient:** Used extensively in published work, comfortable teaching
- **Familiar:** Used in one project, or contributed to someone else's implementation
Progress: "Built taxonomy — [N] skills across [M] categories"
---
## Phase 3: Build Publication Metadata
**Goal:** Structured pub data for resume/CV generation.
**Build** `resume_builder/support/pub_metadata.md`:
```markdown
# Publication Metadata
## Summary
- Total publications: [N]
- First-author: [N] | Co-first: [N] | Contributing: [N]
- Published: [N] | Under review: [N] | In preparation: [N]
## Publication List
### First-Author / Co-First
| # | Citation (et al. format) | Journal | Year | Status | Key Topic |
|---|-------------------------|---------|------|--------|-----------|
| 1 | [Author et al., Journal, Year] | [journal] | [year] | [status] | [topic] |
### Contributing Author
[same table format]
### Under Review / In Preparation
[same table format, with provenance notes]
```
Progress: "Pub metadata — [N] first-author, [M] contributing, [K] under review"
---
## Phase 4: Build Achievement Reframing Guide
**Goal:** Per-achievement significance lines + framing directives for each role type.
**Read:** Experience files + `config.md` Role Types
**Build** `resume_builder/support/achievement_reframing_guide.md`:
```markdown
# Achievement Reframing Guide
## How to Use
For each achievement, `Significance:` provides a one-line framing cue.
The role-type table shows how to emphasize/de-emphasize for each target audience.
---
### [Achievement ID]: [Title]
**Significance:** [One sentence — why this matters broadly]
| Role Type | Emphasis | Lead Verb | Framing Angle |
|-----------|----------|-----------|---------------|
| [role 1] | HIGH | Developed | [emphasize X aspect] |
| [role 2] | MEDIUM | Applied | [bridge to Y domain] |
| [role 3] | LOW | -- | [omit or condense] |
**Overclaiming warning:** [if applicable — e.g., "Do not claim sole credit for experimental results"]
**First-pass checklist:** [ ] Verb matches author role [ ] Numbers from paper [ ] Status matches provenance
---
[Repeat for each achievement]
```
### >>>>>> MANDATORY STOP — DO NOT PROCEED <<<<<<
Present the reframing guide summary — show which achievements are HIGH for which role types.
Ask user: "Does this priority mapping look right for your target roles?"
**You MUST wait for the user's explicit text response before continuing.**
---
## Phase 5: Build Bundles
**Goal:** One bundle per role type from `config.md`, with 5 sections each.
**Read:** Experience files + Skills Taxonomy + Reframing Guide + `config.md` Role Types
**For each role type**, create `resume_builder/bundles/bundle_<role_type>.md`:
```markdown
# Bundle: [Role Type Name]
> Target employers: [from config.md]
> Tier: [from config.md]
---
## S1: Role Profile & Priority Matrix
**Positioning:** [1-2 sentences — how to position the user for this role type]
### Priority Matrix
| Priority | Achievement IDs | Rationale |
|----------|----------------|-----------|
| HIGH | [IDs] | [why these lead for this role type] |
| MEDIUM | [IDs] | [supporting evidence, bridge topics] |
| LOW | [IDs] | [omit unless budget allows or JD specifically asks] |
---
## S2: Summary Guide
**Headline pattern:** [Role-appropriate headline template]
**Building blocks:** [3-5 phrases that should appear in summaries for this role type]
**Avoid:** [terms/framings that don't fit this audience]
---
## S3: Achievement Reframing Map
[For each HIGH/MEDIUM achievement: which angle to use, which metrics to lead with]
| ID | Default Framing | This Role's Framing | Key Metric |
|----|----------------|--------------------|-----------|
| [ID] | [generic] | [role-specific angle] | [number to highlight] |
---
## S4: Skills Guide
**Bold tools (resume):** [3-5 tools to bold in Technical Skills for this role type]
**Must-include skills:** [skills that MUST appear for ATS match]
**Nice-to-have:** [skills to include if budget allows]
**Omit:** [skills irrelevant to this audience]
---
## S5: Cover Letter Guide
**Institution type:** [Industry / National Lab / Academic]
**Opening hook pattern:** [template for first paragraph opener]
**Key narrative thread:** [what story to tell across paragraphs]
**"Why them" angle:** [what to research about target employer]
**Avoid:** [CL anti-patterns for this role type]
```
Progress: "Building bundle for [role type] — [N] HIGH priority achievements, [M] bold tools"
---
## Phase 6: Build Significance Research Files
**Goal:** Field context for cover letters — NOT for resume bullets.
**For each position**, create `resume_builder/support/significance_<position_key>.md`:
```markdown
# Significance Research: [Position]
> Use in cover letters and summaries — NOT in resume bullet text.
> These provide field context that demonstrates the user understands the landscape.
---
### [Achievement ID]: Field Context
**The problem:** [What challenge does this address? Industry/scientific context]
**Competing approaches:** [What else exists? What are the limitations?]
**Why this matters:** [Market size, DOE/funding priorities, industry need]
**Differentiation:** [What makes the user's approach unique or better?]
---
[Repeat for each major achievement worth cover-letter depth]
### Field Overview: [Broad Topic]
[2-3 paragraphs of field context that multiple achievements contribute to]
[Useful for cover letter opening hooks and "why this matters" framing]
```
Progress: "Significance research — [N] achievements with field context, [M] field overviews"
---
## Final: Status Report
After all phases complete (or after the requested subset), present:
### KB Build Status
| Component | File | Status | Items |
|-----------|------|--------|-------|
| Experience files | `experience/*.md` | [DONE/MISSING] | [N achievements] |
| Skills taxonomy | `support/skills_taxonomy.md` | [DONE/MISSING] | [N skills] |
| Pub metadata | `support/pub_metadata.md` | [DONE/MISSING] | [N pubs] |
| Reframing guide | `support/achievement_reframing_guide.md` | [DONE/MISSING] | [N entries] |
| Bundles | `bundles/bundle_*.md` | [DONE/MISSING] | [N bundles] |
| Significance | `support/significance_*.md` | [DONE/MISSING] | [N files] |
### Ready for Generation?
- [ ] At least 1 experience file with 5+ achievements
- [ ] Skills taxonomy with 20+ skills
- [ ] At least 1 bundle matching a target role type
- [ ] Pub metadata complete
- [ ] Reframing guide covers all achievements
- [ ] Significance files for cover letter depth
If all checked: "Knowledge base is ready. Save a JD to `JDs/` and run `/make-resume JDs/<filename>.txt`"
If gaps: "[List what's missing and which phase to re-run]"
### >>>>>> MANDATORY STOP <<<<<<
Present status report. Wait for user confirmation.
**You MUST wait for the user's explicit text response before continuing.**
+170
View File
@@ -0,0 +1,170 @@
---
description: Extract structured information from research papers, PDFs, or code into knowledge base extractions
user-invocable: true
---
# /setup-extract
**User input:** `$ARGUMENTS`
Parse `$ARGUMENTS`:
- File path to a paper (e.g., `papers/Smith2024_catalyst.pdf`, `papers/project_report.tex`) → read that file
- Multiple paths separated by spaces → batch mode (process each sequentially)
- Empty → ask the user for the paper path or paste content
---
## Startup
1. Read `AGENTS.md` — check KB Corrections Log for known issues
2. Read `config.md` — load Personal Info (to identify user's author position), Provenance Flags
3. Read `knowledge_base/extractions/_INVENTORY.md` — see what's already extracted, avoid duplicates
If the paper is already in the inventory:
- Show the existing extraction path
- Ask: "This paper is already extracted. Re-extract (overwrite) or skip?"
- Wait for user response before proceeding
---
## Phase 1: Read & Understand the Paper
Read the paper using the appropriate method:
- **PDF files:** Use the Read tool (supports PDF reading)
- **.tex source:** Read directly — often has more detail than the compiled PDF
- **If both exist:** Prefer .tex for content extraction, use PDF for figures/tables
**While reading, collect:**
1. Full title, all authors, year, journal/venue, DOI (if available)
2. The user's position in the author list (first, co-first, second, middle, last, corresponding)
3. Publication status (check `config.md` Provenance Flags first, then infer: published / under review / draft / internal)
4. All computational methods, experimental techniques, software, and frameworks mentioned
5. Quantitative results — speedups, accuracies, efficiencies, improvements over baselines
6. Novelty claims — "first-ever", "new framework", "novel approach", etc.
7. Collaboration indicators — other groups, institutions, shared resources
8. Funding acknowledgments
Progress: "Reading paper... [title] by [first author] et al., [year]"
---
## Phase 2: Clarify User's Role
If the user's contribution is not obvious from the paper (common for multi-author work), ask:
**Questions to ask (skip any that are already clear from the paper):**
1. "What was your specific contribution? (e.g., all computational work, specific analysis, code development)"
2. "Did you develop any tools, methods, or code used in this paper?"
3. "Were there other groups or institutions involved? What was your group's role?"
4. "Any quantitative results you can personally claim? (e.g., 'I ran all the simulations')"
5. "Is there anything in this paper that should NOT appear on your resume? (e.g., collaborator's experimental data)"
### >>>>>> MANDATORY STOP — DO NOT PROCEED <<<<<<
Present your understanding of the paper and ask the clarifying questions above.
**You MUST wait for the user's explicit text response before continuing.**
---
## Phase 3: Write Extraction
Create the extraction file at `knowledge_base/extractions/<AuthorYear_short_descriptor>.md`
**Naming convention:** `<FirstAuthorLastName><Year><2-3_word_descriptor>.md`
- Examples: `Smith2024_protein_stability.md`, `Chen2023_binding_affinity.md`
- If the user is first author: use their last name
- Normalize to lowercase with underscores
**Extraction format:**
```markdown
# [Full Paper Title]
## Metadata
- **Authors:** [author list — highlight user's name with bold]
- **Year:** [year]
- **Journal:** [journal/venue or "unpublished"/"internal"/"under review at X"]
- **DOI:** [DOI or "N/A"]
- **User's role:** [first author / co-first / contributing / corresponding]
- **Status:** [published | under review | draft | internal]
## Methods & Tools
- **Computational methods:** [e.g., MD, ML, FEA, CFD, etc. — be specific about methods, force fields, etc.]
- **Software/frameworks:** [e.g., GROMACS, PyTorch, ABAQUS, custom code, etc.]
- **Hardware/HPC:** [if mentioned — clusters, GPU resources, etc.]
- **Key techniques:** [specific methodological details that map to resume skills]
## Key Results
[Number each result. Include quantitative metrics wherever possible.]
1. [Result with numbers — e.g., "Achieved 5,000x speedup over brute-force screening"]
2. [Result — e.g., "Screened 8,500 variants, identified 7 top candidates"]
3. [...]
## Novelty Claims
[What's genuinely new — be precise, avoid overclaiming]
- [e.g., "First application of framework X to system Y"]
- [e.g., "New method combining A and B — no prior work exists"]
## Collaboration & Scope
- **Other groups:** [institutions, PIs involved]
- **User's specific contribution:** [from Phase 2 clarification]
- **Shared vs. sole work:** [what the user did alone vs. with others]
## Provenance Notes
- **Publication status:** [matches config.md if listed there]
- **Safe to claim:** [what the user can put on a resume without hedging]
- **Needs hedging:** [claims that require "contributed to" or "supported" framing]
- **Do NOT claim:** [results from collaborators, claims that would be overclaiming]
## Resume Bullet Seeds
[3-5 draft bullets in STAR format. These are seeds, not final text.]
[Use full-ownership verbs only for sole-contributor work. Hedge for shared work.]
1. [Action verb] + [what was done] + [quantitative result/impact]
2. [Action verb] + [method/tool developed] + [what it enabled]
3. [Action verb] + [scope — e.g., "across N systems"] + [outcome]
4. [Optional: collaboration-framed bullet]
5. [Optional: tool/infrastructure bullet]
```
Save the file. Show the user the complete extraction.
Progress: "Writing extraction for [short title]... [N] results identified, [M] bullet seeds drafted"
---
## Phase 4: Update Inventory
Read and update `knowledge_base/extractions/_INVENTORY.md`.
Add a row to the inventory table:
```
| [filename] | [short title] | [user's role] | [status] | [primary methods] | [date extracted] |
```
Present the updated inventory entry to the user.
---
## Phase 5: Next Steps
After extraction is complete, present:
1. **Extraction summary:** [N] methods, [M] quantitative results, [K] bullet seeds
2. **Provenance flags:** Any items that need special handling
3. **Suggested next action:**
- If more papers to extract: "Run `/setup-extract [next paper path]`"
- If all papers done: "Run `/setup-build-kb` to synthesize extractions into experience files and bundles"
### >>>>>> MANDATORY STOP <<<<<<
Present extraction summary. Wait for user feedback or next paper.
**You MUST wait for the user's explicit text response before continuing.**
---
## Batch Mode
If `$ARGUMENTS` contains multiple file paths:
1. Process each paper through Phases 1-4 sequentially
2. Ask Phase 2 clarifying questions for ALL papers at once (grouped) before writing any extractions
3. After all extractions: present combined inventory update and summary
4. Single STOP at the end (not per paper)
+3 -1
View File
@@ -116,7 +116,9 @@
"Bash(.venv/Scripts/python.exe scout.py --only=swissgrid)", "Bash(.venv/Scripts/python.exe scout.py --only=swissgrid)",
"Bash(git push *)", "Bash(git push *)",
"WebFetch(domain:careers.cisco.com)", "WebFetch(domain:careers.cisco.com)",
"WebFetch(domain:job.bkw.com)" "WebFetch(domain:job.bkw.com)",
"Bash(\"C:/Users/Dennis/AppData/Local/Programs/MiKTeX/miktex/bin/x64/pdflatex.exe\" -interaction=nonstopmode -output-directory=output/Kraken_SRE_AI_Agents output/Kraken_SRE_AI_Agents/e2e_kraken_sre_ai_agents_resume.tex)",
"Bash(python resume_builder/helpers/char_count.py -f resume output/Microsoft_ISE_Senior_SWE/e2e_microsoft_ise_resume.tex)"
] ]
} }
} }
+3
View File
@@ -30,6 +30,9 @@ job_scout/state/*
# One-off job-board data pulls (debug artifacts) # One-off job-board data pulls (debug artifacts)
*_jd.json *_jd.json
*_jobs*.json *_jobs*.json
# ...and one-off Playwright JD scrape dumps (applied JDs are archived in JDs/ + output/)
job_scout/jd_*.txt
job_scout/*_verify.txt
# Editor # Editor
*.swp *.swp
+163
View File
@@ -0,0 +1,163 @@
# Codex-resume-kit — Project Instructions
> This file is auto-loaded by Codex. It provides project-wide rules for all skills.
---
## File Map
```
.Codex/skills/
├── setup-extract/SKILL.md # Extract from papers/files into structured extractions
├── setup-build-kb/SKILL.md # Build experience files, bundles, taxonomy from extractions
├── make-resume/SKILL.md # Phase 0-2: JD research → bullet plan → resume/CV generation
├── make-cl/SKILL.md # Cover letter generation from session file
├── edit-resume/SKILL.md # Edit resume/CV from critique or user feedback
└── critique/SKILL.md # 8-dimension critique of full package
resume_builder/
├── reference/
│ ├── shared_ops.md # Session startup, derivation, workflow — ALL skills
│ ├── resume_reference.md # Resume/CV rules — /make-resume, /edit-resume
│ ├── cl_reference.md # CL rules — /make-cl, /edit-resume (CL edits)
│ ├── critical_rules.md # Compact re-read — /make-resume Phase 2
│ ├── session_file_template.md # Session file format
│ └── critique_framework.md # 8-part critique system
├── templates/ # LaTeX .cls + .tex templates
├── helpers/ # char_count.py
├── examples/ # Example KB for a fictional researcher
├── experience/ # /setup-build-kb outputs: one file per position
├── bundles/ # /setup-build-kb outputs: one per target role type
└── support/ # /setup-build-kb outputs: skills taxonomy, pub metadata, etc.
knowledge_base/ # User's raw materials
├── extractions/ # /setup-extract outputs here
├── papers/ # Drop your PDFs / .tex source here
└── notes/ # Any other reference material
config.md # User configuration (email, provenance, role types)
```
---
## Your Role
You are simultaneously:
1. **Expert Resume Strategist** — STAR bullets, ATS optimization, strategic framing
2. **Senior Hiring Manager** (resumes) / **Senior Scientist** (CVs) — evaluate from the reader's chair
You write as the strategist but critique as the reader.
**Hard rules:**
- Output .tex files ONLY. User compiles locally.
- Read `config.md` for email, provenance flags, and output preferences.
- **Accuracy > Relevance > Impact > ATS > Brevity**
---
## User Focus Directives
- **"Emphasize X"** — prioritize X-related achievements
- **"Downplay Y"** — reduce or omit Y-related bullets
- **"Include Z"** — force-include achievement Z
- **"Lead with A"** — make A the first bullet in its position
- **"Make B a 2L"** — override default variant
If no directives, use bundle's Priority Matrix defaults.
---
## Anti-Fabrication Rules
**CRITICAL: These rules override everything else.**
### Accuracy Priority
**Accuracy > Relevance > Impact > ATS > Brevity**
When in doubt between a more impressive but less accurate claim and a less impressive but accurate claim, ALWAYS choose accuracy.
### Provenance Discipline
- Read `config.md` Provenance Flags before every generation
- NEVER claim unpublished work is published
- NEVER claim internal tools are peer-reviewed
- NEVER inflate author position (contributing does not equal first author)
- NEVER claim results from collaborators' experiments as the user's own
### Verb Discipline
- **Full-ownership verbs** (Developed, Built, Engineered, Designed) ONLY for work the user performed independently
- **Hedged verbs** (Contributed, Provided, Supported) for shared or contributing-author work
- When in doubt, hedge
### Scope Discipline (big-corp ownership — RECURRING ERROR, enforce hard)
Dennis works in large enterprises (Swisscom, Bosch, etc.). He does **not** solo-own company-wide platforms, migrations, or systems. Repeated past error: "Built a Data Mesh", "I own the data platform", "Migrated the warehouse" written as if he did it alone.
- **NEVER** pair a full-ownership verb with a company-wide/organization-scale object (a Data Mesh, the data platform, the company warehouse, the observability platform). That reads as a false solo claim.
- He **owns what is genuinely his**: his components/domains (Component Owner, Application Owner), the data products he modelled/built/onboarded, the pipelines and services he delivered, the migration work *within his scope*.
- **Fix pattern:** scope the object or hedge the verb.
- ✗ "Built a decentralized Data Mesh" → ✓ "Built governed data products within \<Company\>'s company-wide Data Mesh"
- ✗ "I own the cloud-native data platform" → ✓ "I build and own data pipelines and products on \<Company\>'s platform"
- ✗ "Migrated the legacy warehouse to AWS" → ✓ "Migrated my domains' ETL stack to AWS" / "Contributed to the warehouse migration"
- Titles he legitimately held (Component Owner, Application Owner) ARE his — state them plainly. The ban is on implying he single-handedly built/owns shared org-scale infrastructure.
- See `[[feedback_bigcorp_ownership_scope]]` in memory.
---
## Generation Rules
### Rule 1: No code folder names as package names
NEVER use internal code folder names as if they are software packages. Always describe the tool/method instead (e.g., "custom FEM solver" not "FEM_project/").
### Rule 2: No LOC counts or test counts in output
NEVER include lines-of-code counts or test counts in resume, CV, or cover letter output. Focus on what the tool does, its impact, and adoption.
### Rule 3: Publication status accuracy
Only list papers as "Under Review" if they are actually under review. Check `config.md` Provenance Flags.
### Rule 4: Publication format — use et al.
Use et al. format. Show authors up to and including the user's position, then "et al." When total authors <= 4, show all names.
### Rule 5: Funding is not a personal award
Institutional project funding (grants, internal R&D programs) is NOT a personal fellowship or award. Never list funding sources under Fellowships & Honors.
---
## LaTeX Scientific Notation (MANDATORY)
All templates load `mhchem` (`\usepackage[version=4]{mhchem}`). Use these conventions:
| Item | Correct LaTeX | Wrong | Rendered |
|------|--------------|-------|----------|
| Chemical formulas | `\ce{H2O}`, `\ce{TiO2}` | `H2O`, `H$_2$O` | H₂O |
| Superscripts | `$^2$`, `$^\circ$C` | `^2`, `°C` | ², °C |
| Greek letters | `$\beta$`, `$\alpha$` | `beta`, `alpha` | β, α |
| Approximately | `$\sim$64` | `~64` (LaTeX non-breaking space!) | ~64 |
**CRITICAL:** `~` in LaTeX is a non-breaking space, NOT a tilde. Use `$\sim$` for "approximately."
For char counting: `\ce{TiO2}` → 4 rendered chars, `$\beta$` → 1 rendered char.
---
## Active Sessions
_Update this section when starting/finishing a JD._
| Session | Status | Next Command |
|---------|--------|-------------|
| Kraken (Payward) — SRE, AI Agents (remote, CH-eligible) | **CLOSED — REJECTED 2026-06-17** (applied 2026-06-15 ~87.2/100, no interview). Honest gaps (NO Terraform/SRE-title/LangGraph) likely the filter; 4th Kraken req declined/rejected to date | Done |
| Google — Senior Data Engineer (Merchant Data Science), Zürich/MV | **PASSED HIRING ASSESSMENT 2026-06-20 — Recruiting reviewing candidacy for next steps** (applied 2026-06-15, 85.5/100; cleared recruiter screen + assessment). Pass valid 24 months for future Google reqs. Possible additional role-knowledge OA may follow. Next: await recruiter outreach for interview scheduling; clarify L4/L5 + comp clears 180k+ when recruiter re-engages | Await recruiter next-step; prep for recruiter/tech screen |
| Snowflake — Sr SWE, Enterprise (Observe by Snowflake), Zürich | **SENT 2026-06-06** (~86/100; 2pp resume + 1pp CL; real Ashby JD; comp CHF 176253k base; NO C++ gate). Tier 1+2 applied; Vizrt low-latency skipped per user. Best-fit role in the 2026-06 search | Done — await response |
| Isovalent (Cisco) Sr Data Engineer, Observability | **CLOSED — role pulled** (live Cisco scrape 2026-06-02: not on board; Recruitee link dead). Package finalized ~86/100, SHELVED for reuse | Done — retarget PDFs to next live data-eng req (QuantCo/Grafana/Confluent) |
| Google Zürich Sr SWE Infrastructure (Data Pipeline) | **CLOSED — DROPPED + DELETED 2026-06-02** (poor fit). Live JD = Core infra/systems SWE with **C++ as a MINIMUM qual**, off-thesis vs `user_positioning`. Output folder deleted (was built on a fabricated JD). | Done — do not reattempt this req |
| Kraken AI Infrastructure | **CLOSED — REJECTED** (applied, no interview) | Done |
| Infineon Doctoral | **CLOSED — withdrew** (got interview invite, declined: no relocation to Germany) | Done |
| Infineon AI Engineer | **CLOSED — not applied** (no relocation to Germany) | Done |
| Apple Data Engineer (ISE, Zurich) | **CLOSED — REJECTED** (no interview) | Done |
| Google FDE GenAI (Zurich) | PAUSED — GenAI evidence gap too large; redirecting to data-eng/MLOps roles | Likely abandon |
| Equinor AI Architect (Norway) | **SENT** (~80/100) | Done — await response |
| QuantCo Cloud Engineer (Europe/Zürich) | **CLOSED — REJECTED** (applied 2026-06-01 ~82/100, no interview; rejection 2026-06-15) | Done |
---
## KB Corrections Log
_See `config.md` for user-specific corrections. Add verified errors here as you find them._
+4 -1
View File
@@ -143,6 +143,9 @@ _Update this section when starting/finishing a JD._
| Session | Status | Next Command | | Session | Status | Next Command |
|---------|--------|-------------| |---------|--------|-------------|
| Microsoft — Senior SWE, Industry Solutions Engineering (ISE), Zürich (req 200040836) | **SENT 2026-07-03** (85.8/100 Pass 2; 2pp resume + 1pp CL; verbatim Eightfold JD; IC4 base CHF 146.2245.9k; applied ~7 days after posting). Same-day build→critique→submit. Decisions.json logged as applied | Done — await response |
| Kraken (Payward) — SRE, AI Agents (remote, CH-eligible) | **CLOSED — REJECTED 2026-06-17** (applied 2026-06-15 ~87.2/100, no interview). Honest gaps (NO Terraform/SRE-title/LangGraph) likely the filter; 4th Kraken req declined/rejected to date | Done |
| Google — Senior Data Engineer (Merchant Data Science), Zürich/MV | **PASSED HIRING ASSESSMENT 2026-06-20 — Recruiting reviewing candidacy for next steps** (applied 2026-06-15, 85.5/100; cleared recruiter screen + assessment). Pass valid 24 months for future Google reqs. Possible additional role-knowledge OA may follow. Next: await recruiter outreach for interview scheduling; clarify L4/L5 + comp clears 180k+ when recruiter re-engages | Await recruiter next-step; prep for recruiter/tech screen |
| Snowflake — Sr SWE, Enterprise (Observe by Snowflake), Zürich | **SENT 2026-06-06** (~86/100; 2pp resume + 1pp CL; real Ashby JD; comp CHF 176253k base; NO C++ gate). Tier 1+2 applied; Vizrt low-latency skipped per user. Best-fit role in the 2026-06 search | Done — await response | | Snowflake — Sr SWE, Enterprise (Observe by Snowflake), Zürich | **SENT 2026-06-06** (~86/100; 2pp resume + 1pp CL; real Ashby JD; comp CHF 176253k base; NO C++ gate). Tier 1+2 applied; Vizrt low-latency skipped per user. Best-fit role in the 2026-06 search | Done — await response |
| Isovalent (Cisco) Sr Data Engineer, Observability | **CLOSED — role pulled** (live Cisco scrape 2026-06-02: not on board; Recruitee link dead). Package finalized ~86/100, SHELVED for reuse | Done — retarget PDFs to next live data-eng req (QuantCo/Grafana/Confluent) | | Isovalent (Cisco) Sr Data Engineer, Observability | **CLOSED — role pulled** (live Cisco scrape 2026-06-02: not on board; Recruitee link dead). Package finalized ~86/100, SHELVED for reuse | Done — retarget PDFs to next live data-eng req (QuantCo/Grafana/Confluent) |
| Google Zürich Sr SWE Infrastructure (Data Pipeline) | **CLOSED — DROPPED + DELETED 2026-06-02** (poor fit). Live JD = Core infra/systems SWE with **C++ as a MINIMUM qual**, off-thesis vs `user_positioning`. Output folder deleted (was built on a fabricated JD). | Done — do not reattempt this req | | Google Zürich Sr SWE Infrastructure (Data Pipeline) | **CLOSED — DROPPED + DELETED 2026-06-02** (poor fit). Live JD = Core infra/systems SWE with **C++ as a MINIMUM qual**, off-thesis vs `user_positioning`. Output folder deleted (was built on a fabricated JD). | Done — do not reattempt this req |
@@ -152,7 +155,7 @@ _Update this section when starting/finishing a JD._
| Apple Data Engineer (ISE, Zurich) | **CLOSED — REJECTED** (no interview) | Done | | Apple Data Engineer (ISE, Zurich) | **CLOSED — REJECTED** (no interview) | Done |
| Google FDE GenAI (Zurich) | PAUSED — GenAI evidence gap too large; redirecting to data-eng/MLOps roles | Likely abandon | | Google FDE GenAI (Zurich) | PAUSED — GenAI evidence gap too large; redirecting to data-eng/MLOps roles | Likely abandon |
| Equinor AI Architect (Norway) | **SENT** (~80/100) | Done — await response | | Equinor AI Architect (Norway) | **SENT** (~80/100) | Done — await response |
| QuantCo Cloud Engineer (Europe/Zürich) | **SENT 2026-06-01** (~82/100, finalized PDFs) | Done — await response | | QuantCo Cloud Engineer (Europe/Zürich) | **CLOSED — REJECTED** (applied 2026-06-01 ~82/100, no interview; rejection 2026-06-15) | Done |
--- ---
+46
View File
@@ -0,0 +1,46 @@
Senior Data Engineer — Google (Merchant Data Science, Merchant Shopping Organization)
JD source: live scrape 2026-06-15 via Playwright (Google careers board), re-verified live same day
URL: https://www.google.com/about/careers/applications/jobs/results/87066954308690630-senior-data-engineer?location=Switzerland
Location: Mountain View, CA, USA; Zürich, Switzerland (preferred-location choice at apply)
Level chip: "Mid" (title says Senior — clarify L4 vs L5 at recruiter stage)
Comp (US band shown): $156,000 - $227,000 USD + 15% bonus target + equity + benefits. Zürich band NOT posted — verify clears 180k+ all-in.
--- VERBATIM POSTING TEXT ---
Note: By applying to this position you will have an opportunity to share your preferred working location from the following: Mountain View, CA, USA; Zürich, Switzerland.
Minimum qualifications:
Bachelor's degree or equivalent practical experience.
5 years of experience designing data pipelines, and dimensional data modeling for synch and asynch system integration and implementation using internal (e.g., Flume, etc.) and external stacks (DataFlow, Spark, etc.).
5 years of experience coding in one or more programming languages.
5 years of experience working with data infrastructure and data models by performing exploratory queries and scripts.
Preferred qualifications:
5 years of experience with statistical methodology and data consumption tools such as business intelligence tools, collabs, jupyter notebooks, Tableau, Power BI, DataStudio, and business intelligence platforms.
3 years of experience developing project plans and delivering projects on time within budget and scope.
3 years of experience partnering with stakeholders (e.g., users, partners, customer), and managing stakeholders/customers.
Experience with Machine Learning for production workflows.
About the job
The Merchant Data Science team is a group within the Merchant Shopping Organization. We work on building scalable data products that empower data-driven decision-making.
In this role, you will innovate and build durable, impactful data products. You will bridge the gap between software engineering, data engineering, and data science.
As a Data Engineer in the Merchant Shopping organization, you will build data products and foundations to improve Google's Shopping products. You will collaborate with a multidisciplinary team of data scientists, engineers, and PMs on a wide range of problems. You will bring an understanding of data, logging, and engineering. You will solve non-routine problems, build reliable data products used across the organization, and drive impact on cross-functional projects.
Individual pay is determined by factors including job-related skills, experience, and relevant education or training.
US: $156000 - $227000 (USD) + 15% bonus target + equity + benefits
Responsibilities
Identify the underlying need, process datasets, and apply advanced data engineering, data modeling, and architectural frameworks when needed.
Design, build, and scale innovative data products, including self-serve tools, and automated pipelines.
Advance data infrastructure, product quality, and foundational understanding through automated validation frameworks, data quality, and reliability monitoring.
Operate with a high degree of autonomy, owning data engineering projects from initial conception to landing and impact.
Advocate impactful data products while contributing to a team culture that values engineering excellence, robust data, and sharp communication.
+98
View File
@@ -0,0 +1,98 @@
Site Reliability Engineer - AI Agents — Kraken (Payward)
JD source: live scrape 2026-06-15 via Playwright (Ashby board)
URL: https://jobs.ashbyhq.com/kraken.com/c331de1b-b75a-48f5-9d19-0e56ccb935ab
Location: Remote — Switzerland eligible (+ UK, EU, LATAM, others)
Employment: Full time · Remote · Engineering / SRE / DevOps
--- VERBATIM POSTING TEXT ---
Building the Future of Open Finance
Payward - the parent company behind Kraken, NinjaTrader, Breakout, xStocks, Payward Services and CF Benchmarks - has spent the last 15 years building one of the most modern and globally accessible financial infrastructure platforms in the industry, built to advance an open, global financial system.
Before you apply, we encourage you to explore our culture page to understand what drives us and how we work.
The team
Founded in 2011, Kraken is one of the world's longest-standing crypto platforms, trusted by over 10 million individuals and institutions across the globe. It offers spot trading, margin, futures, staking, and OTC services, with products built for both individual investors and institutional clients.
The AI Infrastructure team sits within the Data organization and is responsible for building, operating, and scaling the systems that power AI agents in production — both internal tools and external-facing products. Working closely with the AI and Agent Systems teams, this group ensures that the orchestration, execution, and model-serving layers underpinning agentic workflows are reliable, observable, and built to scale.
This team operates at the intersection of data infrastructure and applied AI — a space that moves fast and demands engineers who can bring production discipline to emerging technology. You'll partner across Data Engineering, ML, and product-facing teams to harden agent infrastructure and keep it running at the standards our users expect.
Importantly, this is a platform engineering team. Beyond operating infrastructure, the team is responsible for building the APIs, SDKs, and platform capabilities that enable AI, Data, and Engineering teams to safely and efficiently consume agent infrastructure as a service. Success in this role requires thinking beyond infrastructure operations and toward developer experience, platform adoption, and long-term scalability.
The opportunity
Design, build, and operate the infrastructure layer supporting AI agent workflows in production
Ensure reliability, scalability, and observability of agentic systems across internal and external products
Design and develop platform services, APIs, SDKs, and self-service capabilities that allow engineering teams to easily consume AI infrastructure and agent platform services
Manage and maintain the compute, orchestration, and serving infrastructure powering model inference and agent execution
Implement robust monitoring, alerting, and incident response procedures tailored to AI/ML workloads
Utilize Infrastructure as Code (IaC) tools such as Terraform to provision and manage cloud (AWS) infrastructure components
Build and maintain CI/CD pipelines that support rapid, reliable deployment of AI services and agent workflows
Define and implement guardrails, failure handling, and recovery patterns specific to agentic and LLM-powered systems
Collaborate with AI and Data Engineering teams to translate experimental agent prototypes into hardened production systems
Manage containerized workloads using Kubernetes, ensuring efficient deployment, scaling, and orchestration of AI services
Implement access controls and security best practices across AI infrastructure environments
Document architecture, runbooks, and best practices to support knowledge sharing across the team
What You Bring
5+ years of experience as a Site Reliability Engineer, Infrastructure Engineer, Platform Engineer, or similar role in a production environment
Hands-on experience supporting ML infrastructure, model serving, or MLOps workflows in production
Experience building developer platforms, internal tooling, APIs, or SDKs consumed by engineering teams at scale
Strong understanding of platform engineering principles, including developer experience, self-service infrastructure, and API-driven platform design
Proficiency with Infrastructure as Code tools, particularly Terraform
Experience with containerization and orchestration, particularly Kubernetes and Docker
Solid understanding of cloud infrastructure, preferably AWS
Strong scripting skills (bash/shell) and proficiency in at least one programming language (Python preferred)
Experience designing and operating observability, monitoring, and alerting systems
Experience implementing incident response procedures and participating in on-call rotations
Strong collaboration skills working across data, AI, and engineering teams
High ownership mindset in a fast-moving, high-stakes production environment
Nice to haves
Experience building or operating infrastructure for agent-based or LLM-powered systems
Familiarity with agent orchestration frameworks (e.g., LangGraph, CrewAI, or similar)
Background in data infrastructure, including familiarity with Airflow, Kafka, Spark, or data lake tooling
Experience with CI/CD pipelines and deployment automation for AI/ML workloads
Exposure to evaluation frameworks and model performance monitoring at scale
Experience working in fast-moving 0→1 environments or platform-building teams
Experience building SDKs, developer tooling, or internal platform products with a strong focus on usability and adoption
Experience with Cloudflare's cloud platform and product ecosystem, including networking, security, performance, and Zero Trust solutions
Unless a specific application deadline is stated in the job posting, applications are accepted on an ongoing basis.
Note: applicants are permitted to redact or remove information on their resume that identifies age, date of birth, or dates of attendance/graduation. Kraken encourages applicants to apply even if they don't fully meet the listed requirements, especially if passionate or knowledgeable about crypto.
+97
View File
@@ -0,0 +1,97 @@
# Microsoft — Senior Software Engineer, Industry Solutions Engineering (ISE), Zürich
# Source: https://jobs.careers.microsoft.com/global/en/job/200040836
# Fetched 2026-07-03 via Eightfold PCSX API (apply.careers.microsoft.com), verbatim.
Overview
Do you enjoy solving problems, writing software, and working with customers? Do you want to join a team where learning about new technology is part of our work every day? Then, come join us! 
 
The Industry Solutions Engineering (ISE) team is a global engineering organization that works directly with customers looking to leverage the latest technologies to address their toughest challenges.  
 
We work closely with our customers engineers to jointly develop code for cloud-based solutions that can accelerate their organization. We work in collaboration with Microsoft product teams, partners, and open-source communities to empower our customers to do more with the cloud. We develop solutions side-by-side with our customers through collaborative innovation to solve their challenges. This work involves the development of broadly applicable, high-impact solution patterns and open-source software assets that contribute to the Microsoft platform.  
 
We are hiring a Senior Software Engineer with deep experience and expertise in designing and delivering solutions using modern software engineering practices and cloud technologies. You will be part of a cross-functional team of software engineers, data scientists, technical program managers, and designers who work side-by-side with high-impact and strategic customers and their engineers to build innovative solutions.  
 
As part of our team, you will thrive in working with a variety of technologies, not just Microsoft technology. You will solve exciting business problems, contribute to open source, and collaborate with Microsoft product teams.  
 
Microsofts mission is to empower every person and every organization on the planet to achieve more. As employees, we come together with a growth mindset, innovate to empower others, and collaborate to realize our shared goals. Each day we build on our values of respect, integrity, and accountability to create a culture of inclusion where everyone can thrive at work and beyond. 
Responsibilities
- Collaborates with appropriate stakeholders to determine user requirements for a scenario. 
- Drives identification of dependencies and the development of design documents for a product, application, service, or platform. 
- Creates, implements, optimizes, debugs, refactors, and reuses code to establish and improve performance and maintainability, effectiveness, and return on investment (ROI). 
- Leverages subject-matter expertise of product features and partners with appropriate stakeholders (e.g., project managers) to drive a workgroup's project plans, release plans, and work items. 
- Acts as a Designated Responsible Individual (DRI) and guides other engineers by developing and following the playbook, working on call to monitor system/product/service for degradation, downtime, or interruptions, alerting stakeholders about status and initiates actions to restore system/product/service for simple and complex problems when appropriate. 
- Proactively seeks new knowledge and adapts to new trends, technical solutions, and patterns that will improve the availability, reliability, efficiency, observability, and performance of products while also driving consistency in monitoring and operations at scale. 
- Embodies our culture and values 
Qualifications
Required/Minimum Qualifications (RQs/MQs) 
- Bachelor's degree in computer science, or related technical discipline AND 4+ years technical engineering experience with coding in languages including, but not limited to, C, C++, C#, Java, JavaScript, or Python 
- Familiarity with deploying and operating AI systems in production environments 
- Experience building or integrating AI/ML or LLM-based solutions, prompt engineering, RAG
- Understanding of model evaluation, data quality, and performance monitoring 
  
Additional or Preferred Qualifications (PQs) 
- Bachelor's degree in computer science OR related technical field AND technical engineering experience with coding in languages including, but not limited to, C, C++, C#, Java, JavaScript, or Python 
- German language would be beneficial
- Enjoy travel and are comfortable with travel up to 25% 
 
 
Our team prides itself on embracing a growth mindset, inspiring excellence, and encouraging everyone to share their unique viewpoints and be their authentic self. Join us and help create life-changing innovations that impact billions around the world! 
  
At Microsoft, we are seeking people who have a passion for the positive impact technology can have on communities and for making a difference in the world. Within ISE, you will find a wide range of backgrounds, perspectives, personal and cultural experiences which are vital to our success with our customers. Its an informal and flexible work environment, and youll be welcome to work in a way that best enables you to get your job done.   
  
We invest in your health,wellness,and financial future by offering a competitive package including a wide range of benefits built around your personal needs and those close to you.  
  
Benefits/perks listed below may vary depending on the nature of your employment with Microsoft and the country where you work. 
 
 
#ISEngineering 
#WSS
Software Engineering IC4 - The typical base pay range for this role across Switzerland is CHF 146,200.00 - CHF 245,900.00 per year. Certain roles may be eligible for benefits and other compensation.
Find additional benefits and pay information here:
https://careers.microsoft.com/v2/global/en/corporate-pay/switzerland-corporate-pay.html
This position will be open for a minimum of 5 days, with applications accepted on an ongoing basis until the position is filled.
Microsoft is an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to age, ancestry, citizenship, color, family or medical care leave, gender identity or expression, genetic information, immigration status, marital status, medical condition, national origin, physical or mental disability, political affiliation, protected veteran or military status, race, ethnicity, religion, sex (including pregnancy), sexual orientation, or any other characteristic protected by applicable local laws, regulations and ordinances. If you need assistance with religious accommodations and/or a reasonable accommodation due to a disability during the application process, read more about requesting accommodations.
+10
View File
@@ -85,6 +85,12 @@ POSITIVE_KEYWORDS = {
"brokerage": 2, "commodity": 1, "execution": 1, "brokerage": 2, "commodity": 1, "execution": 1,
# "solutions architect" (plural) already scored above; add singular + adjacent stack # "solutions architect" (plural) already scored above; add singular + adjacent stack
"solution architect": 2, "c#": 1, ".net": 1, "solution architect": 2, "c#": 1, ".net": 1,
# Forward-deployed / field / resident-architect lane — vendor "deploy-to-customer" roles
# where Dennis's multi-country ramp is the differentiator (see user_international_mobility).
# Travel-from-Bern fits his mobility appetite; no relocation required.
"forward deployed": 3, "forward-deployed": 3, "field engineer": 3,
"resident architect": 3, "resident engineer": 3, "resident solutions architect": 3,
"customer engineer": 2,
"senior": 1, "staff": 1, "lead": 1, "principal": 1, "senior": 1, "staff": 1, "lead": 1, "principal": 1,
} }
@@ -112,6 +118,10 @@ ENG_TITLE_FILTER = [
"site reliability", "sre", "backend engineer", "back-end engineer", "site reliability", "sre", "backend engineer", "back-end engineer",
"devops engineer", "cloud engineer", "software engineer", "infrastructure engineer", "devops engineer", "cloud engineer", "software engineer", "infrastructure engineer",
"kafka", "streaming", "big data", "quantitative developer", "quant developer", "kafka", "streaming", "big data", "quantitative developer", "quant developer",
# Forward-deployed / field / resident lane (vendor boards) — see user_international_mobility.
# "resident" alone catches Resident Solutions Architect/Engineer without opening the gate to
# all pre-sales SAs (the overscoring trap); "customer engineer" is Google's field-eng term.
"forward deployed", "forward-deployed", "field engineer", "resident", "customer engineer",
] ]
# id, display, adapter, adapter_args # id, display, adapter, adapter_args
+161
View File
@@ -131,5 +131,166 @@
"decision": "applied", "decision": "applied",
"note": "Observability-spine SWE on an Iceberg telemetry lakehouse; Zurich-commutable, comp CHF 176-253k base clears bar. Best-fit role in the 2026-06 search. | SENT 2026-06-06 (resume+CL finalized, ~86/100).", "note": "Observability-spine SWE on an Iceberg telemetry lakehouse; Zurich-commutable, comp CHF 176-253k base clears bar. Best-fit role in the 2026-06 search. | SENT 2026-06-06 (resume+CL finalized, ~86/100).",
"date": "2026-06-08" "date": "2026-06-08"
},
"https://www.google.com/about/careers/applications/jobs/results/87066954308690630-senior-data-engineer?location=Switzerland": {
"company": "Google",
"title": "Senior Data Engineer (Merchant Data Science)",
"decision": "applied",
"note": "Tier-1 DE fit; self-serve data products = team charter; Zurich team. | SENT 2026-06-15 (resume+CL finalized, 85.5/100). Clarify L4/L5 + comp 180k+ at recruiter stage. ADVANCED 2026-06-17: invited to 30-min Google Hiring Assessment.",
"date": "2026-06-15"
},
"https://jobs.ashbyhq.com/kraken.com/c331de1b-b75a-48f5-9d19-0e56ccb935ab": {
"company": "Kraken (Payward)",
"title": "Site Reliability Engineer, AI Agents",
"decision": "rejected",
"note": "Crypto-native + production-ML edge; remote CH-eligible. Honest gaps: no Terraform/SRE-title/LangGraph. | SENT 2026-06-15 (87.2/100). REJECTED 2026-06-17, no interview — honest infra/SRE gaps likely the filter.",
"date": "2026-06-15"
},
"https://jobs.careers.microsoft.com/global/en/job/200040836": {
"company": "Microsoft",
"title": "Senior Software Engineer (ISE, Zürich)",
"decision": "applied",
"note": "TOP CANDIDATE 2026-07-03 run. ISE = MSFT forward-deployed org (ex-CSE): co-engineering with strategic customers. IC4, published base CHF 146.2-245.9k clears bar; German explicitly beneficial; travel up to 25%; AI/LLM reqs are integration-side (RAG, prompt eng, model monitoring) not model-building. Zürich hybrid from Bern. | SENT 2026-07-03 (resume+CL finalized, 85.8/100).",
"date": "2026-07-03"
},
"https://jobs.ruag.ch/offene-stellen/senior-devops-engineer-c5i/3b3093ab-badc-4e95-8166-0f6ee32c18d0": {
"company": "RUAG (Thun/Bern)",
"title": "Senior DevOps Engineer C5I",
"decision": "shortlist",
"note": "Bern-local WLB-exception tier. English-first (German a plus); Linux/Docker+K8s/Python/GitLab CI/Prometheus-Grafana-ELK = core DevOps lane; analytics-platform ops for Army Cyber Command (C5I, 260p unit, DevSecOps). No citizenship gate in JD (only criminal-record/debt excerpts) but verify clearance as German citizen. Comp likely lateral (market + 13th month) — local tier has relaxed bar. Contact: recruiting-c5i@ruag.ch.",
"date": "2026-07-03"
},
"https://job-boards.greenhouse.io/gitlab/jobs/8522408002": {
"company": "GitLab",
"title": "Forward Deployed Engineer - Germany (Staff)",
"decision": "shortlist",
"note": "Remote-CH eligible Staff FDE (Duo Agent Platform adoption, regulated/self-managed envs). CAUTION: JD body says 'strategic accounts in the APJ region' despite Germany title — clarify region/timezone with recruiter before tailoring. Gaps: Ruby/Go ideal, Terraform/Ansible/Helm expected (Kraken-style honest gap), GitLab-internals depth. Travel up to 50%.",
"date": "2026-07-03"
},
"https://www.google.com/about/careers/applications/jobs/results/135155660865053382-staff-research-generative-ai-cloud-ai-research-coscientist?location=Switzerland": {
"company": "Google",
"title": "Staff Research, Generative AI, Cloud AI Research, Co-Scientist",
"decision": "skip",
"note": "Research-scientist role (model-building at top lab) — off-positioning per user_positioning. Scout top-score is a false positive.",
"date": "2026-07-03"
},
"https://jobs.ashbyhq.com/kraken.com/489f8e7d-e887-46a1-b524-223c8b537523": {
"company": "Kraken (Payward)",
"title": "Senior Product Manager - Trading-as-a-service",
"decision": "skip",
"note": "PM role, not engineering.",
"date": "2026-07-03"
},
"https://jobs.ashbyhq.com/kraken.com/3096a5c6-a4fc-4b09-9953-aefd72d423f3": {
"company": "Kraken (Payward)",
"title": "Web and Brand Designer - Breakout Prop",
"decision": "skip",
"note": "Design role; noise match on crypto/trading keywords.",
"date": "2026-07-03"
},
"https://databricks.com/company/careers/open-positions/job?gh_jid=8598430002": {
"company": "Databricks",
"title": "Senior Forward Deployed Engineer - Full stack",
"decision": "skip",
"note": "UK-anchored (London / Remote-UK), not CH-eligible.",
"date": "2026-07-03"
},
"https://databricks.com/company/careers/open-positions/job?gh_jid=8574912002": {
"company": "Databricks",
"title": "Sr. Manager, AI Forward Deployed Engineering - EMEA",
"decision": "skip",
"note": "People-manager req, NL/UK-anchored.",
"date": "2026-07-03"
},
"https://job-boards.greenhouse.io/grafanalabs/jobs/6095341004": {
"company": "Grafana Labs",
"title": "Senior Field Engineer | Germany | Remote",
"decision": "skip",
"note": "Germany-fenced + Grafana geo-indexed comp below bar (prior finding job_scout_overscoring_findings).",
"date": "2026-07-03"
},
"https://job-boards.greenhouse.io/grafanalabs/jobs/6103688004": {
"company": "Grafana Labs",
"title": "Staff Software Engineer - Databases SRE | Germany | Remote",
"decision": "skip",
"note": "Germany-fenced + below-bar geo-indexed comp; SRE-internals off-lane.",
"date": "2026-07-03"
},
"https://job-boards.greenhouse.io/grafanalabs/jobs/6105595004": {
"company": "Grafana Labs",
"title": "Staff Software Engineer - Identity and Access | Ireland | Remote",
"decision": "skip",
"note": "Ireland-only.",
"date": "2026-07-03"
},
"https://job-boards.greenhouse.io/gitlab/jobs/8522265002": {
"company": "GitLab",
"title": "Forward Deployed Engineer - UK",
"decision": "skip",
"note": "UK-only; the Germany req (8522408002) is the CH-eligible one.",
"date": "2026-07-03"
},
"https://novartis.wd3.myworkdayjobs.com/job/Basel-City/Associate-Director--Solution-Architect-Innovation---Delivery_REQ-10081010-1": {
"company": "Novartis",
"title": "Associate Director, Solution Architect Innovation & Delivery",
"decision": "skip",
"note": "HARD GATE: minimum 5+ years life-sciences/pharma industry — he has none. Role is innovation-scouting advisory in biomedical research. SA-overscoring pattern again; comp band 122.5-227.5k moot.",
"date": "2026-07-03"
},
"https://novartis.wd3.myworkdayjobs.com/job/Basel-City/Associate-Director-and-Senior-Principal--AI-Methods---AI-for-Research--AI4R-_REQ-10080934-1": {
"company": "Novartis",
"title": "Associate Director and Senior Principal, AI Methods, AI4R",
"decision": "skip",
"note": "AI-research-methods role — off-positioning (thin core-AI/ML).",
"date": "2026-07-03"
},
"https://job.bkw.com/offene-stellen/strategy-manager-alle/4592fedf-fd86-436c-91d2-f1d2752f8b90": {
"company": "BKW (Bern)",
"title": "Strategy Manager (alle)",
"decision": "skip",
"note": "Non-engineering; BKW lateral tier already declined once.",
"date": "2026-07-03"
},
"https://jobs.ashbyhq.com/ashby/c3c7125d-7883-4dff-a2bf-f5a55de4a364": {
"company": "Ashby (via getro 'Coinbase Ventures')",
"title": "Staff Software Engineer, Product Engineering, EU",
"decision": "skip",
"note": "Ashby-the-company again (getro alias trap, prior finding); stale posting (2025-11); product full-stack off-lane.",
"date": "2026-07-03"
},
"https://careers.datadoghq.com/detail/4599148/?gh_jid=4599148": {
"company": "Datadog",
"title": "Senior Software Engineer - Backend",
"decision": "skip",
"note": "France/EMEA-anchored; CH employment not offered on this req.",
"date": "2026-07-03"
},
"https://jobs.elastic.co/jobs?gh_jid=8002555&gh_jid=8002555": {
"company": "Elastic",
"title": "Principal Software Engineer I - Distributed Systems - Elasticsearch",
"decision": "skip",
"note": "Elasticsearch-core internals (distributed systems / search engine) — depth mismatch vs data-platform profile despite Java.",
"date": "2026-07-03"
},
"https://www.google.com/about/careers/applications/jobs/results/112755499450933958-software-engineer-iii-aiml-google-cloud-automotive?location=Switzerland": {
"company": "Google",
"title": "Software Engineer III, AI/ML, Google Cloud, Automotive",
"decision": "skip",
"note": "SWE III = L4/mid — level-down vs senior target; automotive AI/ML flavor. Assessment pass reserved for L5 reqs.",
"date": "2026-07-03"
},
"https://www.google.com/about/careers/applications/jobs/results/106146979301466822-staff-software-engineer-security-internal-developer-platform?location=Switzerland": {
"company": "Google",
"title": "Staff Software Engineer, Security, Internal Developer Platform",
"decision": "skip",
"note": "8y security-specialization minimum — hard gate.",
"date": "2026-07-03"
},
"https://jobs.sbb.ch/v2/offene-stellen/sap-consultant-invoice-to-pay-m-w-d/45bf64e8-fd05-4364-8fc8-da7002dd50d5": {
"company": "SBB",
"title": "SAP Consultant Invoice-to-Pay",
"decision": "skip",
"note": "SAP consulting, off-lane.",
"date": "2026-07-03"
} }
} }
@@ -0,0 +1,46 @@
Senior Data Engineer — Google (Merchant Data Science, Merchant Shopping Organization)
JD source: live scrape 2026-06-15 via Playwright (Google careers board), re-verified live same day
URL: https://www.google.com/about/careers/applications/jobs/results/87066954308690630-senior-data-engineer?location=Switzerland
Location: Mountain View, CA, USA; Zürich, Switzerland (preferred-location choice at apply)
Level chip: "Mid" (title says Senior — clarify L4 vs L5 at recruiter stage)
Comp (US band shown): $156,000 - $227,000 USD + 15% bonus target + equity + benefits. Zürich band NOT posted — verify clears 180k+ all-in.
--- VERBATIM POSTING TEXT ---
Note: By applying to this position you will have an opportunity to share your preferred working location from the following: Mountain View, CA, USA; Zürich, Switzerland.
Minimum qualifications:
Bachelor's degree or equivalent practical experience.
5 years of experience designing data pipelines, and dimensional data modeling for synch and asynch system integration and implementation using internal (e.g., Flume, etc.) and external stacks (DataFlow, Spark, etc.).
5 years of experience coding in one or more programming languages.
5 years of experience working with data infrastructure and data models by performing exploratory queries and scripts.
Preferred qualifications:
5 years of experience with statistical methodology and data consumption tools such as business intelligence tools, collabs, jupyter notebooks, Tableau, Power BI, DataStudio, and business intelligence platforms.
3 years of experience developing project plans and delivering projects on time within budget and scope.
3 years of experience partnering with stakeholders (e.g., users, partners, customer), and managing stakeholders/customers.
Experience with Machine Learning for production workflows.
About the job
The Merchant Data Science team is a group within the Merchant Shopping Organization. We work on building scalable data products that empower data-driven decision-making.
In this role, you will innovate and build durable, impactful data products. You will bridge the gap between software engineering, data engineering, and data science.
As a Data Engineer in the Merchant Shopping organization, you will build data products and foundations to improve Google's Shopping products. You will collaborate with a multidisciplinary team of data scientists, engineers, and PMs on a wide range of problems. You will bring an understanding of data, logging, and engineering. You will solve non-routine problems, build reliable data products used across the organization, and drive impact on cross-functional projects.
Individual pay is determined by factors including job-related skills, experience, and relevant education or training.
US: $156000 - $227000 (USD) + 15% bonus target + equity + benefits
Responsibilities
Identify the underlying need, process datasets, and apply advanced data engineering, data modeling, and architectural frameworks when needed.
Design, build, and scale innovative data products, including self-serve tools, and automated pipelines.
Advance data infrastructure, product quality, and foundational understanding through automated validation frameworks, data quality, and reliability monitoring.
Operate with a high degree of autonomy, owning data engineering projects from initial conception to landing and impact.
Advocate impactful data products while contributing to a team culture that values engineering excellence, robust data, and sharp communication.
@@ -0,0 +1,220 @@
# Critique: Google — Senior Data Engineer (Merchant Data Science, Merchant Shopping) — Zürich
**Resume:** `output/Google_Senior_Data_Engineer/e2e_google_senior_data_engineer_resume.tex`
**Cover Letter:** `output/Google_Senior_Data_Engineer/e2e_google_senior_data_engineer_cover_letter.tex`
**JD source:** live scrape 2026-06-15 via Playwright (real Google posting, verbatim) — JD integrity OK
**Date:** 2026-06-15
**Score: 85.5 / 100** (Tier-1 scope fix + both Tier-2 items APPLIED 2026-06-15; baseline pre-edit was 83.0)
> **Edits applied 2026-06-15 (this critique pass):**
> - **Tier 1 (scope/accuracy):** resume B2 + CL P2 migration claim re-scoped — "Migrated Swisscom's legacy Teradata/Oracle ETL" → "Migrated my Fulfillment and Product Analysis ETL from Teradata/Oracle to Swisscom's … AWS platform" (resume) / "As Swisscom moved to a cloud-native AWS platform …, I migrated my Fulfillment and Product Analysis ETL off Teradata and Oracle" (CL). Recurring flagged Scope-Discipline error cleared in both docs.
> - **Tier 2.1:** resume B4 now hits the project-delivery preferred qual — "for B2B stakeholder teams **on time and in scope**" (dropped "3rd-level root cause analysis" for space).
> - **Tier 2.2:** resume B5 "distributed computing" → "distributed data processing" (JD's exact phrase).
> - Re-verified: resume 2pp / CL 1pp, clean compile, no orphans; B2 216 / B4 190 / B5 206 chars (all ≤218 max); AI scan still clean.
> Remaining gap is the structural hard ceiling (~87): no GCP/BigQuery-by-name, no marketplace domain — not truthfully closable.
---
## Domain-Specialist Lens
### Reviewer Persona
A Google L5/L6 Data Engineer tech lead or DE manager on Merchant Data Science (Zürich). Reads pipelines + dimensional-modeling depth, data-product thinking (self-serve, durable, consumed at scale), data-quality/validation rigor, and autonomy. Has screened dozens of DEs with BigQuery/Dataflow/dbt + marketplace data. Rolls eyes at BI-dashboard-only profiles and "moved data from A to B" with no modeling. Genuinely interested by someone who has *designed data models and owned data products others depend on*, not just run ETL.
### Company Context
Merchant Shopping Org; the Shopping Graph indexes 60B+ product listings (confirmed Google I/O, 19 May 2026). Merchant Data Science builds scalable data products powering data-driven decisions + AI Shopping experiences (Gemini/AIM). Role explicitly "bridges SWE, DE, and DS." Insider vocabulary: data products, self-serve, dimensional modeling, fact/dim tables, data quality SLAs, validation frameworks, freshness/lineage, Flume/Dataflow/BigQuery, batch+streaming, idempotency, backfill. "Equivalent practical experience" explicitly accepted in min quals.
### JD Vocabulary Extraction (ranked)
| # | JD Term | Freq | Meaning here | Resume Match? |
|---|---|---|---|---|
| 1 | data products (durable, self-serve) | High (title-adjacent, 3×) | Reusable assets other teams consume without re-engineering | YES — near-verbatim, flagship (SW-7) |
| 2 | designing data pipelines | High (min qual) | Production pipeline design, not maintenance | YES |
| 3 | dimensional data modeling | High (min qual) | Fact/dim schema design | YES — verbatim, 3× |
| 4 | data infrastructure / data models | High (min qual) | Platform + exploratory queries | YES |
| 5 | Flume / DataFlow / Spark | Med (min qual) | Internal + external distributed stacks | PARTIAL — Spark direct; Flume/DataFlow honest bridge (CL), never claimed |
| 6 | automated validation / data quality / reliability monitoring | High (resp) | Quality frameworks, freshness/anomaly | YES (BS-4) |
| 7 | autonomy, conception→landing→impact | High (resp) | Owns projects end-to-end | YES — Component/App Owner |
| 8 | BI / data-consumption tools, statistical methodology | Med (pref) | Tableau/PowerBI/DataStudio/Jupyter | PARTIAL — Spotfire/Tableau/QuickSight/Jupyter; no PowerBI/DataStudio |
| 9 | ML for production workflows | Med (pref) | ML in prod | YES (BS-1) |
| 10 | stakeholder partnering, project delivery on time/budget/scope | Med (pref) | Cross-functional + PM discipline | YES on stakeholders; THIN on explicit "on time/budget/scope" phrasing |
### Domain Vocabulary Map
| Resume currently says | Could say for this JD | Why |
|---|---|---|
| "Migrated Swisscom's legacy Teradata/Oracle ETL" | "Migrated my Fulfillment/Product Analysis ETL onto Swisscom's AWS platform" | Scope the object — see Tier 1 (accuracy) |
| "distributed computing" (B5) | "distributed data processing" | JD's exact phrase; tiny swap |
| (implicit delivery) | "delivered on time, within scope" somewhere | Hits the 3-yr project-delivery preferred qual verbatim |
### Gap Ranking
- **Fatal:** None. Every minimum qual is met (pipelines, dimensional modeling, 5+ yrs coding, data infra) and Google explicitly accepts equivalent practical experience.
- **Serious:** No BigQuery/Dataflow/Flume hands-on by name; no Google-scale or e-commerce/marketplace domain. These are real and **correctly not faked** — handled as honest bridges. They cap the ceiling but won't trigger ATS/HR rejection.
- **Cosmetic:** No PowerBI/DataStudio (has Tableau/Spotfire/QuickSight — equivalent); explicit "on time/budget/scope" phrasing absent; "synch/asynch" not verbatim.
### Methodology Transfer Test (top 5 achievements)
| Achievement | How a Google Merchant-DS expert reads it |
|---|---|
| SW-7 self-serve governed data products on Data Mesh | "This is literally our job description — durable data products consumed across teams." ✅ Strongest transfer in the package. |
| SW-1 Teradata/Oracle→AWS migration + dimensional schemas | "Cloud warehouse migration + dimensional modeling — maps to our BigQuery/Dataflow world conceptually." ✅ (verb-scope caveat below) |
| SW-6 PySpark distributed processing | "Spark transfers to Dataflow/Flume; he says so honestly." ✅ |
| BS-4 anomaly detection + data-quality stack | "Validation frameworks + reliability monitoring — exactly our 'automated validation' responsibility." ✅ |
| BS-1 production ML inference in 24/7 fab | "ML for production workflows preferred qual, in a no-downtime environment." ✅ |
All five transfer naturally and honestly. This is a genuine Tier-1 fit, not a reframe stretch.
### Competitive Landscape
- **Obvious fit:** ex-FAANG or marketplace DE fluent in BigQuery/Dataflow/dbt, dimensional modeling at Google scale, e-commerce data.
- **Our advantage:** self-serve data-product / Data-Mesh platform thinking at telco scale (the JD's #1 ask, near-verbatim), production ML, data-quality/reliability discipline, broad multi-industry delivery, local to Zürich.
- **Their advantage:** GCP-by-name, Google-scale, marketplace domain. Unbridgeable truthfully → defines the hard ceiling.
---
## Five-Perspective Read-Through
### ATS Robot
Verbatim/semantic matches: data pipelines ✅, dimensional data modeling ✅, data products ✅, self-serve tools ✅, automated pipelines ✅, data infrastructure ✅, data models ✅, Spark/PySpark ✅, Airflow ✅, SQL ✅, Python ✅, Kafka ✅, data quality ✅, automated validation ✅, reliability monitoring ✅, stakeholder ✅, ML production ✅, Jupyter ✅, Tableau ✅, statistical methods ✅. Missing: Flume ❌ (intentional), DataFlow ❌ (intentional, bridged in CL), DataStudio ❌, Power BI ❌, explicit "project plans/on time/budget/scope" ❌.
**Match rate: ~18/22 ≈ 82% → PASS.** No high-frequency JD term sits at 0 in the resume except the GCP-internal tools (correctly avoided).
### Recruiter Glance (10s)
**Verdict: FORWARD (80%).** Staff Data Engineer at Switzerland's largest telco + AWS SAA + a tagline in exact target vocabulary ("Data Products, Dimensional Modeling & Pipeline Ownership"). Credible at level instantly. Only drag: Google's bar is brutal and there's no FAANG/GCP name on the page.
### HR Screen (30s)
**Verdict: PHONE SCREEN (80%).** Summary bridges cleanly ("designing and owning production data pipelines, dimensional data models and self-service data products"). 11+ years clears the 5-yr bars several times over. Skills group names signal target domain. Equivalent-practical-experience clause covers the degree.
### Hiring Manager (2min)
**Verdict: INTERVIEW / leaning yes (6065%).**
Top 3 observations:
1. SW-7 self-serve governed data products = the team's charter almost verbatim — immediate "this person already does our job."
2. Honest about the GCP gap (CL: "carries over to Google's Flume and Dataflow stack, though not by name") — reads as a confident engineer, not a buzzword-stuffer.
3. Would notice the absence of any Google-scale / marketplace data point, and would probe dimensional-modeling depth.
**Predicted first interview question:** "Walk me through the dimensional model behind one of your self-serve data products — grain, fact/dim split, and how you handle late-arriving data and backfills."
### Technical Reviewer (10min)
**Truthfulness:** One scope overclaim (see Tier 1) in resume B2 and CL P2: "Migrated Swisscom's legacy Teradata/Oracle ETL" reads as a solo claim on a company-wide migration that Dennis contributed to within his domains (per CLAUDE.md Scope Discipline + `[[feedback_swisscom_datamesh_ownership]]`). Everything else verified: AWS SAA active to Sep 2027 ✅, no LangChain ✅, crypto dropped ✅, no Security Champion ✅, Generali=Hamburg ✅, Bosch=Dresden ✅, languages German/English only ✅, TAF 2022 talk reserved for CL (verified) ✅, no LOC/test counts ✅.
**Consistency:** Resume ↔ CL aligned (same stack, same titles, same hooks). The B2/P2 scope issue appears in *both* — fix in both.
---
## Eight-Dimension Scoring
| Dimension | Score | Weight | Weighted | Notes |
|---|---|---|---|---|
| ATS Keywords | 8.5/10 | 15% | 1.275 | ~82% match; honest GCP-tool gaps the only zeros |
| Summary | 8.5/10 | 10% | 0.85 | Strong bridge, leads with data products; no headline metric (typical for DE) |
| Skills Section | 8.5/10 | 10% | 0.85 | BI/Analytics group well-added; all relevant; bolds accurate |
| Bullet Quality | 8.2/10 | 25% | 2.05 | Excellent reframing + near-verbatim SW-7; docked for B2 scope overclaim |
| Pubs / Credentials | 8.0/10 | 10% | 0.80 | No pubs (expected); AWS SAA + Data Eng + IBM AI Eng + iSAQB are solid signals |
| Narrative Coherence | 8.5/10 | 15% | 1.275 | Clean data-product → quality → ML → delivery arc; consistent thread |
| Page Fill & Visual | 8.5/10 | 5% | 0.425 | Clean compile, 2pp, no orphans; page 2 has modest lower slack (acceptable) |
| Credibility Signals | 8.0/10 | 10% | 0.80 | Component/App Owner titles, AWS cert, CNN/BBC; scope overclaim slightly dents under expert read |
| **Total** | | **100%** | **83.3** | Rounded **83.0** |
---
## Interview Likelihood
| Reader | Probability | Key Factor |
|--------|------------|-----------|
| ATS | 90% PASS | Core DE keywords all present verbatim |
| Recruiter (10s) | 80% FORWARD | Staff title + AWS cert + on-target tagline |
| HR (30s) | 80% PHONE SCREEN | Clears every min qual; equivalent-experience clause |
| Hiring Manager (2m) | 62% INTERVIEW | SW-7 = team charter; offset by no GCP/marketplace name |
| Technical Panel (10m) | YES with probes | Will test dimensional-modeling depth + Spark→Dataflow transfer |
**Ceiling:** Current 83 → +Tier 1 scope fix ≈ 85.5 → theoretical max (this candidate+JD) ≈ 8687. **Hard ceiling ~87**, set by no GCP/BigQuery-by-name and no Google-scale/marketplace domain — not truthfully closable. What would close it: a hands-on BigQuery/Dataflow project or e-commerce/marketplace data work (neither exists; do not fabricate).
---
## Actionable Improvements
### Tier 1 (HIGH — do this one)
1. **Scope the migration claim (accuracy — recurring flagged error). +~2 pts.** Appears in **both** resume B2 and CL P2.
- Resume B2 — current: *"Migrated Swisscom's legacy Teradata/Oracle ETL to a cloud-native AWS platform (S3, Glue, Athena/Iceberg, Redshift, Airflow), modeling dimensional schemas..."*
- → Proposed: *"Migrated my Fulfillment and Product Analysis ETL off Teradata/Oracle onto Swisscom's cloud-native AWS platform (S3, Glue, Athena/Iceberg, Redshift, Airflow), modeling the dimensional schemas..."*
- CL P2 — current: *"I migrated Swisscom's legacy Teradata and Oracle ETL onto a cloud-native AWS platform..."*
- → Proposed: *"As Swisscom moved to a cloud-native AWS platform (Glue, Athena/Iceberg, Redshift, Airflow), I migrated my Fulfillment and Product Analysis ETL off Teradata and Oracle and modeled the dimensional schemas behind it..."*
- **Why:** "Migrated Swisscom's legacy … ETL" pairs a full-ownership verb with a company-wide object — the exact pattern banned in CLAUDE.md Scope Discipline and `[[feedback_swisscom_datamesh_ownership]]` (the ODP migration is company-wide, Dennis contributed within his domains). Scoping the object keeps every ATS keyword and reads *more* credible to an L5 DE, not less.
### Tier 2 (MEDIUM — optional)
1. **Add explicit project-delivery phrasing (~+0.4).** The 3-yr "developing project plans and delivering on time, within budget and scope" preferred qual has no verbatim hook. If a bullet can absorb it (e.g., fold "delivered on time and in scope" into B3 or the Bosch App-Owner bullet), it's a cheap ATS+HR win. Watch char limits — both candidate bullets are already near target.
2. **"distributed computing" → "distributed data processing" in B5 (~+0.2).** JD's exact phrase; one-word-ish swap, no length change.
### Tier 3 (COSMETIC — skip)
1. "synch/asynch" verbatim insertion — Kafka+batch already covers it semantically; not worth the bullet space.
2. Page-2 lower slack — within tolerance for a 2-page resume; do not pad.
### Verdict
Apply Tier 1 (it's an accuracy fix on a recurring flagged error, in both documents). Tier 2 are genuine but optional polish. Tier 3 skip.
---
## Interview Bridge Points
| Resume Topic | Target Equivalent | Opening Line |
|---|---|---|
| SW-7 self-serve data products | Merchant Data Science's durable data products | "The self-serve data products I own at Swisscom are the same primitive your team builds — assets other teams query without coming back to me; the difference is scale, not concept." |
| SW-6 PySpark / Data Lake | Flume / Dataflow | "My PySpark batch+streaming work maps directly onto Flume and Dataflow — same distributed-processing model, columnar lake underneath; I'd ramp on the API, not the paradigm." |
| SW-1 dimensional modeling | BigQuery fact/dim schemas | "I model fact/dimension schemas on Athena/Iceberg/Redshift today; ZetaSQL/BigQuery is a dialect and storage shift, not a modeling one." |
| BS-4 anomaly detection + data quality | Automated validation frameworks | "Reliability monitoring for a 24/7 fab is the same discipline as your automated validation — freshness, completeness, anomaly alerting with no maintenance window." |
| BS-1 production ML inference | ML for production workflows | "I containerized ML inference into a fab with zero downtime tolerance — the operational bar for production ML is something I've already lived." |
| BS-5 Spotfire + TAF 2022 talk | Data consumption / how analysts use products | "I co-owned a Spotfire analytics platform and spoke at TIBCO Analytics Forum 2022 on spatial-variability visualization — I think about the consumption end, not just the pipeline end." |
| Component/Application Owner | Autonomy, conception→landing→impact | "I've held formal Component and Application Owner titles — I own things end to end with on-call accountability, which is exactly the autonomy this role describes." |
---
## Cover Letter Critique
**Institution type:** Industry (big-tech, DE audience). **Word count:** 299 — within the 250300 industry target. ✅
### 6A. Anti-Pattern Checklist
- [x] Opens with a specific fact (60B Shopping Graph), not "I am writing to express…"
- [x] Adds narrative context, doesn't rehash bullets in prose
- [x] Names specific product/program (Shopping Graph, Merchant Data Science, Flume/Dataflow, TAF 2022)
- [x] Clear "why this team" (Zürich, bridge SWE/DE/DS, local from Bern)
- [x] Strongest qual (self-serve data products) in P1
- [x] No apologetic gap language — gap stated confidently ("though not by name")
- [x] Active close ("I'd welcome a conversation about the team's roadmap")
- [x] Credentials woven into body, not dumped
### 6B. Tailoring Signals
Names Shopping Graph + Merchant Data Science + Flume/Dataflow; uses ≥3 supplementing JD terms (durable/reusable data products, dimensional modeling, autonomy); references mission (data foundation for AI Shopping); proposes a concrete method↔need connection. ✅
### 6C. Industry-Specific
- [x] Business-value translation present ("decisions merchants and shoppers act on")
- [x] No "leaving academia" framing
- [x] Jargon calibrated to a DE reader
### 6D. CL ATS
Supplementing keywords present: Shopping Graph, self-service/durable data products, dimensional modeling, PySpark, Flume/Dataflow, ELK/Grafana/Prometheus, production ML, Component Owner. 7+ — strong.
### 6E / 6F. Structural & Cohesion
- [x] Claims match resume; no new unsupported achievements
- [x] CL deepens (motivation, "one scale down," consumption angle), doesn't restate
- [x] Word count 299; tone results-driven
- [x] Quantification present (60B listings, 24/7, 300mm, TAF 2022) — 4+, not a fact sheet
- [⚠] **One contradiction to fix alongside Tier 1:** CL P2 "I migrated Swisscom's legacy Teradata and Oracle ETL" carries the same scope overclaim as resume B2 — fix in both so the documents stay consistent.
### 6G. AI Fingerprint Scan (12-item)
- Tier-1 banned words: none. ✅
- Banned phrases: none. ✅
- Em-dashes: **0** in CL (commas used for the appositive), ≤2 in resume (en-dashes only). ✅
- Bullet -ing analysis endings: none. ✅
- 3+ consecutive same-length sentences: no — CL mixes short ("That is the work I do today, one scale down.") with long. ✅
- Repeated paragraph-start structure: no (P1 "Google's…", P2 "Most of…", P3 "Two things…"). ✅
- >2 triplet structures: borderline (two "X, Y, and Z"; one quotes the JD) — acceptable. ✅
- Generic opener: no. ✅
- Metaphorical landscape/journey/realm: none. ✅
- Passive-voice bullets >20%: no. ✅
**AI scan: clean.**
---
## Part 7: Post-Generation Verification
**Mechanical:** All 17 variable bullets within 189218 char range ✅ (char_count.py: bullets 117 OK/NEAR-MAX, none OVER). Cert lines 1L "SHORT" — FIXED section, acceptable. No orphans ✅. Resume 2 pages ✅. CL 1 page, 299 words ✅. One 0.97pt overfull hbox in CL — sub-pixel, invisible.
**Content:** ATS ≥70% ✅. Provenance clean ✅. No forbidden terms (no LangChain, no LOC/test counts, no crypto, no Security Champion) ✅. No publication entries to mismatch. CL claims traceable to resume ✅.
**Structural:** "Google"/"Swisscom"/"Bosch"/"Generali"(Hamburg)/"Fraunhofer"/"Vizrt" all correct ✅. Complete preambles, compiles standalone ✅. Dates "Mon YYYY -- Mon YYYY" ✅. Email dennis@thiessen.io ✅. No US immigration line (Zürich target) ✅.
**Only flag rising to Tier 1:** the migration scope overclaim (resume B2 + CL P2).
---
*End of critique.*
@@ -0,0 +1,44 @@
\documentclass[11pt,a4paper,roman]{moderncv}
\usepackage[english]{babel}
\moderncvstyle{classic}
\moderncvcolor{green}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{ragged2e}
\usepackage[scale=0.80]{geometry}
\usepackage[version=4,arrows=pgf-filled]{mhchem}
\renewcommand*{\makeletterclosing}{\par\vspace{2ex}\closingname\par}
\microtypesetup{expansion=false}
% ========== HEADER ==========
\name{Dennis}{Thiessen, M.Eng.}
\address{Bern, Switzerland}{}{}
\phone[mobile]{+41~795~955~585}
\email{dennis@thiessen.io}
\extrainfo{\href{https://linkedin.com/in/dennis-thiessen}{linkedin.com/in/dennis-thiessen}}
% ============================
\begin{document}
\recipient{Hiring Team}{Merchant Data Science, Merchant Shopping\\Google Switzerland GmbH\\Z\"urich, Switzerland}
\date{\today}
\opening{Dear Merchant Data Science Hiring Team,}
\makelettertitle
\begin{justify}
Google's Shopping Graph now indexes over 60 billion product listings, and the Merchant Data Science team in Z\"urich builds the data foundation that turns that scale into decisions merchants and shoppers act on. That is the work I do today, one scale down. At Swisscom, Switzerland's largest telco, I design and own self-service, governed data products that analytics and engineering teams depend on. The role's explicit aim, bridging software engineering, data engineering, and data science, is how I already work as a Component Owner. Based in Bern, I'd be local to the Z\"urich team.
Most of my last decade has been pipeline design and dimensional modeling in production. As Swisscom moved to a cloud-native AWS platform (Glue, Athena/Iceberg, Redshift, Airflow), I migrated my Fulfillment and Product Analysis ETL off Teradata and Oracle, modeled the dimensional schemas behind it, and own the business-critical Fulfillment pipelines that feed it under an on-call SLA. On that platform I build the self-serve data products other teams query without coming back to me, the durable, reusable assets your posting describes. For heavy workloads I use PySpark across our Data Lake; that distributed-processing experience carries over to Google's Flume and Dataflow stack, though not by name.
Two things round out the fit. Data quality and reliability are not afterthoughts for me: at Bosch I built the anomaly-detection and monitoring stack (ELK, Grafana, Prometheus) for 24/7 manufacturing data and moved production ML inference into a 300mm wafer fab, where there are no maintenance windows. I also care about how people consume data. I co-owned Bosch's TIBCO Spotfire analytics platform and spoke at the TIBCO Analytics Forum 2022 on visualizing spatial variability in semiconductor products. Building data products that AI-powered Shopping experiences and human analysts rely on is where I want to work next, and I'd welcome a conversation about the team's roadmap.
\end{justify}
\vspace{0.3cm}
{Sincerely,\\
Dennis Thiessen, M.Eng.\\
Staff Data, Analytics \& AI Engineer\\
Swisscom (Schweiz) AG}
\end{document}
@@ -0,0 +1,162 @@
\documentclass{resume}
\usepackage{hyperref}
\usepackage{enumitem}
\usepackage{fontawesome}
\usepackage{tikz}
\usepackage{graphicx}
\hypersetup{
colorlinks = true,
linkcolor = [rgb]{0.9,0.4,0.4},
anchorcolor = [rgb]{0.9,0.4,0.4},
citecolor = [rgb]{0.4,0.4,0.4},
filecolor = [rgb]{0.4,0.4,0.4},
urlcolor = [rgb]{0.0,0.0,0.99},
}
\usepackage{xcolor}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[version=4,arrows=pgf-filled]{mhchem}
\usepackage[includefoot,left=0.5in,top=0.5in,right=0.5in,bottom=0.2in,textwidth=7.5in,textheight=10.8in]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[R]{\hfill \thepage/\pageref{LastPage}}
\newcommand{\tab}[1]{\hspace{.2667\textwidth}\rlap{#1}}
\newcommand{\itab}[1]{\hspace{0em}\rlap{#1}}
%----------------------------------------------------------------------------------------
% HEADER
%----------------------------------------------------------------------------------------
\name{Dennis Thiessen, M.Eng.}
\address{\href{https://linkedin.com/in/dennis-thiessen}{LinkedIn}}
\address{dennis@thiessen.io \\ +41 795 955 585}
\address{Bern, Switzerland $\vert$ German citizen (EU) $\vert$ Open to Z\"urich (on-site / hybrid)}
\address{{Senior Data Engineer $\vert$ Python $\cdot$ SQL $\cdot$ AWS $\cdot$ Spark $\vert$ Data Products, Dimensional Modeling \& Pipeline Ownership}}
\begin{document}
\vspace{-0.15cm}
%----------------------------------------------------------------------------------------
% SUMMARY
%----------------------------------------------------------------------------------------
\begin{rSection}{Summary}
Senior data engineer with 11+ years designing and owning production data pipelines, dimensional data models and self-service data products. At Switzerland's largest telco I build governed, reusable \textbf{data products} on \textbf{AWS} (Glue, Athena/Iceberg, Redshift, \textbf{Airflow}) and own business-critical Oracle/\textbf{Kafka}-to-Teradata \textbf{ETL} under SLA. Earlier I co-owned a \textbf{TIBCO Spotfire} analytics platform and moved \textbf{ML} inference into a 24/7 Bosch fab. \textbf{AWS} Certified Solutions Architect; \textbf{Python} and \textbf{SQL} expert with \textbf{PySpark} for distributed processing.
\end{rSection}
\vspace{-0.15cm}
%----------------------------------------------------------------------------------------
% TECHNICAL SKILLS — Format C, 5 groups (4-3-2-2-2)
%----------------------------------------------------------------------------------------
\begin{rSection}{Technical Skills}
\begin{skillgroup}{Data Engineering \& Pipelines}
\skilldash{ETL/ELT pipeline design, dimensional data modeling, data warehousing, \textbf{data products}, data governance}
\skilldash{\textbf{Apache Airflow}, \textbf{Apache Kafka}, batch \& streaming ingestion, SAP BODS, metadata management}
\skilldash{\textbf{PySpark} / \textbf{Apache Spark}, distributed data processing, Hadoop / Impala, large-scale batch}
\skilldash{Data quality, automated validation, reliability monitoring (ELK, \textbf{Grafana}, \textbf{Prometheus}, Loki)}
\end{skillgroup}
\begin{skillgroup}{Cloud Platform \& Infrastructure}
\skilldash{\textbf{AWS} (S3, Glue, Athena/Iceberg, Redshift, Lambda, Step Functions, CloudWatch) -- SAA-certified}
\skilldash{Infrastructure as Code (CloudFormation), serverless \& event-driven architecture, ECR/ECS}
\skilldash{\textbf{Kubernetes}, \textbf{Docker}, \textbf{GitLab CI/CD}, Jenkins, Ansible, Linux, Git}
\end{skillgroup}
\begin{skillgroup}{BI, Analytics \& Data Consumption}
\skilldash{\textbf{TIBCO Spotfire} (C\# extensions, platform owner), \textbf{Tableau}, AWS QuickSight, dashboards \& reporting}
\skilldash{Jupyter / Pandas, exploratory analysis, statistical methods, stakeholder analytics}
\end{skillgroup}
\begin{skillgroup}{Programming \& Databases}
\skilldash{\textbf{Python} (expert), \textbf{SQL}, Java, C\#, Bash, JavaScript/TypeScript, FastAPI, pytest}
\skilldash{Teradata, Oracle DB, Redshift, Athena, ImpalaSQL, relational \& dimensional modeling}
\end{skillgroup}
\begin{skillgroup}{Certifications}
\skilldash{\textbf{AWS Certified Solutions Architect -- Associate} (active to Sep 2027), Data Engineering with AWS (Udacity)}
\skilldash{iSAQB CPSA -- Foundation (2016), ITIL Foundation (2016), IBM AI Engineering Specialization}
\end{skillgroup}
\end{rSection}
\vspace{-0.15cm}
%----------------------------------------------------------------------------------------
% PROFESSIONAL EXPERIENCE
%----------------------------------------------------------------------------------------
\begin{rSection}{Professional Experience}
% --- Swisscom (Oct 2023 -- Present) — SW-7, SW-1, SW-2, SW-4, SW-6, SW-3 ---
\begin{rSubsection}{Self-Service Data Products, Dimensional Modeling \& Cloud-Native Pipelines}{\textcolor{black!60}{Oct 2023 -- Present}}{Staff Data, Analytics \& AI Engineer, Swisscom (Schweiz) AG}{Bern, Switzerland}
\item Build governed, self-service \textbf{data products} with metadata management within Swisscom's \textbf{Data Mesh} on \textbf{AWS} (Glue, Athena, CloudFormation, CI/CD), consumed by downstream analytics and engineering teams.
\item Migrated my Fulfillment and Product Analysis \textbf{ETL} from Teradata/Oracle to Swisscom's cloud-native \textbf{AWS} platform (Glue, Athena/Iceberg, Redshift, \textbf{Airflow}), modeling dimensional schemas for batch and analytics workloads.
\item Own business-critical Fulfillment \textbf{ETL} pipelines (Oracle, \textbf{Kafka} to Teradata in \textbf{Python}) as Component Owner, enforcing dimensional data models, data governance and data quality under on-call SLA.
\item Deliver data products, dashboards (\textbf{Tableau}, QuickSight) and analyses for B2B stakeholder teams on time and in scope, partnering with product owners and automating recurring \textbf{Python} workflows.
\item Apply \textbf{PySpark} and distributed data processing in the Swisscom Data Lake, extending \textbf{Python} and \textbf{SQL} pipelines to large-scale batch and streaming workloads across Fulfillment and Product Analysis data domains.
\item Design, deploy and operate \textbf{Python} data applications on \textbf{Kubernetes} with \textbf{GitLab CI/CD}, owning containerized delivery from build and test through production rollout and operation in an agile DevOps team.
\end{rSubsection}
% --- Bosch (Feb 2020 -- Dec 2022) — BS-1, BS-3+BS-5, BS-4, BS-2 ---
\begin{rSubsection}{Production Data Engineering, ML \& Analytics Platform Ownership}{\textcolor{black!60}{Feb 2020 -- Dec 2022}}{(Senior) Data Engineer, Robert Bosch Semiconductor Manufacturing}{Dresden, Germany}
\item Containerized and orchestrated production \textbf{ML} inference (\textbf{Docker}, \textbf{Kubernetes}, Ansible) for automated image-based defect classification in Bosch's 24/7 semiconductor fab across 300mm wafer lines.
\item Co-owned the \textbf{TIBCO Spotfire} analytics platform and the Defect Management System as Application Owner, building C\# extensions and wafer-map visualizations, defining SLOs and training engineering users.
\item Delivered an anomaly-detection and data-quality stack (ELK with \textbf{Kafka} on \textbf{Docker}, plus \textbf{Grafana}, \textbf{Prometheus}, Loki), giving centralized monitoring, validation and alerting for 24/7 manufacturing data.
\item Developed data services in \textbf{Python}, Java and C\# over OracleDB and Hadoop/ImpalaSQL, giving analysis teams structured, reliable access to defect-management and process-optimization data in a high-throughput fab.
\end{rSubsection}
% --- Fraunhofer (Sep 2018 -- Oct 2019) — FC-1, FC-3 ---
\begin{rSubsection}{Data-Exchange Microservices \& CI/CD Automation, Built from Zero}{\textcolor{black!60}{Sep 2018 -- Oct 2019}}{Research Software Engineer, Fraunhofer-Center for Maritime Logistics CML}{Hamburg, Germany}
\item Set up the team's first Jenkins \textbf{CI/CD} pipeline with quality gates independently, bringing build automation to the group; also developed the SCEDAS crew-scheduling system (C\#, .NET, MS SQL, Entity Framework).
\item Built containerized microservices (Express.js, \textbf{Docker}, SQLite) for MISSION, a Fraunhofer maritime data-exchange platform connecting ports, operators and research partners across the logistics chain.
\end{rSubsection}
% --- Vizrt (Jul 2017 -- May 2018) — VZ-1, VZ-2 ---
\begin{rSubsection}{Distributed Real-Time Backend Engineering at Broadcast Scale}{\textcolor{black!60}{Jul 2017 -- May 2018}}{DevOps Engineer, Vizrt}{Bergen, Norway}
\item Engineered distributed real-time video-transcoding backend components in \textbf{Python} (with legacy C++ modules) for Vizrt's broadcast platform, serving global media customers including CNN, BBC and Al Jazeera.
\item Wrote an automated A/V integration and unit test suite in \textbf{Python} and wired quality gates into the \textbf{CI/CD} pipeline, which shortened the feedback loop for new features and raised release reliability.
\end{rSubsection}
% --- Generali (May 2015 -- Jun 2017) — GN-1, GN-3, GN-2 ---
\begin{rSubsection}{Test Automation, CI/CD Ownership \& Java Backend}{\textcolor{black!60}{May 2015 -- Jun 2017}}{IT Consultant, Generali Deutschland Informatik Services}{Hamburg, Germany}
\item Introduced BDD test automation to Generali (Serenity-BDD, Selenium, JBehave), ran the PoC and took technical ownership, administered Jenkins \textbf{CI/CD} jobs, and trained teams across the Java Community.
\item Developed Java/J2EE features for the PIA-Postkorb workflow portal, migrated WebServices to the XLDeploy process, and contributed to an Apache Camel / Spring Boot dispatcher integration PoC.
\item Pioneered UIPath RPA at Generali GDIS, building PoCs and serving as the internal RPA contact for group companies, extending automation from test tooling into broader business process automation.
\end{rSubsection}
\end{rSection}
\vspace{-0.15cm}
%----------------------------------------------------------------------------------------
% EDUCATION — FIXED
%----------------------------------------------------------------------------------------
\begin{rSection}{Education}
{M.Eng.\ Computer Aided Engineering (Software Design \& Engineering)} \hfill {\textcolor{black!60}{Apr 2012 -- Oct 2013}}\\
{Universit\"at der Bundeswehr M\"unchen}; thesis at Tongji University, Shanghai \hfill Thesis Grade: \textbf{1.0}\\
{\small Thesis: \textit{Development of a Web-Based Remote Fault Diagnosis System} (Neural Networks, PSO, Fuzzy Logic)}
{B.Eng.\ Information and Telecommunication Technologies} \hfill {\textcolor{black!60}{Oct 2009 -- Oct 2012}}\\
{Universit\"at der Bundeswehr M\"unchen}, Munich, Germany
\end{rSection}
\vspace{-0.15cm}
%----------------------------------------------------------------------------------------
% CERTIFICATIONS & AWARDS — FIXED
%----------------------------------------------------------------------------------------
\begin{rSection2}{Certifications \& Awards}
\item \textbf{AWS Certified Solutions Architect -- Associate}, Amazon Web Services (2024, active until Sep 2027).
\item \textbf{Data Engineering with AWS Nanodegree}, Udacity (2026). AWS data pipeline architecture.
\item \textbf{IBM AI Engineering Specialization}, Coursera. Deep learning, TensorFlow, Keras, Apache Spark ML.
\item \textbf{iSAQB CPSA -- Foundation Level}, iSAQB (2016). Certified Professional for Software Architecture.
\item \textbf{ITIL Foundation Certificate in IT Service Management}, PEOPLECERT / AXELOS (2016).
\end{rSection2}
\begin{center}
\vspace{0.1cm}
\textit{Languages: German (native), English (fluent)}
\end{center}
\end{document}
@@ -0,0 +1,117 @@
# Google — Senior Data Engineer (Merchant Data Science) — Interview Loop Prep Brief
> Status: PASSED Hiring Assessment 2026-06-20; recruiting reviewing for next steps.
> Role: Merchant Data Science, Merchant Shopping Org. Zürich / Mountain View.
> JD level chip = "Mid"; title = Senior → **clarify L4 vs L5 with recruiter** (see §5).
> Comp posted US $156227k + 15% + equity; **Zürich band NOT posted → verify clears 180k all-in** (see §5).
This brief maps the actual loop rounds onto your real Swisscom (SW-*) and Bosch (BS-*) evidence.
Accuracy rule still applies: own your domains/products/pipelines; never claim solo ownership of company-scale platforms.
---
## 1. The funnel from here
1. ✅ Resume screen
2. ✅ Hiring Assessment (24-mo valid)
3. **Recruiter call** — level, comp, logistics. *Your leverage point — settle level + comp here.*
4. **Technical phone screen** — ~45 min, shared Google doc: coding + SQL
5. **Virtual onsite loop** — 45 rounds (below)
6. **Hiring Committee** — packet review off your loop; confirms level
7. **Offer + comp review**
Timeline ≈ 610 weeks; 12 week silences are normal.
---
## 2. The onsite loop — what to expect for a Google DE
| Round | What it tests | Your prep weight |
|---|---|---|
| Coding ×12 | Python, data structures/algorithms, moderate (not hardcore competitive) | **HIGH — warm up most** |
| SQL + data modeling | Window functions, joins, dimensional modeling, schema design | MED — your wheelhouse, just refresh |
| Pipeline / system design | Design a batch+stream data product at scale: ingestion, modeling, quality, lineage, serving | MED — strong story material |
| Googleyness & Leadership | Behavioral / ownership / ambiguity / collaboration | MED — prep STAR stories |
The JD's center of gravity is **"build durable data products + self-serve tools + automated pipelines + data quality/reliability monitoring"** — that's design + modeling + quality, all things you do. The coding rounds are the part furthest from your daily work, so that's where the hours go.
---
## 3. Round-by-round, mapped to YOUR evidence
### 3a. Coding (the gap to close)
- Format: live Python in a shared doc, no autocomplete, talk while you code.
- Scope: arrays/strings/hashmaps, two-pointers, sliding window, sorting, recursion/trees, occasionally graphs/heaps. Google leans clean problem-solving + communication over obscure tricks.
- **Action:** ~23 weeks of LeetCode Easy→Medium in Python. Target ~4060 mediums. Focus patterns: hashmap counting, intervals, BFS/DFS, top-K/heap. Practice *narrating* your approach and stating complexity (Big-O) out loud.
- Leverage: you write Python daily (SW-2, SW-3, SW-6 PySpark) — you're fluent, you just need interview-shaped reps. Don't over-study DP/hard graph theory; not the Google DE bar.
### 3b. SQL + data modeling (your strength)
- Likely: write non-trivial SQL (window functions `ROW_NUMBER/RANK/LAG`, CTEs, multi-join aggregations, dedup), then design a dimensional model (star/snowflake, fact vs dimension, SCD types).
- **Your evidence:** SW-2 (Oracle→Kafka→Teradata DWH ownership), SW-1 (Athena/Iceberg lakehouse), SW-7 (Data Mesh data products + metadata). You model dimensional warehouses for a living.
- **Action:** refresh window-function fluency and be ready to talk SCD Type 2, grain selection, idempotent loads. Prep a crisp answer for "how do you model X for analytics consumers" — the JD is explicitly about self-serve data products.
### 3c. Pipeline / system design (your strongest story)
- Prompt shape: "Design a data product/pipeline that ingests merchant event data and serves it for analytics/ML at scale."
- **Hit these beats (all from your real work):**
- Ingestion: batch + streaming — **Kafka event ingestion** (SW-2)
- Storage/format: **S3 + Athena + Apache Iceberg** open table format, partitioning (SW-1)
- Orchestration: **Airflow / Step Functions**, idempotency, backfills (SW-1)
- Modeling: dimensional + **reusable data products** in a **Data Mesh** (SW-7) — *say "governed data products within Swisscom's company-wide Data Mesh," not "I built the Data Mesh"*
- Quality/reliability: **automated validation, data quality checks, monitoring** — JD calls this out explicitly; tie to your Component Owner SLA + on-call (SW-2) and Bosch observability PoC (BS-4: ELK/Grafana/Prometheus/Loki)
- Governance/metadata: **active metadata management + data catalog** (SW-7) — discoverability for self-serve
- Serving: tables/views for BI + ML consumers
- This round is where your seniority shows. Practice drawing it on a whiteboard/doc in 35 min with trade-offs (cost vs latency, batch vs stream, schema evolution with Iceberg).
### 3d. Googleyness & Leadership (behavioral)
Prep 56 STAR stories. Strong candidates from your KB:
- **Ownership/autonomy:** Component Owner of business-critical Fulfillment pipelines under on-call SLA (SW-2). JD: "operate with high autonomy, own from conception to impact."
- **Driving a migration:** legacy Teradata/Oracle → AWS cloud-native (SW-1). Trade-offs, sequencing, risk.
- **Ambiguity / non-routine problem:** Data Mesh / data-product modeling where requirements weren't pre-defined (SW-7).
- **Production reliability under pressure:** ML inference into a 24/7 semiconductor fab — zero-downtime constraint (BS-1).
- **Cross-functional collaboration:** B2B stakeholders + Product Owner backlog (SW-4). JD: "collaborate with data scientists, engineers, PMs."
- **Raising the bar / quality:** anomaly-detection + observability PoC at Bosch (BS-4), Security Champion rigor (SW-5).
---
## 4. JD-to-evidence quick map (for tailoring answers)
| JD signal | Your proof |
|---|---|
| Design data pipelines, dimensional modeling, sync+async | SW-2 (Kafka async + batch into Teradata DWH) |
| Spark / DataFlow-class processing | SW-6 (PySpark distributed processing) |
| Build scalable data products + self-serve tools | SW-7 (Data Mesh data products, metadata/catalog) |
| Automated validation, data quality, reliability monitoring | SW-2 (SLA/on-call), BS-4 (ELK/Grafana/Prometheus/Loki) |
| ML for production workflows (preferred) | BS-1 (containerized ML inference in 24/7 fab) |
| Coding in 1+ languages, 5 yrs | Python (primary), Java, some C#; PySpark, SQL |
| Stakeholder partnering | SW-4 (B2B products, PO collaboration) |
| BI / notebooks / Tableau / Power BI (preferred) | SW-4 dashboards; Bosch Spotfire co-ownership (TAF 2022) |
**Honest gaps to be ready for** (don't fabricate):
- Google-internal stack (Flume, Dremel, Borg, BigQuery) — you won't know it; say so and map to your equivalents (Kafka↔Flume, Athena/Iceberg↔BigQuery, K8s↔Borg). They expect external candidates to learn internal tools.
- No giant-consumer-scale (billions of rows/day) claim unless true — frame your scale honestly (national telco data volumes).
---
## 5. Recruiter call — settle these BEFORE the loop
You're interviewed *at* a level; Hiring Committee confirms it off that loop. Getting slotted wrong is hard to undo, so pin it down now.
**Script:**
- *Level:* "The posting chip said 'Mid' but the title is Senior — can you confirm whether this is L4 or L5? I'm currently Staff (Engineer IV) at Swisscom, so I want to make sure I'm being considered at the right level." → **You should be pushing for L5.** An L4 offer is likely a lateral/down move vs your current Staff title and your 180k bar.
- *Comp:* "The US band was posted but not the Zürich one — can you share the Zürich base range and the total-comp picture (base + bonus + equity)?" → Your bar: **clears CHF 180k all-in**, hybrid ≤23 days, Bern-commutable to Zürich.
- *Location/logistics:* confirm Zürich-based, hybrid expectation, and that a Bern commute / remote-days split works.
- *Process:* "What does the loop look like and what's the timeline?" — get the round list so you prep the right things.
If they only have an L4 budget or the Zürich comp won't clear 180k, that's a decision point *before* you invest weeks in the loop.
---
## 6. Two-week prep plan (if loop gets scheduled)
- **Week 1:** LeetCode Python — 45 mediums/day across hashmap/two-pointer/sliding-window/BFS-DFS. Refresh SQL window functions. Draft + rehearse the §3c pipeline design end-to-end.
- **Week 2:** Mock the design round out loud (record yourself, 35 min). Write out the 56 STAR stories in §3d. Do 23 timed mock coding rounds (talk while coding). Light review of dimensional modeling / SCD / idempotency.
- **Day before:** re-read this brief, the JD, and your submitted resume so your stories match what they have.
---
_Generated 2026-06-20. Source: live JD (output/Google_Senior_Data_Engineer/JD_*.txt), experience_swisscom.md, bundle_data_engineer.md._
@@ -0,0 +1,199 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Medium Length Professional CV - RESUME CLASS FILE
%
% This template has been downloaded from:
% http://www.LaTeXTemplates.com
%
% This class file defines the structure and design of the template.
%
% Original header:
% Copyright (C) 2010 by Trey Hunner
%
% Copying and distribution of this file, with or without modification,
% are permitted in any medium without royalty provided the copyright
% notice and this notice are preserved. This file is offered as-is,
% without any warranty.
%
% Created by Trey Hunner and modified by www.LaTeXTemplates.com
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ProvidesClass{resume}[2018/09/25 v1.0 Resume class]
\LoadClass[10pt, a4paper]{article} % Font size and paper type
\usepackage{lastpage}
\usepackage[parfill]{parskip} % Remove paragraph indentation
\usepackage{array} % Required for boldface (\bf and \bfseries) tabular columns
\usepackage{ifthen} % Required for ifthenelse statements
\usepackage{enumitem}
\pagestyle{empty} % Suppress page numbers
%----------------------------------------------------------------------------------------
% HEADINGS COMMANDS: Commands for printing name and address
%----------------------------------------------------------------------------------------
\def \name#1{\def\@name{#1}} % Defines the \name command to set name
\def \@name {} % Sets \@name to empty by default
\def \addressSep {$|$} % Set default address separator to a diamond
% One, two or three address lines can be specified
\let \@addressone \relax
\let \@addresstwo \relax
\let \@addressthree \relax
\let \@addressfour \relax
% \address command can be used to set the first, second, and third address (last 2 optional)
\def \address #1{
\@ifundefined{@addresstwo}{
\def \@addresstwo {#1}
}{
\@ifundefined{@addressthree}{
\def \@addressthree {#1}
}{
\@ifundefined{@addressfour}{
\def \@addressfour {#1}
} {\def \@addressone {#1}
}
}
}
}
% \printaddress is used to style an address line (given as input)
\def \printaddress #1{
\begingroup
\def \\ {\addressSep\ }
{#1}
% \centerline{#1}
\endgroup
\par
% \addressskip
}
% \printname is used to print the name as a page header
\def \printname {
\begingroup
% \MakeUppercase
{\namesize\bf \@name} \hfil
% \hfil{\MakeUppercase{\namesize\bf \@name}}\hfil
\nameskip\break
\endgroup
}
%----------------------------------------------------------------------------------------
% PRINT THE HEADING LINES
%----------------------------------------------------------------------------------------
\let\ori@document=\document
\renewcommand{\document}{
\ori@document % Begin document
% \begin{center}
\printname % Print the name specified with \name
\@ifundefined{@addressone}{}{ % Print the first address if specified
\printaddress{\@addressone}}
\@ifundefined{@addresstwo}{}{ % Print the second address if specified
\printaddress{\@addresstwo}}
\@ifundefined{@addressthree}{}{ % Print the third address if specified
\printaddress{\@addressthree}}
\@ifundefined{@addressfour}{}{ % Print the third address if specified
\printaddress{\@addressfour}}
% \end{center}
}
%----------------------------------------------------------------------------------------
% SECTION FORMATTING
%----------------------------------------------------------------------------------------
% Defines the rSection environment for the large sections within the CV
\newenvironment{rSection}[1]{ % 1 input argument - section name
\sectionskip
{\bf #1}
% \MakeUppercase{\bf #1} % Section title
\sectionlineskip
\hrule % Horizontal line
\begin{list}{}{ % List for each individual item in the section
\setlength{\leftmargin}{0.50em} % Margin within the section
}
\item[]
}{
\end{list}
}
\newenvironment{rSection2}[1]{ % 1 input argument - section name
\sectionskip
{\bf #1} % Section title
\sectionlineskip
\hrule % Horizontal line
\medskip
\begin{list}{$\bullet$}{\setlength{\leftmargin}{1.5em}}
\itemsep -0.3em \vspace{-0.5em} % Compress items in list together for aesthetics
}{
\end{list}
\vspace{0.5em}
}
\newenvironment{rSection3}[1]{ % 1 input argument - section name
\sectionskip
{\bf #1} % Section title
\sectionlineskip
\hrule % Horizontal line
\medskip
\begin{enumerate}[]{\setlength{\leftmargin}{1.5em}}
\itemsep -0.3em \vspace{-0.5em} % Compress items in list together for aesthetics
}{
\end{enumerate}
\vspace{0.5em}
}
%----------------------------------------------------------------------------------------
% WORK EXPERIENCE FORMATTING
%----------------------------------------------------------------------------------------
\newenvironment{rSubsection}[4]{ % 4 input arguments - company name, year(s) employed, job title and location
{\bf #1} \hfill {#2} % Bold company name and date on the right
\ifthenelse{\equal{#3}{}}{}{ % If the third argument is not specified, don't print the job title and location line
\\
{\em #3} \quad {\em #4} % Italic job title and location
}\smallskip
\begin{list}{$\cdot$}{\leftmargin=1.5em} % \cdot used for bullets, no indentation
\itemsep -0.2em \vspace{-0.2em} % Compress items in list together for aesthetics
}{
\end{list}
\vspace{0.2 em} % Some space after the list of bullet points
}
%----------------------------------------------------------------------------------------
% FORMAT C SKILLS COMMANDS
%----------------------------------------------------------------------------------------
% Skills group environment: \begin{skillgroup}{Group Name} ... \end{skillgroup}
% Renders bold header + indented dash sub-items. Each \skilldash = exactly 1 rendered line.
\newenvironment{skillgroup}[1]{%
\textbf{#1}\par\nopagebreak%
\vspace{-\parskip}%
\begin{list}{--}{\leftmargin=0.8em \labelsep=0.3em \itemsep=0pt \topsep=0.1em \parsep=0pt \partopsep=0pt}%
}{%
\end{list}%
\vspace{-\parskip}\vspace{0.45em}%
}
% Single dash sub-item within a skillgroup. Content must fit 1 rendered line.
% Char limit: 119 - (0.5 x bold_char_count) at 10pt
\newcommand{\skilldash}[1]{\item #1}
%----------------------------------------------------------------------------------------
% EXPERIENCE SUB-THEME COMMAND
%----------------------------------------------------------------------------------------
% Sub-theme underline header within rSubsection
\newcommand{\subtheme}[1]{\item[] \underline{#1}}
% The below commands define the whitespace after certain things in the document - they can be \smallskip, \medskip or \bigskip
\def\namesize{\huge} % Size of the name at the top of the document
\def\addressskip{\smallskip} % The space between the two address (or phone/email) lines
\def\sectionlineskip{\medskip} % The space above the horizontal line for each section
\def\nameskip{\medskip} % The space after your name at the top
\def\sectionskip{\medskip} % The space after the heading section
@@ -0,0 +1,135 @@
# Session: Google — Senior Data Engineer (Merchant Data Science)
## JD Info
- **File:** JDs/google_senior_data_engineer.txt
- **JD source:** live scrape 2026-06-15 via Playwright (Google careers board), re-verified live same day
- **URL:** https://www.google.com/about/careers/applications/jobs/results/87066954308690630-senior-data-engineer?location=Switzerland
- **Role:** Senior Data Engineer — Merchant Data Science team, Merchant Shopping Organization
- **Company:** Google (Alphabet)
- **Bundle:** Staff / Senior Data Engineer (primary, Tier 1) + Analytics Engineer (secondary bridge — BI/self-serve/stakeholder)
- **Format:** Resume (2-page, resume.cls) + 1-page cover letter. NON-USA target (Zürich) → omit US immigration line.
- **Level/Comp:** Level chip "Mid" despite "Senior" title — clarify L4 vs L5 at recruiter stage. US band shown $156227k + 15% + equity. Zürich (Levels.fyi): L4 median ~CHF 240k total, L5 ~CHF 293k. **Even L4 clears the 180k+ all-in bar.**
## JD Analysis
### Requirements
| # | Requirement | Match | Evidence |
|---|-------------|-------|----------|
| 1 | Bachelor's / equivalent practical experience | Direct | M.Eng. Computer Aided Engineering (thesis grade 1.0) |
| 2 | 5+ yrs designing data pipelines + dimensional data modeling, sync/async integration, internal (Flume) + external (DataFlow, Spark) stacks | Direct (tool-bridge on Flume/DataFlow) | SW-1 (AWS Glue/Airflow/Redshift ETL), SW-6 (PySpark/Spark), SW-4 (Oracle/Kafka→Teradata), BS-4. Spark direct; Flume/DataFlow NOT used — bridge as transferable distributed processing, never claim |
| 3 | 5+ yrs coding in 1+ languages | Direct | Python (expert, 10+ yrs), Java, SQL, C# |
| 4 | 5+ yrs data infrastructure + data models, exploratory queries/scripts | Direct | SW data platform (S3/Glue/Athena/Redshift), Data Lake, SQL, data products/modeling |
| 5 (pref) | 5+ yrs statistical methodology + BI/data-consumption tools (Tableau, Power BI, DataStudio, Jupyter, collabs) | Bridge (MED) | Dashboards for B2B teams (SW-4); Jupyter/Pandas likely; named BI tools (Tableau/PowerBI) thin — verify in experience files, don't oversell |
| 6 (pref) | 3+ yrs project plans + on-time/in-budget/in-scope delivery | Direct | Component Owner (SW-2), Application Owner (BS-3), delivery ownership |
| 7 (pref) | 3+ yrs stakeholder partnering/management | Direct | SW-4 (PO/stakeholder, B2B product teams), BS-3 (vendors, cross-team) |
| 8 (pref) | ML for production workflows | Direct | BS-1 production ML inference in 24/7 fab |
| RESP | Advanced data engineering, data modeling, architectural frameworks | Direct | Data Mesh data products, data modeling, AWS architecture (iSAQB) |
| RESP | Design/build/scale data products incl self-serve tools + automated pipelines | **Direct — near verbatim** | SW-7 self-service governed data products consumed by downstream teams |
| RESP | Data infra, product quality, automated validation, data quality, reliability monitoring | Direct | SW data governance/SLAs, BS-4 observability/anomaly detection/monitoring |
| RESP | High autonomy, own projects conception→landing→impact | Direct | Component Owner + Application Owner titles; FC-1 built CI/CD from zero |
| RESP | Engineering excellence, robust data, sharp communication | Direct | Training/docs (BS-3), cross-team adoption, RCA |
### ATS Keywords
- **Core DE:** data pipelines, dimensional data modeling, data products, self-serve tools, automated pipelines, data infrastructure, data models, ETL/ELT, data warehouse, distributed data processing
- **Tools:** Spark (DataFlow/Flume — bridge, never claim), Airflow, SQL, Python, BigQuery (bridge via Athena/Redshift/Iceberg — do NOT claim by name), Glue, Kafka
- **Quality/reliability:** data quality, automated validation frameworks, reliability monitoring, data governance, SLAs, observability
- **Collaboration:** stakeholder management, cross-functional, bridge SWE/DE/DS, data-driven decision-making, multidisciplinary
- **Preferred:** statistical methodology, BI tools (see BI-tool note below), ML for production workflows, project delivery
### BI / Data-Consumption Tools (user-confirmed 2026-06-15 — usable, honest leveling)
- **TIBCO Spotfire (Bosch) — CO-OWNED platform + extended in C# + TAF 2022 speaker (VERIFIED).** Co-owned the Spotfire analytics platform serving fab engineers (+ Defect Management System); built C# extensions. **Co-presented at TIBCO Analytics Forum 2022** ("Understanding Spatial Variability in Semiconductor Products with Spotfire Map Charts"). Verified via community.spotfire.com scrape 2026-06-15. See [[taf_2022_spotfire]] + experience_bosch.md BS-5. Use TAF talk as CL hook + interview bridge.
- **Tableau (Swisscom)** — legacy DWH reporting; list as named tool at exposure weight, do NOT claim proficiency.
- **AWS QuickSight (Swisscom)** — new reporting; BASIC knowledge only. Mention lightly / fold under AWS; do not oversell.
- **Jupyter / Pandas** — covers the "collabs/notebooks" part of the qual.
- **Soft:** high autonomy/ownership, engineering excellence, sharp communication
### Gap Assessment
- **Direct:** data pipeline design, dimensional modeling, Spark, SQL, Python, data infrastructure, self-serve data products (flagship), data quality/validation, reliability monitoring, stakeholder mgmt, project delivery, production ML, autonomy/ownership
- **Bridge:** Flume/DataFlow/BigQuery (Google-internal/GCP — bridge via Spark/Airflow/Glue/Athena/Redshift/Iceberg, transferable, NEVER claim by name); named BI tools Tableau/PowerBI/DataStudio (MED — has dashboards/Jupyter, verify before claiming); statistical methodology (MED — has ML/analytics, don't oversell)
- **Gap (do NOT claim):** GCP/BigQuery/Dataflow hands-on, Google-scale data, e-commerce/marketplace domain. Honest gaps. Google explicitly accepts "equivalent practical experience"; he meets every minimum qual.
## Company Context
- **Mission:** Make Google the best place for merchants to connect with shoppers; the **Shopping Graph** (60B+ products indexed) is central. Merchant Shopping Org builds the data foundation behind Shopping + AI experiences (Gemini, AIM).
- **This team:** **Merchant Data Science** — global team with members in US, London, **Zürich**. Builds scalable data products that empower data-driven decision-making; partners with PMs, engineers, data scientists. This role explicitly "bridges the gap between software engineering, data engineering, and data science."
- **Google data stack (context):** Flume/FlumeJava, Dataflow, BigQuery (Dremel/Capacitor/Colossus/Borg), ZetaSQL, Spanner. JD names Flume + DataFlow. Dennis's AWS/Spark/Airflow analog is conceptually transferable (distributed processing, columnar warehouses, SQL-on-data-lake).
- **Culture:** Data-product engineering excellence, autonomy, cross-functional, scale. Equivalent-practical-experience accepted.
- **"Why them" angle:** Dennis already builds self-service, governed data products consumed across teams at telco scale — the exact "durable data products that bridge SWE/DE/DS" this team builds. Add production-ML + data-quality/reliability discipline. Zürich team = local to Bern.
## Framing Strategy
- **Lead narrative:** "Data engineer who designs and owns self-service, governed data products and the pipelines/dimensional models behind them — built for downstream teams to make data-driven decisions, with production-ML and data-quality discipline on top."
- **Reframing map:**
- SW-7 Data Mesh self-serve data products → "durable, self-serve data products consumed across the org" (the JD's core ask)
- SW-1 Teradata/Oracle→AWS ETL + Glue/Airflow/Redshift → "data pipeline design + dimensional modeling on a cloud data platform"
- SW-6 PySpark/Data Lake → "distributed data processing (Spark; transferable to DataFlow/Flume)"
- BS-4 ELK/Grafana/Prometheus + anomaly detection → "automated validation, data quality + reliability monitoring"
- SW-4 dashboards + PO/stakeholder → "data products for stakeholders + cross-functional partnering" (Analytics-Eng bridge)
- BS-1 production ML → "ML for production workflows" (preferred qual)
- Component/Application Owner → "high autonomy, own projects conception→impact"
- **Emphasize:** self-serve data products (flagship), pipeline design + dimensional modeling, Spark, data quality/validation/reliability monitoring, stakeholder partnering, autonomy, production ML
- **Downplay:** SRE/on-call framing (less central here than Kraken), crypto/Web3 (NOT relevant — drop crypto skills group), semiconductor jargon (keep ML + data-quality angle), pure DevOps/K8s emphasis (secondary here)
- **CL hooks:** (1) Shopping Graph as a data product at 60B-product scale ↔ his self-serve governed data products; (2) "bridge SWE/DE/DS" = his cross-functional Component/App Owner role; (3) data quality + reliability monitoring (his observability/governance work) for AI-powered Shopping experiences; (4) Zürich Merchant Data Science team, local to Bern.
- **User directives:** Honest tool-bridging (NO BigQuery/Dataflow/Flume by name). Clarify level/comp at recruiter stage (comp clears bar even at L4). Drop crypto framing (not relevant to this JD).
## Critique Context
- **Reviewer persona:** A Google L5/L6 Data Engineer tech lead or DE manager on Merchant Data Science (Zürich). Cares about real pipeline + dimensional-modeling depth, data-product thinking (self-serve, durable, consumed at scale), data-quality/validation rigor, autonomy, and Google-scale readiness. Bored by buzzwords and BI-dashboard-only profiles. Probes whether candidate has designed data models, not just moved data.
- **Competitive landscape:** Obvious fit = DE with BigQuery/Dataflow/dbt + e-commerce/marketplace data, possibly ex-FAANG, fluent in dimensional modeling at scale. Dennis's edge: self-serve data-product/Data-Mesh platform thinking at telco scale, production ML, data-quality/reliability discipline, and broad multi-industry delivery. Their edge: GCP/BigQuery by name, Google-scale, marketplace domain.
- **Domain vocabulary (insider):** Shopping Graph, data products, self-serve, dimensional modeling, fact/dimension tables, pipeline DAG, data quality SLAs, validation frameworks, freshness/completeness, lineage, Flume/Dataflow/BigQuery, Dremel/ZetaSQL, batch + streaming, idempotency, backfill.
## Cover Letter Plan
- **Institution type:** Industry (big-tech, data-engineering audience)
- **Paragraph count:** 3-4 paragraphs, ~270 words
- **P1 hook:** Shopping Graph as a 60B-product data product + Merchant Data Science "bridge SWE/DE/DS" ↔ my self-serve governed data products at telco scale; Zürich team local fit
- **P2-P3 evidence:** P2 = pipeline design + dimensional modeling + self-serve data products (SW-1, SW-7, SW-6) consumed across teams. P3 = data quality/validation + reliability monitoring (BS-4) + production ML (BS-1) + cross-functional stakeholder ownership (SW-4, BS-3)
- **Domain pivot:** AWS/Spark/Airflow honestly transferable to Google's Flume/DataFlow/BigQuery — state the analog confidently, never claim the Google-internal tools by name
- **Jargon level:** Technical (DE audience)
- **"Why them" hook:** Builds data products others depend on to decide — wants to do it at Shopping-Graph scale on the Zürich team
## Bullet Plan (proposed 2026-06-15 — 17 variable bullets, proven QuantCo 2-page fill)
Drop SW-5 (security — not relevant, avoids "3 years" correction). Drop crypto skills group → replace with BI/Analytics group. No US immigration line (Zürich target). TAF 2022 Spotfire talk → CL hook + interview bridge (Option A) unless user wants its own bullet (Option B).
### Position 1 — Swisscom · Staff Data, Analytics & AI Engineer (6 bullets)
| # | ID | Achievement | Variant |
|---|----|------------|---------|
| 1 | SW-7 | LEAD — self-serve governed data products + metadata on AWS Data Mesh, consumed across teams | 2L |
| 2 | SW-1 | AWS migration of Teradata/Oracle ETL + dimensional modeling (Glue/Athena/Iceberg/Redshift/Airflow) | 2L |
| 3 | SW-2 | Component Owner Fulfillment ETL (Oracle/Kafka→Teradata), data governance + quality + SLA | 2L |
| 4 | SW-4 | B2B data products + dashboards (Tableau/QuickSight) + stakeholder + automation + RCA | 2L |
| 5 | SW-6 | PySpark distributed data processing in Data Lake | 2L |
| 6 | SW-3 | Python apps on Kubernetes + GitLab CI/CD (engineering credibility) | 2L |
### Position 2 — Bosch · (Senior) Data Engineer (4 bullets)
| # | ID | Achievement | Variant |
|---|----|------------|---------|
| 1 | BS-1 | Production ML inference into 24/7 fab (Docker/K8s/Ansible) — "ML for production workflows" | 2L |
| 2 | BS-3+BS-5 | Application Owner + CO-OWNED TIBCO Spotfire analytics platform + Defect Mgmt System; C# extensions; SLOs, training | 2L |
| 3 | BS-4 | ELK/Grafana/Prometheus anomaly detection — data quality + reliability monitoring | 2L |
| 4 | BS-2 | Multi-language data services over Oracle + Hadoop/Impala for analysis teams | 2L |
### Position 3 — Fraunhofer (2) · Position 4 — Vizrt (2) · Position 5 — Generali (3)
FC-1 (Jenkins CI/CD from zero + SCEDAS), FC-3 (Express.js/Docker microservices) | VZ-1 (distributed Python/C++ backend, CNN/BBC), VZ-2 (test suite + CI/CD gates) | GN-1 (BDD + Jenkins ownership), GN-3 (Java/J2EE), GN-2 (UIPath RPA)
**Skills (4-3-2-2-2):** (1) Data Engineering & Pipelines, (2) Cloud Platform & Infrastructure, (3) BI/Analytics & Data Consumption (Spotfire/Tableau/QuickSight/Jupyter), (4) Programming & Databases, (5) Certifications.
**Summary headline:** "Senior Data Engineer | Python · SQL · AWS · Spark | Data Products, Dimensional Modeling & Pipeline Ownership"
**TAF 2022 decision (pending user):** Option A = combine BS-3+BS-5 (1 bullet) + TAF talk in CL/interview (RECOMMENDED, keeps DE focus, 17 bullets). Option B = Spotfire+TAF its own bullet (Bosch→5), drop GN-2 to stay at 17.
## Output Files
- Resume: `output/Google_Senior_Data_Engineer/e2e_google_senior_data_engineer_resume.tex` (+ .pdf, 2 pages)
- Cover Letter: `output/Google_Senior_Data_Engineer/e2e_google_senior_data_engineer_cover_letter.tex` (+ .pdf, 1 page, 299 words). Hooks verified 2026-06-15: (1) Shopping Graph 60B+ listings — confirmed (Google I/O 19 May 2026, VP Vidhya Srinivasan); (2) TAF 2022 talk "Understanding Spatial Variability in Semiconductor Products with Spotfire Map Charts" by Mark Herrmann + Dennis Thießen (Bosch Dresden) — confirmed (community.spotfire.com/articles/spotfire/tibco-analytics-forum-2022). NOTE: moderncv needs `\microtypesetup{expansion=false}` or fontawesome icons fail compile.
- Critique: CURRENT — **85.5/100** (2026-06-15; baseline 83.0 pre-edit). Strong Tier-1 DE fit; SW-7 self-serve data products ≈ team charter verbatim; honest GCP-tool bridges; AI scan clean; CL 1pp. **Tier-1 + both Tier-2 fixes APPLIED & re-verified:** (1) migration claim re-scoped in resume B2 + CL P2 (Scope-Discipline error cleared in both docs); (2) B4 now reads "on time and in scope" (project-delivery preferred qual); (3) B5 "distributed computing"→"distributed data processing". Resume 2pp / CL 1pp clean compile, B2 216/B4 190/B5 206 chars (≤218). **SENT 2026-06-15.** Hard ceiling ~87 (no GCP/BigQuery-by-name, no marketplace domain — not closable). Open item at recruiter stage: clarify L4/L5 + confirm comp clears 180k+.
- **ADVANCED 2026-06-17 — invited to 30-min Google Hiring Assessment.** Resume cleared the recruiter screen. Next action: complete the online assessment within the deadline in the invite email. Confirm exact format from the email (Google Hiring Assessment is typically online + timed; for DE roles expect SQL + possibly Python/data-modeling and/or situational-judgment questions — verify, do not assume). Prep focus: SQL (window functions, joins, aggregation), dimensional modeling, basic Python/data manipulation.
## Status
- Phase 0: DONE
- Phase 1: DONE (17 bullets confirmed; Option A — TAF talk reserved for CL, not on resume; IBM AI Engineering kept in awards)
- Phase 2 Resume: DONE (2 pages, MiKTeX, all bullets in char range, summary 525 chars, clean compile). Header tagline = Senior Data Engineer; BI/Analytics group added; crypto group dropped; no immigration line. SW-7 lead = data products; BS-3 = Spotfire platform co-ownership + C# extensions.
- Cover Letter: DONE (1 page, 299 words, 3 paragraphs, clean MiKTeX compile, both hooks verified, anti-pattern scan clean — 0 em-dashes)
- Critique: PENDING
- **Next CL:** DONE — see Output Files
- **Next Critique:** /critique output/Google_Senior_Data_Engineer/session_google_senior_data_engineer.md
- Phase 2 Resume: PENDING
- Cover Letter: PENDING
- Critique: PENDING
- **Next:** Phase 1 — bullet plan (this session)
- **Next CL:** /make-cl output/Google_Senior_Data_Engineer/session_google_senior_data_engineer.md
- **Next Critique:** /critique output/Google_Senior_Data_Engineer/session_google_senior_data_engineer.md
@@ -0,0 +1,157 @@
# Google — Sr Data Engineer — Behavioral STAR Stories
> For the "Googleyness & Leadership" round (and to seed answers in technical rounds).
> Google scores: **General Cognitive Ability, Role-Related Knowledge, Leadership, Googleyness.**
> Behavioral round wants: ownership, autonomy, ambiguity, impact, collaboration, "raise the bar."
>
> **How to use:** Each story is in STAR form (Situation / Task / Action / Result) plus a "maps to" tag
> and follow-up-probe prep. Tell them out loud, ~23 min each. Lead with YOUR action ("I…"), be
> specific about decisions and trade-offs, end with quantified or concrete impact.
>
> **Accuracy guardrails (do not drift in the room):**
> - Own your domains/components/products. NEVER claim you solo-built Swisscom's company-wide Data Mesh —
> say "governed data products within Swisscom's company-wide Data Mesh."
> - No fabricated metrics. Where you don't have a hard number, describe the concrete before/after.
> - Bosch ML: you designed AND executed the inference-integration strategy (Zeugnis "Erarbeitung und Durchführung") — own it fully.
---
## Story 1 — Ownership / Autonomy (flagship)
### "Owning business-critical pipelines end-to-end" — SW-2
**Maps to:** "Operate with high autonomy, own from conception to impact" (JD responsibility #4); Leadership/ownership.
**S** — At Swisscom I'm Component Owner for the Fulfillment domain's data pipelines — business-critical flows from Oracle source systems through Kafka into our Teradata data warehouse, feeding downstream B2B analytics. If these break, stakeholders lose visibility into core fulfillment operations.
**T** — As Component Owner I'm the single accountable engineer: data availability, SLA, data quality, governance compliance, and on-call. Not just building — keeping it correct and available in production.
**A** — I own the full lifecycle: I built and maintain the Python ingestion, enforce Data Governance and privacy standards on the data, and carry 2nd/3rd-level support and on-call duty. When incidents hit, I run root-cause analysis and drive the fix rather than escalating it away. I designed the pipelines to be idempotent and re-runnable so backfills don't corrupt downstream tables.
**R** — The Fulfillment pipelines run under a maintained SLA with full governance compliance, and downstream B2B analytics teams get reliable, on-time data. The ownership signal was part of what got me promoted from Senior to Staff (Engineer IV) in April 2025.
**Probes to be ready for:**
- *"Tell me about a time it broke."* → walk a concrete incident: detection (monitoring/alert), triage, RCA, the fix, and the guardrail you added so it didn't recur.
- *"How do you decide what to automate?"* → recurring manual toil + risk of human error → automate; one-offs → don't.
---
## Story 2 — Driving a migration / technical judgment
### "Legacy Teradata/Oracle → cloud-native AWS" — SW-1
**Maps to:** "Apply advanced data engineering, modeling and architectural frameworks" (resp. #1); Role-Related Knowledge + Leadership.
**S** — Swisscom's legacy ETL ran on Teradata and Oracle — heavy operational overhead, hard to scale, not cloud-native.
**T** — Lead the migration of my domains' ETL stack to a serverless AWS architecture without disrupting the business-critical data the team depends on.
**A** — I designed and built the target stack: S3 as the lake, Glue for transforms, Athena over **Apache Iceberg** as an open table format (so we get schema evolution and time-travel without lock-in), Redshift for serving, and Airflow plus Step Functions/Lambda for orchestration — all provisioned as code with CloudFormation. I sequenced it to migrate incrementally and run old/new in parallel to de-risk cutover, validating outputs matched before switching consumers over. I deliberately chose Iceberg over a closed format for evolvability.
**R** — Reduced manual operational overhead, improved pipeline observability, and gave the team a scalable serverless foundation — data availability for downstream analytics got faster and the stack is positioned for modern lakehouse workflows.
**Probes:**
- *"Why Iceberg?"* → open table format, schema evolution, time-travel, engine-agnostic, avoids warehouse lock-in.
- *"What would you do differently?"* → have an honest answer (e.g., invest earlier in automated output-diffing to speed validation).
- *Google bridge:* their internal equivalent is BigQuery/Dremel — say you'd map these patterns onto their stack quickly.
---
## Story 3 — Ambiguity / non-routine problem
### "Building governed data products in a Data Mesh" — SW-7
**Maps to:** "Identify the underlying need… solve non-routine problems… build reliable data products used across the org" (resp. #1, #2). This is the JD's literal mission. **L5-grade story — bring it at that level.**
**S** — Swisscom is moving to a decentralized Data Mesh — domains own and publish their own data as products rather than everything funneling through one central team. The hard part isn't the tooling; it's that "what makes a good, reusable data product" is genuinely ambiguous up front.
**T** — Within that company-wide initiative, build governed, reusable data products with proper metadata so other teams can actually discover and trust them — turning raw domain data into self-serve assets.
**A** — I worked on the AWS side (Glue, Athena, CloudFormation, automated CI/CD) to model and build reusable data products and the active metadata management around them — clear schemas, ownership, descriptions, and discoverability. Because requirements weren't handed to me, I started from the consumer's need: what questions do downstream AI/analytics workflows actually need to ask of this data? Then modeled backward from that. I treated metadata and governance as first-class, not an afterthought, so the products are discoverable and trustworthy.
> Phrasing guardrail: "governed data products **within** Swisscom's company-wide Data Mesh" — I contributed to the migration and own the modelling/build/onboarding of products in my scope, I did **not** single-handedly build the Mesh.
**R** — The result is a discoverable, well-described data foundation that downstream analytics and agentic-AI workflows query directly for grounded retrieval — exactly the "self-serve data products used across the org" pattern. This is my current Staff-level focus.
**Probes:**
- *"How do you define a data product?"* → owned, discoverable, documented, quality-SLA'd, addressable, interoperable — the data-as-a-product principles.
- *"How do you get adoption?"* → solve a real consumer need first, make it self-serve, document it, reduce their friction vs building their own.
---
## Story 4 — Production reliability under hard constraints
### "Containerizing ML inference into a 24/7 fab" — BS-1
**Maps to:** "Experience with ML for production workflows" (preferred qual); reliability monitoring (resp. #3); Leadership.
**S** — At Bosch's 300mm semiconductor fab, wafer defect classification in the Defect Management domain was manual — line engineers eyeballing images. It was a bottleneck, and the fab runs 24/7, so there's no maintenance window and no tolerance for breaking the line.
**T** — I was given the goal of automating it. I designed *and* executed the strategy to embed ML inference into the live production pipeline (the Zeugnis credits me with both the design and the execution).
**A** — I containerized the defect-detection models with Docker and orchestrated them with Kubernetes and Ansible so inference ran as a managed, repeatable service inside the production environment. Because it was 24/7, I engineered for unattended operation — no manual intervention in the classification path — and designed deployment so it could go in without stopping active lines.
**R** — Manual wafer inspection bottleneck eliminated; defect classification became continuous and automated across active 300mm lines, freeing line engineers from inspection toil. Bosch rated my performance "sehr gut" (top tier).
**Probes:**
- *"How did you validate the model was right in production?"* → talk monitoring of outputs, and that this is where data-quality/reliability monitoring matters (bridge to BS-4).
- *"Biggest risk?"* → breaking a 24/7 line; mitigated via containerization + careful rollout.
---
## Story 5 — Raising the bar / proactive initiative
### "Standing up observability from scratch (ELK + Grafana/Prometheus/Loki)" — BS-4
**Maps to:** "Advance product quality through automated validation, data quality, and reliability monitoring" (resp. #3); Googleyness (raising the bar without being told to).
**S** — At Bosch, the manufacturing systems didn't have centralized monitoring or anomaly detection — issues were caught reactively.
**T** — No one assigned this; I saw the gap and built a proof of concept to prove out centralized monitoring and anomaly detection for the 24/7 production systems.
**A** — I built an anomaly-detection PoC on the ELK stack (Elasticsearch, Logstash, Kibana) with Kafka for log ingestion, containerized in Docker, and added a full observability layer — Grafana dashboards, Prometheus metrics, Loki log aggregation — to validate centralized monitoring and alerting for high-volume production data.
**R** — Demonstrated that centralized observability and anomaly alerting were viable for the fab's systems, giving the team a concrete path from reactive to proactive monitoring.
**Probes:**
- *"It was a PoC — did it ship?"* → be honest it was a PoC; the value was de-risking and proving the pattern. Don't overclaim production rollout.
- *Bridge:* this is exactly the "reliability monitoring / data quality" the Google JD calls for — I've done it from zero.
---
## Story 6 — Cross-functional collaboration / stakeholder management
### "B2B data products with PMs and stakeholders" — SW-4 (+ BS-3 Application Owner)
**Maps to:** "Collaborate with a multidisciplinary team of data scientists, engineers, and PMs… sharp communication" (about-the-job); Googleyness.
**S** — At Swisscom I deliver data products, dashboards and analyses for B2B stakeholders, working with a Product Owner on a shared backlog — engineering depth meeting business delivery cadence.
**T** — Translate fuzzy stakeholder asks into prioritized, deliverable data products without over-building, and keep delivery moving at an agile cadence.
**A** — I partnered with the Product Owner to refine and prioritize the backlog, pushed back when requests weren't well-formed by digging for the underlying need, and delivered data products and dashboards iteratively. I also drove automation of recurring technical processes so the team spent less time on toil. (At Bosch I did the analogous role formally as Application Owner — SLOs, user training, documentation, vendor management for the analytics suite.)
**R** — Stakeholders got data products that fit their real needs, delivered at agile cadence, with recurring manual work automated away — and at Bosch the Application Owner ownership kept a 24/7 analytics suite reliable and adopted across analysis teams.
**Probes:**
- *"Tell me about a disagreement with a stakeholder."* → have a real one ready: they wanted X, the underlying need was Y, you proposed Y, outcome.
- *"How do you say no?"* → reframe around the underlying need and priority/impact, not a flat refusal.
---
## Quick-reference: which story for which prompt
| If they ask about… | Lead with |
|---|---|
| Ownership / "most impactful project" | Story 1 (SW-2) or Story 4 (BS-1) |
| A hard technical decision / trade-off | Story 2 (SW-1, Iceberg) |
| Ambiguity / no clear requirements | Story 3 (SW-7) — *the JD's mission* |
| Production reliability / pressure | Story 4 (BS-1) |
| Going beyond your remit / raising the bar | Story 5 (BS-4) |
| Conflict / collaboration / stakeholders | Story 6 (SW-4) |
| Failure / "what would you do differently" | Story 2 probe or Story 5 (PoC honesty) |
| Leadership without authority | Story 5 (BS-4) or Story 3 (SW-7) |
**Delivery reminders:**
- Lead with "I," not "we." Name the decision and *why*.
- 23 min per story; pause for follow-ups rather than monologuing.
- Always close on impact (before→after), even when you lack a hard metric.
- Be honest about scope and PoC-vs-production — Google interviewers probe, and honesty reads as senior.
---
_Generated 2026-06-20. Source: experience_swisscom.md (SW-1/2/4/7), experience_bosch.md (BS-1/3/4), live JD. Pairs with interview_prep_brief.md._
@@ -0,0 +1,98 @@
Site Reliability Engineer - AI Agents — Kraken (Payward)
JD source: live scrape 2026-06-15 via Playwright (Ashby board)
URL: https://jobs.ashbyhq.com/kraken.com/c331de1b-b75a-48f5-9d19-0e56ccb935ab
Location: Remote — Switzerland eligible (+ UK, EU, LATAM, others)
Employment: Full time · Remote · Engineering / SRE / DevOps
--- VERBATIM POSTING TEXT ---
Building the Future of Open Finance
Payward - the parent company behind Kraken, NinjaTrader, Breakout, xStocks, Payward Services and CF Benchmarks - has spent the last 15 years building one of the most modern and globally accessible financial infrastructure platforms in the industry, built to advance an open, global financial system.
Before you apply, we encourage you to explore our culture page to understand what drives us and how we work.
The team
Founded in 2011, Kraken is one of the world's longest-standing crypto platforms, trusted by over 10 million individuals and institutions across the globe. It offers spot trading, margin, futures, staking, and OTC services, with products built for both individual investors and institutional clients.
The AI Infrastructure team sits within the Data organization and is responsible for building, operating, and scaling the systems that power AI agents in production — both internal tools and external-facing products. Working closely with the AI and Agent Systems teams, this group ensures that the orchestration, execution, and model-serving layers underpinning agentic workflows are reliable, observable, and built to scale.
This team operates at the intersection of data infrastructure and applied AI — a space that moves fast and demands engineers who can bring production discipline to emerging technology. You'll partner across Data Engineering, ML, and product-facing teams to harden agent infrastructure and keep it running at the standards our users expect.
Importantly, this is a platform engineering team. Beyond operating infrastructure, the team is responsible for building the APIs, SDKs, and platform capabilities that enable AI, Data, and Engineering teams to safely and efficiently consume agent infrastructure as a service. Success in this role requires thinking beyond infrastructure operations and toward developer experience, platform adoption, and long-term scalability.
The opportunity
Design, build, and operate the infrastructure layer supporting AI agent workflows in production
Ensure reliability, scalability, and observability of agentic systems across internal and external products
Design and develop platform services, APIs, SDKs, and self-service capabilities that allow engineering teams to easily consume AI infrastructure and agent platform services
Manage and maintain the compute, orchestration, and serving infrastructure powering model inference and agent execution
Implement robust monitoring, alerting, and incident response procedures tailored to AI/ML workloads
Utilize Infrastructure as Code (IaC) tools such as Terraform to provision and manage cloud (AWS) infrastructure components
Build and maintain CI/CD pipelines that support rapid, reliable deployment of AI services and agent workflows
Define and implement guardrails, failure handling, and recovery patterns specific to agentic and LLM-powered systems
Collaborate with AI and Data Engineering teams to translate experimental agent prototypes into hardened production systems
Manage containerized workloads using Kubernetes, ensuring efficient deployment, scaling, and orchestration of AI services
Implement access controls and security best practices across AI infrastructure environments
Document architecture, runbooks, and best practices to support knowledge sharing across the team
What You Bring
5+ years of experience as a Site Reliability Engineer, Infrastructure Engineer, Platform Engineer, or similar role in a production environment
Hands-on experience supporting ML infrastructure, model serving, or MLOps workflows in production
Experience building developer platforms, internal tooling, APIs, or SDKs consumed by engineering teams at scale
Strong understanding of platform engineering principles, including developer experience, self-service infrastructure, and API-driven platform design
Proficiency with Infrastructure as Code tools, particularly Terraform
Experience with containerization and orchestration, particularly Kubernetes and Docker
Solid understanding of cloud infrastructure, preferably AWS
Strong scripting skills (bash/shell) and proficiency in at least one programming language (Python preferred)
Experience designing and operating observability, monitoring, and alerting systems
Experience implementing incident response procedures and participating in on-call rotations
Strong collaboration skills working across data, AI, and engineering teams
High ownership mindset in a fast-moving, high-stakes production environment
Nice to haves
Experience building or operating infrastructure for agent-based or LLM-powered systems
Familiarity with agent orchestration frameworks (e.g., LangGraph, CrewAI, or similar)
Background in data infrastructure, including familiarity with Airflow, Kafka, Spark, or data lake tooling
Experience with CI/CD pipelines and deployment automation for AI/ML workloads
Exposure to evaluation frameworks and model performance monitoring at scale
Experience working in fast-moving 0→1 environments or platform-building teams
Experience building SDKs, developer tooling, or internal platform products with a strong focus on usability and adoption
Experience with Cloudflare's cloud platform and product ecosystem, including networking, security, performance, and Zero Trust solutions
Unless a specific application deadline is stated in the job posting, applications are accepted on an ongoing basis.
Note: applicants are permitted to redact or remove information on their resume that identifies age, date of birth, or dates of attendance/graduation. Kraken encourages applicants to apply even if they don't fully meet the listed requirements, especially if passionate or knowledgeable about crypto.
@@ -0,0 +1,193 @@
# Critique: Kraken (Payward) — Site Reliability Engineer, AI Agents
**Resume File:** `output/Kraken_SRE_AI_Agents/e2e_kraken_sre_ai_agents_resume.tex`
**CL File:** `output/Kraken_SRE_AI_Agents/e2e_kraken_sre_ai_agents_cover_letter.tex`
**JD source:** live scrape 2026-06-15 via Playwright (Ashby board) — real posting, verbatim
**Date:** 2026-06-15
**Score:** 87.2 / 100
---
## Domain-Specialist Lens (from session file + JD)
### Reviewer Persona
A hands-on SRE / platform-engineering lead on Kraken's AI Infrastructure team (sits *inside* the Data org). Daily: Terraform/Nomad on EKS, GitOps (ArgoCD/Flux), model-serving + agent-execution layers, on-call for agentic workloads shipping 100+ versions/day across 25+ environments. Has screened many career SREs with Terraform + EKS + LLM-serving stacks. Eye-rolls at: analytics/BI framing, inflated solo-ownership of org-scale platforms, buzzword "agentic" with no production substance. Genuinely impressed by: someone who put real ML into a 24/7 line with no maintenance window, who thinks in platform/DX terms, and who is authentically crypto-native (rare in this applicant pool).
### Company Context
Payward (Kraken, NinjaTrader, Breakout, xStocks, CF Benchmarks). 15-yr crypto exchange, 10M+ users. This team builds/operates the orchestration, execution and model-serving layers under agent workflows — explicitly framed as a **platform engineering team** delivering APIs/SDKs/self-service so AI/Data/Eng teams consume agent infra *as a service*. Success is defined "beyond ops → developer experience, platform adoption, long-term scalability." Recently shipped an open-source crypto CLI built for AI agents (MCP server, Claude Code/Cursor compatible).
### JD Vocabulary Extraction (ranked)
| # | JD Term | Freq | Meaning at Kraken | Resume Match? |
|---|---|---|---|---|
| 1 | Site Reliability / SRE / Platform Engineer (title + 5+ yrs) | title+body | Production reliability + platform-building tenure | YES (header, summary, skills) |
| 2 | Platform engineering / developer experience / self-service / APIs / SDKs consumed at scale | 4+ | The differentiating ask — build infra *as a service* for other eng teams | **PARTIAL** (self-service data products consumed by teams; no "DX"/"API"/"SDK" verbatim) |
| 3 | ML infrastructure / model serving / MLOps | 3 | Compute/orchestration/serving for inference + agent execution | YES (summary, skills group, BS-1) |
| 4 | Infrastructure as Code / Terraform | 2 | Provision AWS via Terraform | PARTIAL (IaC + CloudFormation; Terraform honest gap) |
| 5 | Kubernetes + Docker | 2 | Containerized agent workloads | YES (×2 employers) |
| 6 | Observability / monitoring / alerting / incident response / on-call | 3 | Reliability of agentic systems | YES (BS-4 stack, SW on-call) |
| 7 | AWS | 2 | Cloud substrate | YES (SAA cert + bullets) |
| 8 | Python + bash/shell | 2 | Primary scripting/lang | YES |
| 9 | agentic / LLM-powered systems, guardrails/failure handling | 3 | Production-hardened agent infra | PARTIAL (AI workflows query data foundation; no agent-orchestration framework) |
| 10 | High ownership, fast-moving 0→1 | 2 | Culture fit | YES (Component/App Owner, FC-1 0→1) |
### Domain Vocabulary Map
| Resume Currently Says | Could Say for THIS JD | Why |
|---|---|---|
| "consumed directly by downstream teams and AI workflows" | "...as self-serve platform services with API access" | JD's #2 theme is DX / API-driven / self-service platform — currently bridged only halfway |
| header "AI & Agent Infrastructure" | (fine) | Already strong — keep |
| "self-service, governed data products" | keep + add "developer experience" once | "developer experience" is named twice in JD; not present verbatim anywhere |
### Gap Ranking
- **Fatal:** None. Kraken explicitly invites applicants who don't meet every req; no binary disqualifier present (Terraform is preferred, not gating; no degree/cert gate).
- **Serious:** (1) Terraform — every "obvious fit" competitor has it; bridged honestly via CloudFormation in both docs. (2) "Developer experience / API-driven platform" vocabulary thin relative to how hard the JD leans on it. (3) No dedicated "SRE" job *title* in history (bridged via reliability/ownership content).
- **Cosmetic:** LangGraph/CrewAI, Cloudflare Zero Trust, formal eval frameworks — most applicants also lack these; correctly not claimed.
### Methodology Transfer Test
| Achievement | How Kraken's expert reads it |
|---|---|
| BS-1 ML inference into 24/7 fab (Docker/K8s, no downtime) | "He's already done the hard part — hardening experimental ML into a no-maintenance-window production line. That's literally our charter." ✓ |
| SW-7 self-service governed data products consumed by teams | "A platform other teams consume — the DX mindset we need, though I'd want to hear how API/self-serve it really is." ✓ (partial) |
| BS-4 ELK/Grafana/Prometheus/Loki | "Real observability stack ownership, not a dashboard." ✓ |
| SW Component Owner + on-call SLA / 2nd-3rd level | "Genuine reliability + incident-response ownership." ✓ |
| SW-1 Teradata/Oracle → AWS as code (CloudFormation) | "IaC reflex is there; CloudFormation not Terraform, but the mental model transfers." ✓ |
### Competitive Landscape
- **Obvious fit:** Career SRE with dedicated title + Terraform + EKS + LLM-serving tooling (Kubeflow/Ray/Seldon), maybe prior crypto-firm experience.
- **Our advantage:** Production ML-into-fab story, governed agentic data foundation, AND authentic crypto fluency (customer since 2017, holds BTC/ETH, writes Solidity) — a combination very few applicants have, and one Kraken explicitly values.
- **Their advantage:** Terraform-by-name, dedicated SRE title, hands-on agent-orchestration frameworks. We bridge the first two honestly and concede the third.
---
## Five-Perspective Read-Through
### ATS Robot (keyword scan)
| JD keyword | Match |
|---|---|
| SRE / Site Reliability | YES (header, skills "SRE on-call") |
| Platform Engineer / platform engineering | YES (header, summary) |
| ML infrastructure / model serving / MLOps | YES |
| developer experience | **NO (verbatim)** |
| self-service infrastructure | YES ("self-service") |
| APIs / SDKs | PARTIAL (no verbatim "API"/"SDK") |
| Infrastructure as Code / IaC | YES |
| Terraform | NO (honest gap; CloudFormation present) |
| Kubernetes | YES |
| Docker | YES |
| AWS | YES |
| bash/shell | YES |
| Python | YES |
| observability / monitoring / alerting | YES |
| incident response / on-call | YES |
| containerization & orchestration | YES |
| Airflow / Kafka / Spark / data lake | YES (all four) |
| CI/CD | YES |
| agentic / LLM-powered | PARTIAL ("AI workflows/agents") |
| high ownership | YES |
**Match rate:** ~16.5 / 20 = **~83%** verbatim/semantic → **PASS**. Top truthfully-addable misses: "developer experience," "API."
### Recruiter Glance (10 s)
**Verdict: Forward.** Header tagline ("Site Reliability & Platform Engineer | Kubernetes · AWS · MLOps | AI & Agent Infrastructure") is dead-on target vocabulary. Current title (Staff Engineer, Switzerland's largest telco) signals level. Crypto + Kraken-since-2017 in the summary's last line is an instant "culture fit" flag for a crypto recruiter.
### HR Screen (30 s)
**Verdict: Phone screen.** Summary bridges cleanly (reliability/platform → ML inference → agent-consumable data foundation → crypto). 11+ yrs clears the 5+ bar comfortably. Skills group names all read target-domain. Remote/Switzerland-eligible matches posting.
### Hiring Manager (2 min)
**Verdict: Interview.**
**Top 3 observations:**
1. The Bosch "ML inference into a 24/7 fab, no downtime" bullet is the strongest single proof point for "bring production discipline to emerging tech" — exactly the JD thesis.
2. Crypto-native authenticity + production platform ownership is a rare pairing; differentiator is visible without being gimmicky.
3. Would probe: how API-driven / self-serve are the "data products" really, and how close is CloudFormation-to-Terraform in practice.
**Predicted first interview question:** "Walk me through what 'self-service' meant on your Swisscom data products — what did consumers actually call, and how did you handle versioning and failure modes?"
### Technical Reviewer (10 min)
**Truthfulness:** Clean against session/KB.
- Terraform never claimed; CloudFormation stated and bridged honestly in CL ("the model is identical and I would close that gap fast"). ✓
- Data Mesh scoped correctly ("within Swisscom's company-wide Data Mesh") — no solo-ownership inflation. ✓
- LangChain/LangGraph absent. ✓ Verified GenAI toolchain not over-stated.
- Security Champion framed as a role with year window (2025/26), not an award. ✓
- One **minor** wording mismatch: summary says "AI agents consume," resume bullet says "AI workflows," CL says "agentic AI workflows query." The agent-consumption claim is the strongest phrasing of a real-but-emerging reality. Align toward "AI workflows / agents query" for airtight defensibility (Tier 2).
**Consistency:** Dates, titles, metrics consistent across resume + CL. No contradictions.
---
## Eight-Dimension Scoring
| Dimension | Score | Weight | Weighted | Notes |
|---|---|---|---|---|
| ATS Keywords | 8.5/10 | 15% | 1.28 | ~83% match; misses "developer experience"/"API" verbatim, Terraform (honest) |
| Summary | 9.0/10 | 10% | 0.90 | Strong bridge, crypto hook, target vocab; "AI agents consume" slightly ahead of bullets |
| Skills Section | 9.0/10 | 10% | 0.90 | Group names all on-target; crypto/Web3 group is a smart differentiator |
| Bullet Quality | 8.5/10 | 25% | 2.13 | BS-1 + SW reliability bullets excellent; DX/API/platform-adoption angle under-stated for a "platform engineering" team |
| Publications | N/A (8.5 proxy) | 10% | 0.85 | No pubs expected for industry SRE; certs (AWS SAA active, AI Eng) carry credibility |
| Narrative Coherence | 9.0/10 | 15% | 1.35 | Reliability → ML-infra → agentic data → crypto thread is tight and reader-legible |
| Page Fill & Visual | 9.0/10 | 5% | 0.45 | 2 clean pages, page 2 ~70% filled, no orphans, compiles clean |
| Credibility Signals | 8.5/10 | 10% | 0.85 | Component/App Owner titles, AWS SAA, CNN/BBC scale, 24/7 fab; no dedicated SRE title |
| **Total** | | **100%** | **87.2** | |
*(Publications dimension scored as a neutral proxy since the role is industry SRE with no publication expectation; certs assessed in its place.)*
---
## Interview Likelihood
| Reader | Probability | Key Factor |
|--------|------------|------------|
| ATS | 90% PASS | 83% keyword match; crypto + K8s + AWS + observability all hit |
| Recruiter (10s) | 85% Forward | On-target tagline + Staff title + crypto-since-2017 |
| HR (30s) | 85% Phone screen | 11+ yrs clears 5+ bar; clean bridge summary |
| Hiring Manager (2m) | 70% Interview | Bosch ML-into-fab + crypto authenticity; tempered by no Terraform / no SRE title |
| Technical Panel (10m) | 65% Yes | Real production discipline; will probe DX/API depth + Terraform transfer |
**Ceiling:** Current **87.2** → with Tier 1 applied **~88.5** → hard ceiling **~90** (capped by: no Terraform-by-name, no dedicated SRE title, no agent-orchestration framework — all structural, all honest gaps). What would close the last gap: hands-on Terraform + one LangGraph/CrewAI project. Not worth fabricating; the crypto + production-ML edge is the real lever.
---
## Actionable Improvements
### Tier 1 (HIGH — worth doing, ~+1.3 total)
1. **Inject "developer experience / API-driven" into the platform bullet (SW-7, bullet 2).** The JD names "developer experience" twice and "APIs/SDKs consumed by engineering teams" as the team's defining purpose, yet neither phrase appears. *Current:* "...consumed directly by downstream teams and AI workflows." *Proposed:* rework to surface self-serve + API/contract consumption and developer experience (e.g., "...as self-serve platform services other teams discover and consume via governed APIs/contracts"). Keep it honest to data-product reality. **+~0.8 (ATS + HM platform-thinking signal).**
2. **Add "developer experience (DX)" to a skills line** (Containers/CI-CD or a platform descriptor) so the verbatim term lands for ATS without overclaiming. **+~0.5.**
### Tier 2 (MEDIUM — optional, ~+0.5)
1. **Align the agent-consumption phrasing.** Summary "AI agents consume" → "AI workflows and agents query/consume" to match the resume bullet and CL, tightening defensibility. **+~0.3.**
2. **Bullet 7 (Security Champion) is 187 chars (2 under target)** — pad slightly or leave; cosmetic. **+~0.2.**
### Tier 3 (COSMETIC — skip)
1. Minor: consider naming "self-service / paved-road" idiom once — diminishing returns; "self-service" already present.
### Verdict
**Apply Tier 1 (DX/API vocabulary) — it directly addresses the one theme the JD weights most and the resume under-serves. Tier 2 alignment is a nice-to-have. Package is submit-ready at 87; Tier 1 nudges it to ~88.5.** Do NOT chase Terraform/LangGraph by fabrication — the honest crypto + production-ML positioning is the winning angle.
---
## Cover Letter Critique
**Type:** Industry. **Word count:** 299 (target 250300 — at the top edge, acceptable). **1 page.**
- **6A Anti-patterns:** PASS. Opens with the Kraken AI-agent CLI / MCP shipment (specific, not generic). No bullet-rehash. Strongest hook (production-discipline + crypto) in P1. No defensive/apologetic framing — the CloudFormation-vs-Terraform line is confident, not apologetic. Active close ("I would welcome the chance to talk about keeping your agent infrastructure reliable as it scales").
- **6B Tailoring:** PASS. Names a specific Kraken product (open-source agent CLI + MCP server, Claude Code/Cursor). Uses JD terms beyond the resume (agentic systems, model serving, platform-as-a-service, reliability). References the team's actual charter.
- **6C Industry checks:** PASS. Business/production value translated; "why crypto" is positive and authentic (BTC/ETH, Solidity, 15 yrs watching Kraken); jargon calibrated for a technical platform reader.
- **6D CL ATS:** 67 high-priority JD terms supplement the resume (agentic, MCP, model serving, observability, IaC, on-call). Good.
- **6E Structural:** PASS. ~299 words, results-driven tone, sentence-length variety, IaC pivot leads with capability not apology.
- **6F Package cohesion:** PASS. Every CL claim traces to a resume bullet (K8s/CI-CD → SW; Teradata/Oracle→AWS as code → SW-1; Bosch ML + observability → BS-1/BS-4; Security Champion → SW-5; self-service data products → SW-7). No new unsupported claims. Resume stands alone without the CL.
**AI-fingerprint scan (12-item):** PASS. No Tier-1 banned words; no -ing bullet endings; 1 em-dash (address block, not prose); no generic opener; varied sentence length; no metaphorical "landscape/journey." Notably avoids the banned "at the intersection of X and Y" despite the JD using it — good restraint.
---
## Interview Bridge Points
| Resume Topic | Target Equivalent | Opening Line |
|---|---|---|
| Bosch ML inference into 24/7 fab | Hardening agent prototypes into production | "The maintenance-window discipline I used to put ML into a fab line is the same discipline agent infra needs once real money flows through it." |
| SW-7 self-service data products | Platform-as-a-service / DX | "I built data products as a self-serve platform — discoverable, governed, consumed by teams I never met; the DX problem is the same for an agent platform." |
| CloudFormation IaC | Terraform | "My IaC reflex is CloudFormation; the provisioning model, drift, and review gates map one-to-one to Terraform — I'd be productive in days." |
| BS-4 ELK/Grafana/Prometheus/Loki | Observability for AI/ML workloads | "I instrumented a 24/7 line end-to-end; for agents I'd add inference latency, failure/recovery patterns, and eval signals on top of the same telemetry spine." |
| Component/App Owner + on-call | Incident response for agentic systems | "I've owned 2nd/3rd-level on-call with SLAs; I think in error budgets and runbooks, not heroics." |
| Solidity / crypto-native | Domain fluency | "I'm a Kraken user since 2017 and write Solidity for fun — I understand why reliability in this domain isn't optional." |
| FC-1 first Jenkins CI/CD from zero | 0→1 platform-building | "I've stood up the first CI/CD a team ever had — I'm comfortable in the 0→1 platform phase your team lives in." |
---
*End of critique.*
@@ -0,0 +1,43 @@
\documentclass[11pt,a4paper,roman]{moderncv}
\usepackage[english]{babel}
\moderncvstyle{classic}
\moderncvcolor{green}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{ragged2e}
\usepackage[scale=0.79]{geometry}
\usepackage[version=4,arrows=pgf-filled]{mhchem}
\renewcommand*{\makeletterclosing}{\par\vspace{2ex}\closingname\par}
% ========== CONTACT ==========
\name{Dennis}{Thiessen}
\address{Bern, Switzerland}
\phone[mobile]{+41 795 955 585}
\email{dennis@thiessen.io}
% =============================
\begin{document}
\recipient{To}{Kraken (Payward)\\AI Infrastructure Team, Data Organization\\Remote --- Switzerland}
\date{\today}
\opening{Dear AI Infrastructure Team,}
\makelettertitle
\begin{justify}
When Kraken shipped its open-source CLI for AI agents in March, with a built-in MCP server that lets Claude Code and Cursor execute directly against live markets, it confirmed a bet I had been making as an engineer and Kraken customer since 2017: agentic systems only matter once someone makes them reliable in production. That is the work of the AI Infrastructure team, and the reason I am writing about the Site Reliability Engineer, AI Agents role.
For nearly three years at Swisscom, Switzerland's largest telco, I have built and operated Python services on Kubernetes with GitLab CI/CD, owning them from build through production rollout and on-call. Before that I migrated our legacy Teradata and Oracle ETL to a cloud-native AWS stack (S3, Glue, Athena with Iceberg, Airflow) provisioned as code. My IaC is CloudFormation rather than Terraform, but the model is identical and I would close that gap fast. I also own security and access controls for the Data Lake team as its Security Champion.
What fits me most here is turning experimental systems into production ones. At Bosch I containerized and orchestrated ML inference (Docker, Kubernetes, Ansible) into a 24/7 semiconductor fab with no maintenance windows, and built the observability stack (ELK, Grafana, Prometheus, Loki) around it. At Swisscom I now build the self-service, governed data products that downstream teams and agentic AI workflows query. Reliability, model serving, observability, and a platform other teams consume as a service are the problems your posting names.
Doing this for a crypto-native company is the part I would be most invested in. I hold BTC and ETH, write Solidity in my own time, and have watched Kraken operate through fifteen years of market cycles. I would welcome the chance to talk about keeping your agent infrastructure reliable as it scales.
\end{justify}
\vspace{0.3cm}
{Sincerely,\\
Dennis Thiessen, M.Eng.\\
Staff Data, Analytics \& AI Engineer\\
Swisscom (Schweiz) AG}
\end{document}
@@ -0,0 +1,163 @@
\documentclass{resume}
\usepackage{hyperref}
\usepackage{enumitem}
\usepackage{fontawesome}
\usepackage{tikz}
\usepackage{graphicx}
\hypersetup{
colorlinks = true,
linkcolor = [rgb]{0.9,0.4,0.4},
anchorcolor = [rgb]{0.9,0.4,0.4},
citecolor = [rgb]{0.4,0.4,0.4},
filecolor = [rgb]{0.4,0.4,0.4},
urlcolor = [rgb]{0.0,0.0,0.99},
}
\usepackage{xcolor}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[version=4,arrows=pgf-filled]{mhchem}
\usepackage[includefoot,left=0.5in,top=0.5in,right=0.5in,bottom=0.2in,textwidth=7.5in,textheight=10.8in]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[R]{\hfill \thepage/\pageref{LastPage}}
\newcommand{\tab}[1]{\hspace{.2667\textwidth}\rlap{#1}}
\newcommand{\itab}[1]{\hspace{0em}\rlap{#1}}
%----------------------------------------------------------------------------------------
% HEADER
%----------------------------------------------------------------------------------------
\name{Dennis Thiessen, M.Eng.}
\address{\href{https://linkedin.com/in/dennis-thiessen}{LinkedIn}}
\address{dennis@thiessen.io \\ +41 795 955 585}
\address{Bern, Switzerland $\vert$ German citizen $\vert$ Open to fully remote (Switzerland-based) across EU}
\address{{Site Reliability \& Platform Engineer $\vert$ Kubernetes $\cdot$ AWS $\cdot$ MLOps $\vert$ AI \& Agent Infrastructure}}
\begin{document}
\vspace{-0.15cm}
%----------------------------------------------------------------------------------------
% SUMMARY
%----------------------------------------------------------------------------------------
\begin{rSection}{Summary}
Site reliability and platform engineer with 11+ years in production infrastructure. At Switzerland's largest telco I operate \textbf{Python} services on \textbf{Kubernetes} with \textbf{GitLab CI/CD}, keep business-critical pipelines healthy under on-call SLA, and build self-service, governed data products on \textbf{AWS} that other teams and AI agents consume. Earlier I moved \textbf{ML} inference into a 24/7 Bosch fab with \textbf{Docker} and Ansible, with \textbf{Grafana}/\textbf{Prometheus} observability. \textbf{AWS} Certified Solutions Architect and \textbf{Python} expert; crypto-native (Solidity) and Kraken user since 2017.
\end{rSection}
\vspace{-0.15cm}
%----------------------------------------------------------------------------------------
% TECHNICAL SKILLS — Format C, 5 groups (4-3-2-2-2)
%----------------------------------------------------------------------------------------
\begin{rSection}{Technical Skills}
\begin{skillgroup}{Cloud Platform \& Infrastructure as Code}
\skilldash{\textbf{AWS} (S3, Glue, Athena/Iceberg, Redshift, Lambda, Step Functions, \textbf{Airflow}, CloudWatch, ECR/ECS)}
\skilldash{\textbf{Infrastructure as Code} (\textbf{CloudFormation}), serverless and event-driven architecture, AWS SAA-certified}
\skilldash{Cloud-native application delivery, multi-service platform operation, scalability and cost awareness}
\skilldash{Linux, networking fundamentals, Bash / shell scripting, Git, software architecture (iSAQB)}
\end{skillgroup}
\begin{skillgroup}{Containers, CI/CD \& Observability}
\skilldash{\textbf{Kubernetes}, \textbf{Docker}, Ansible: containerized application deployment and orchestration}
\skilldash{\textbf{GitLab CI/CD}, Jenkins: build, test and deploy automation, quality gates, DevSecOps}
\skilldash{ELK Stack, \textbf{Grafana}, \textbf{Prometheus}, Loki: monitoring, alerting, SRE on-call, incident response}
\end{skillgroup}
\begin{skillgroup}{ML Infrastructure \& Data Engineering}
\skilldash{\textbf{ML} inference / model serving in production, MLOps, containerized model deployment (\textbf{Docker}/\textbf{K8s}, Ansible)}
\skilldash{\textbf{Kafka}, \textbf{Airflow}, PySpark / Apache Spark, ETL/ELT, Data Mesh / data products, data governance}
\end{skillgroup}
\begin{skillgroup}{Programming \& Crypto / Web3}
\skilldash{\textbf{Python} (expert), Java, SQL, Bash, JavaScript/TypeScript, FastAPI, Pandas, pytest}
\skilldash{\textbf{Solidity} / smart contracts, on-chain / Web3 fundamentals, EVM tooling, blockchain (personal projects)}
\end{skillgroup}
\begin{skillgroup}{Certifications}
\skilldash{\textbf{AWS Certified Solutions Architect -- Associate} (active to Sep 2027), Data Engineering with AWS (Udacity)}
\skilldash{iSAQB CPSA -- Foundation (2016), ITIL Foundation (2016), IBM AI Engineering Specialization}
\end{skillgroup}
\end{rSection}
\vspace{-0.15cm}
%----------------------------------------------------------------------------------------
% PROFESSIONAL EXPERIENCE
%----------------------------------------------------------------------------------------
\begin{rSection}{Professional Experience}
% --- Swisscom (Oct 2023 -- Present) — SW-3, SW-7, SW-1, SW-2, SW-4, SW-6 ---
\begin{rSubsection}{Platform \& Reliability Engineering: Kubernetes, AWS \& Self-Service Data Products}{\textcolor{black!60}{Oct 2023 -- Present}}{Staff Data, Analytics \& AI Engineer, Swisscom (Schweiz) AG}{Bern, Switzerland}
\item Build, deploy and operate \textbf{Python} services on \textbf{Kubernetes} with \textbf{GitLab CI/CD}, owning containerized delivery from build and test through production rollout and on-call operation in an agile DevOps team.
\item Build self-service, governed data products with metadata management within Swisscom's company-wide \textbf{Data Mesh} on \textbf{AWS} (Glue, Athena, CloudFormation, CI/CD), consumed directly by downstream teams and AI workflows.
\item Migrated Swisscom's legacy Teradata/Oracle ETL to a cloud-native \textbf{AWS} platform (S3, Glue, Athena/Iceberg, Redshift, \textbf{Airflow}) provisioned as code with \textbf{CloudFormation}, for serverless ML and analytics workloads.
\item Own business-critical Fulfillment and Product Analysis pipelines (Oracle, \textbf{Kafka} to Teradata in \textbf{Python}) as Component Owner, enforcing data governance and SLAs under 2nd/3rd-level on-call and incident response.
\item Deliver data products and dashboards for B2B product teams and automate recurring workflows in \textbf{Python}, running 3rd-level root cause analysis to keep platform pipelines reliable and available.
\item Apply \textbf{PySpark} and distributed computing in the Swisscom Data Lake, extending \textbf{Python} pipeline capabilities to large-scale batch and streaming workloads for Fulfillment and Product Analysis data domains.
\item Serve as the team's Security Champion (2025/26), owning \textbf{DevSecOps}, access controls, security compliance and deviation tracking for the Data Lake, with 100h annual cloud-security training.
\end{rSubsection}
% --- Bosch (Feb 2020 -- Dec 2022) — BS-1, BS-4, BS-3, BS-2 ---
\begin{rSubsection}{Production ML Infrastructure \& Observability in 24/7 Semiconductor Manufacturing}{\textcolor{black!60}{Feb 2020 -- Dec 2022}}{(Senior) Data \& ML Engineer, Robert Bosch Semiconductor Manufacturing}{Dresden, Germany}
\item Containerized and orchestrated production \textbf{ML} inference (\textbf{Docker}, \textbf{Kubernetes}, Ansible) for automated image-based defect classification in Bosch's 24/7 semiconductor fab across 300mm wafer lines without downtime.
\item Delivered an anomaly-detection and observability stack (ELK with \textbf{Kafka} on \textbf{Docker}, plus \textbf{Grafana}, \textbf{Prometheus} and Loki), giving centralized monitoring and alerting for 24/7 manufacturing infrastructure.
\item Served as Application Owner for the semiconductor analytics suite and upstream pipelines, defining SLOs, managing vendors, and delivering training and documentation to keep systems reliable 24/7.
\item Developed data services in \textbf{Python}, Java and C\# over OracleDB and Hadoop/ImpalaSQL, giving analysis teams structured, reliable access to defect-management and process-optimization data in a high-throughput fab.
\end{rSubsection}
% --- Fraunhofer (Sep 2018 -- Oct 2019) — FC-1, FC-3 ---
\begin{rSubsection}{CI/CD Automation \& Containerized Microservices, Built from Zero}{\textcolor{black!60}{Sep 2018 -- Oct 2019}}{Research Software Engineer, Fraunhofer-Center for Maritime Logistics CML}{Hamburg, Germany}
\item Set up the team's first Jenkins \textbf{CI/CD} pipeline with quality gates independently, bringing build automation to the group; also developed the SCEDAS crew-scheduling system (C\#, .NET, MS SQL, Entity Framework).
\item Built containerized microservices (Express.js, \textbf{Docker}, SQLite) for MISSION, a Fraunhofer maritime data-exchange platform connecting ports, operators and research partners across the logistics chain.
\end{rSubsection}
% --- Vizrt (Jul 2017 -- May 2018) — VZ-1, VZ-2 ---
\begin{rSubsection}{Distributed Real-Time Backend Engineering at Broadcast Scale}{\textcolor{black!60}{Jul 2017 -- May 2018}}{DevOps Engineer, Vizrt}{Bergen, Norway}
\item Engineered distributed real-time video-transcoding backend components in \textbf{Python} (with legacy C++ modules) for Vizrt's broadcast platform, serving global media customers including CNN, BBC and Al Jazeera.
\item Wrote an automated A/V integration and unit test suite in \textbf{Python} and wired quality gates into the \textbf{CI/CD} pipeline, which shortened the feedback loop for new features and raised release reliability.
\end{rSubsection}
% --- Generali (May 2015 -- Jun 2017) — GN-1, GN-3, GN-2 ---
\begin{rSubsection}{Test Automation, CI/CD Ownership \& Java Backend}{\textcolor{black!60}{May 2015 -- Jun 2017}}{IT Consultant, Generali Deutschland Informatik Services}{Hamburg, Germany}
\item Introduced BDD test automation to Generali (Serenity-BDD, Selenium, JBehave), ran the PoC and took technical ownership, administered Jenkins \textbf{CI/CD} jobs, and trained teams across the Java Community.
\item Developed Java/J2EE features for the PIA-Postkorb workflow portal, migrated WebServices to the XLDeploy process, and contributed to an Apache Camel / Spring Boot dispatcher integration PoC.
\item Pioneered UIPath RPA at Generali GDIS, building PoCs and serving as the internal RPA contact for group companies, extending automation from test tooling into broader business process automation.
\end{rSubsection}
\end{rSection}
\vspace{-0.15cm}
%----------------------------------------------------------------------------------------
% EDUCATION — FIXED
%----------------------------------------------------------------------------------------
\begin{rSection}{Education}
{M.Eng.\ Computer Aided Engineering (Software Design \& Engineering)} \hfill {\textcolor{black!60}{Apr 2012 -- Oct 2013}}\\
{Universit\"at der Bundeswehr M\"unchen}; thesis at Tongji University, Shanghai \hfill Thesis Grade: \textbf{1.0}\\
{\small Thesis: \textit{Development of a Web-Based Remote Fault Diagnosis System} (Neural Networks, PSO, Fuzzy Logic)}
{B.Eng.\ Information and Telecommunication Technologies} \hfill {\textcolor{black!60}{Oct 2009 -- Oct 2012}}\\
{Universit\"at der Bundeswehr M\"unchen}, Munich, Germany
\end{rSection}
\vspace{-0.15cm}
%----------------------------------------------------------------------------------------
% CERTIFICATIONS & AWARDS — FIXED
%----------------------------------------------------------------------------------------
\begin{rSection2}{Certifications \& Awards}
\item \textbf{AWS Certified Solutions Architect -- Associate}, Amazon Web Services (2024, active until Sep 2027).
\item \textbf{Data Engineering with AWS Nanodegree}, Udacity (2026). AWS data pipeline architecture.
\item \textbf{iSAQB CPSA -- Foundation Level}, iSAQB (2016). Certified Professional for Software Architecture.
\item \textbf{ITIL Foundation Certificate in IT Service Management}, PEOPLECERT / AXELOS (2016).
\item \textbf{IBM AI Engineering Specialization}, Coursera. Deep learning, TensorFlow, Keras, Apache Spark ML.
\end{rSection2}
\begin{center}
\vspace{0.1cm}
\textit{Languages: German (native), English (fluent)}
\end{center}
\end{document}
+199
View File
@@ -0,0 +1,199 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Medium Length Professional CV - RESUME CLASS FILE
%
% This template has been downloaded from:
% http://www.LaTeXTemplates.com
%
% This class file defines the structure and design of the template.
%
% Original header:
% Copyright (C) 2010 by Trey Hunner
%
% Copying and distribution of this file, with or without modification,
% are permitted in any medium without royalty provided the copyright
% notice and this notice are preserved. This file is offered as-is,
% without any warranty.
%
% Created by Trey Hunner and modified by www.LaTeXTemplates.com
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ProvidesClass{resume}[2018/09/25 v1.0 Resume class]
\LoadClass[10pt, a4paper]{article} % Font size and paper type
\usepackage{lastpage}
\usepackage[parfill]{parskip} % Remove paragraph indentation
\usepackage{array} % Required for boldface (\bf and \bfseries) tabular columns
\usepackage{ifthen} % Required for ifthenelse statements
\usepackage{enumitem}
\pagestyle{empty} % Suppress page numbers
%----------------------------------------------------------------------------------------
% HEADINGS COMMANDS: Commands for printing name and address
%----------------------------------------------------------------------------------------
\def \name#1{\def\@name{#1}} % Defines the \name command to set name
\def \@name {} % Sets \@name to empty by default
\def \addressSep {$|$} % Set default address separator to a diamond
% One, two or three address lines can be specified
\let \@addressone \relax
\let \@addresstwo \relax
\let \@addressthree \relax
\let \@addressfour \relax
% \address command can be used to set the first, second, and third address (last 2 optional)
\def \address #1{
\@ifundefined{@addresstwo}{
\def \@addresstwo {#1}
}{
\@ifundefined{@addressthree}{
\def \@addressthree {#1}
}{
\@ifundefined{@addressfour}{
\def \@addressfour {#1}
} {\def \@addressone {#1}
}
}
}
}
% \printaddress is used to style an address line (given as input)
\def \printaddress #1{
\begingroup
\def \\ {\addressSep\ }
{#1}
% \centerline{#1}
\endgroup
\par
% \addressskip
}
% \printname is used to print the name as a page header
\def \printname {
\begingroup
% \MakeUppercase
{\namesize\bf \@name} \hfil
% \hfil{\MakeUppercase{\namesize\bf \@name}}\hfil
\nameskip\break
\endgroup
}
%----------------------------------------------------------------------------------------
% PRINT THE HEADING LINES
%----------------------------------------------------------------------------------------
\let\ori@document=\document
\renewcommand{\document}{
\ori@document % Begin document
% \begin{center}
\printname % Print the name specified with \name
\@ifundefined{@addressone}{}{ % Print the first address if specified
\printaddress{\@addressone}}
\@ifundefined{@addresstwo}{}{ % Print the second address if specified
\printaddress{\@addresstwo}}
\@ifundefined{@addressthree}{}{ % Print the third address if specified
\printaddress{\@addressthree}}
\@ifundefined{@addressfour}{}{ % Print the third address if specified
\printaddress{\@addressfour}}
% \end{center}
}
%----------------------------------------------------------------------------------------
% SECTION FORMATTING
%----------------------------------------------------------------------------------------
% Defines the rSection environment for the large sections within the CV
\newenvironment{rSection}[1]{ % 1 input argument - section name
\sectionskip
{\bf #1}
% \MakeUppercase{\bf #1} % Section title
\sectionlineskip
\hrule % Horizontal line
\begin{list}{}{ % List for each individual item in the section
\setlength{\leftmargin}{0.50em} % Margin within the section
}
\item[]
}{
\end{list}
}
\newenvironment{rSection2}[1]{ % 1 input argument - section name
\sectionskip
{\bf #1} % Section title
\sectionlineskip
\hrule % Horizontal line
\medskip
\begin{list}{$\bullet$}{\setlength{\leftmargin}{1.5em}}
\itemsep -0.3em \vspace{-0.5em} % Compress items in list together for aesthetics
}{
\end{list}
\vspace{0.5em}
}
\newenvironment{rSection3}[1]{ % 1 input argument - section name
\sectionskip
{\bf #1} % Section title
\sectionlineskip
\hrule % Horizontal line
\medskip
\begin{enumerate}[]{\setlength{\leftmargin}{1.5em}}
\itemsep -0.3em \vspace{-0.5em} % Compress items in list together for aesthetics
}{
\end{enumerate}
\vspace{0.5em}
}
%----------------------------------------------------------------------------------------
% WORK EXPERIENCE FORMATTING
%----------------------------------------------------------------------------------------
\newenvironment{rSubsection}[4]{ % 4 input arguments - company name, year(s) employed, job title and location
{\bf #1} \hfill {#2} % Bold company name and date on the right
\ifthenelse{\equal{#3}{}}{}{ % If the third argument is not specified, don't print the job title and location line
\\
{\em #3} \quad {\em #4} % Italic job title and location
}\smallskip
\begin{list}{$\cdot$}{\leftmargin=1.5em} % \cdot used for bullets, no indentation
\itemsep -0.2em \vspace{-0.2em} % Compress items in list together for aesthetics
}{
\end{list}
\vspace{0.2 em} % Some space after the list of bullet points
}
%----------------------------------------------------------------------------------------
% FORMAT C SKILLS COMMANDS
%----------------------------------------------------------------------------------------
% Skills group environment: \begin{skillgroup}{Group Name} ... \end{skillgroup}
% Renders bold header + indented dash sub-items. Each \skilldash = exactly 1 rendered line.
\newenvironment{skillgroup}[1]{%
\textbf{#1}\par\nopagebreak%
\vspace{-\parskip}%
\begin{list}{--}{\leftmargin=0.8em \labelsep=0.3em \itemsep=0pt \topsep=0.1em \parsep=0pt \partopsep=0pt}%
}{%
\end{list}%
\vspace{-\parskip}\vspace{0.45em}%
}
% Single dash sub-item within a skillgroup. Content must fit 1 rendered line.
% Char limit: 119 - (0.5 x bold_char_count) at 10pt
\newcommand{\skilldash}[1]{\item #1}
%----------------------------------------------------------------------------------------
% EXPERIENCE SUB-THEME COMMAND
%----------------------------------------------------------------------------------------
% Sub-theme underline header within rSubsection
\newcommand{\subtheme}[1]{\item[] \underline{#1}}
% The below commands define the whitespace after certain things in the document - they can be \smallskip, \medskip or \bigskip
\def\namesize{\huge} % Size of the name at the top of the document
\def\addressskip{\smallskip} % The space between the two address (or phone/email) lines
\def\sectionlineskip{\medskip} % The space above the horizontal line for each section
\def\nameskip{\medskip} % The space after your name at the top
\def\sectionskip{\medskip} % The space after the heading section
@@ -0,0 +1,158 @@
# Session: Kraken (Payward) — Site Reliability Engineer, AI Agents
## JD Info
- **File:** JDs/kraken_sre_ai_agents.txt
- **JD source:** live scrape 2026-06-15 via Playwright (Ashby board)
- **URL:** https://jobs.ashbyhq.com/kraken.com/c331de1b-b75a-48f5-9d19-0e56ccb935ab
- **Role:** Site Reliability Engineer AI Agents (AI Infrastructure team, within Data org)
- **Company:** Kraken / Payward — crypto exchange, 15 yrs, 10M+ users, 70+ countries
- **Bundle:** Data Platform / Infra (primary) + ML/AI Engineer (secondary bridge)
- **Format:** Resume (2-page, resume.cls) + 1-page cover letter
- **Salary/Details:** Not stated (Kraken does not publish CH band). Remote, Switzerland-eligible. Verify clears 180k+ all-in before final send.
## JD Analysis
### Requirements
| # | Requirement | Match | Evidence |
|---|-------------|-------|----------|
| 1 | 5+ yrs SRE / Infra / Platform Engineer in production | Direct | Swisscom DevOps/K8s/on-call (2023present) + Bosch App Owner/infra (202022) = 5+ yrs combined platform ownership |
| 2 | Hands-on ML infra / model serving / MLOps in production | Direct | BS-1: containerized + orchestrated ML inference (Docker/K8s/Ansible) into 24/7 production line |
| 3 | Building developer platforms, internal tooling, APIs/SDKs consumed at scale | Bridge (HIGH) | SW-7: self-serve governed data products consumed by downstream teams; BS-2: multi-language data services consumed by analysis teams. Not literally "SDKs" — frame as platform/services consumed by eng teams |
| 4 | Platform-eng principles: DX, self-service infra, API-driven design | Bridge (HIGH) | SW-7: decentralized Data Mesh = self-serve, discoverable, governed data-products model |
| 5 | IaC, particularly Terraform | Bridge (MED) | SW-1/SW-7: CloudFormation IaC (full provisioning). Terraform NOT used — frame as transferable IaC, never claim Terraform. (User confirmed.) |
| 6 | Containerization + orchestration (Kubernetes, Docker) | Direct | SW-3 (K8s+GitLab) + BS-1 (K8s/Docker/Ansible) — two employers |
| 7 | Cloud infra, preferably AWS | Direct | SW-1 (S3/Glue/Athena/Redshift/Airflow/CloudFormation), SW-7 (AWS Data Mesh). AWS SAA cert. |
| 8 | Strong scripting (bash/shell) + Python | Direct | Python primary across SW-2/3, BS-2; bash/shell in CI/CD ops |
| 9 | Observability, monitoring, alerting systems | Direct | BS-4: ELK + Kafka + Grafana + Prometheus + Loki full stack |
| 10 | Incident response + on-call rotations | Direct | SW-2 (on-call SLA, 2nd/3rd-level), BS-3 (App Owner SLOs, 24/7) |
| 11 | Collaboration across data/AI/eng teams | Direct | SW-4 (PO/stakeholder), BS-3 (cross-team adoption) |
| 12 | High ownership in fast-moving production | Direct | Component Owner (Swisscom) + Application Owner (Bosch) titles |
| NTH | Infra for agent-based / LLM systems | Bridge (MED) | SW-7: agentic data foundation (governed data products agents query); LiteLLM gateway |
| NTH | Agent orchestration frameworks (LangGraph, CrewAI) | **Gap** | Do NOT claim. Config bans LangChain/LangGraph fabrication. Verified toolchain: Kiro, Copilot, LiteLLM, custom GPTs |
| NTH | Data infra (Airflow, Kafka, Spark, data lake) | Direct | SW-1 (Airflow), SW-2 (Kafka), SW-6 (PySpark), Swisscom Data Lake |
| NTH | CI/CD + deployment automation for AI/ML | Direct | SW-3 (GitLab CI/CD), FC-1 (Jenkins from zero) |
| NTH | Eval frameworks / model perf monitoring at scale | Bridge (LOW) | BS-4 monitoring/anomaly detection — weak; don't oversell |
| NTH | 0→1 / platform-building teams | Bridge (MED) | FC-1 (introduced CI/CD from zero), BS-4 (observability PoC) |
| NTH | Cloudflare ecosystem (Zero Trust, networking) | Gap | Minor; omit |
### ATS Keywords
- **Platform/Infra:** SRE, Site Reliability, Platform Engineering, Infrastructure as Code, IaC, Kubernetes, Docker, AWS, CI/CD, self-service infrastructure, developer experience
- **ML/AI:** ML infrastructure, model serving, MLOps, model inference, agentic, LLM-powered systems, AI infrastructure
- **Data:** data infrastructure, Airflow, Kafka, Spark, data lake, data products, data engineering
- **Reliability:** observability, monitoring, alerting, incident response, on-call, SLO/SLA, runbooks
- **Tools:** Terraform (IaC — bridge via CloudFormation), Kubernetes, Docker, AWS, GitLab CI/CD, Grafana, Prometheus, ELK, Python, bash
- **Soft:** high ownership, cross-team collaboration, fast-moving / high-stakes production, platform adoption
### Gap Assessment
- **Direct:** SRE/platform tenure, production ML serving (BS-1), K8s+Docker, AWS, Python/bash, observability stack, on-call/incident response, data infra (Kafka/Airflow/Spark), CI/CD, ownership mindset
- **Bridge:** dev-platform/SDK consumption (SW-7/BS-2, HIGH); platform-eng DX/self-service (SW-7, HIGH); IaC→Terraform (CloudFormation, MED); agent/LLM infra (SW-7 agentic foundation, MED); 0→1 (FC-1, MED)
- **Gap (do NOT claim):** Agent orchestration frameworks (LangGraph/CrewAI), Cloudflare Zero Trust, formal LLM eval frameworks. Honest gaps — Kraken explicitly invites applicants who don't meet every req.
## Company Context
- **Mission:** "Building the Future of Open Finance" — Payward (Kraken, NinjaTrader, Breakout, xStocks, CF Benchmarks). 15 yrs building globally accessible financial infrastructure; advance an open global financial system.
- **This role:** AI Infrastructure team sits *within the Data org* — builds/operates/scales the systems powering AI agents in production (internal + external). Owns orchestration, execution, model-serving layers under agentic workflows. Explicitly a **platform engineering team**: builds APIs/SDKs/platform capabilities so AI/Data/Eng teams consume agent infra as a service. Success = beyond ops → DX, platform adoption, long-term scalability.
- **Real stack (web research):** EKS/Kubernetes, Terraform + Nomad IaC, AWS + on-prem private connectivity, GitOps (ArgoCD/Flux evaluated), Docker, Cilium CNI. Ships 100+ versions/day to 25+ environments across 10+ countries. Engineering blog at engineering.kraken.tech.
- **Agentic context:** Kraken shipped the first crypto CLI built for AI agents (open-source, MCP server, Claude Code/Cursor compatible, 134 commands). Building an "AI-native finance operating system" / agentic finance layer across 70+ regulated entities.
- **Culture:** Crypto-native, high-ownership, fast-moving 0→1, fully remote/global, ships fast. "Apply even if you don't meet all reqs, especially if passionate about crypto."
- **"Why them" angle:** Dennis is a Kraken customer since 2017, holds BTC+ETH, writes Solidity in free time — genuine crypto-native fit. Pair with production platform/ML-infra ownership. He brings the production discipline (on-call, observability, governed data foundation) that the JD says it needs to "harden agent infrastructure."
## Framing Strategy
- **Lead narrative:** "Production-discipline platform engineer who has put ML inference into a 24/7 line and now owns the cloud-native, governed data foundation that agentic workflows run on — exactly the intersection of data infrastructure and applied AI this team works at."
- **Reframing map:**
- Data Mesh / data products → "self-service platform consumed by engineering teams" (DX/API-driven platform)
- ML inference containerization (BS-1) → "ML infrastructure / model serving in production"
- CloudFormation → "Infrastructure as Code (IaC)" (transferable to Terraform; never claim Terraform)
- ELK/Grafana/Prometheus → "observability, monitoring & alerting for production systems"
- Component/Application Owner + on-call → "incident response, SLOs, reliability ownership"
- SW-7 governed data foundation → "the data layer agentic workflows query" (agentic bridge)
- **Emphasize:** Kubernetes (×2 employers), production ML serving (BS-1), AWS, observability stack, on-call/SLO ownership, self-serve data platform, IaC
- **Downplay:** semiconductor-domain specifics (keep ML-infra angle, drop fab jargon); BI/analytics framing; pure-DE "Fulfillment domain" context (lead with platform/reliability instead)
- **CL hooks:** (1) Kraken CLI for AI agents + MCP/agentic finance layer ↔ Dennis's governed data foundation for agentic workflows; (2) "intersection of data infrastructure and applied AI" = literal description of his SW-7 + BS-1 combo; (3) crypto-native: customer since 2017, holds BTC+ETH, Solidity; (4) production discipline (on-call, observability) for hardening agent infra.
- **User directives:** IaC framed as transferable, NO Terraform by name. Build Kraken now; Google Senior DE shelved for later.
## Critique Context
- **Reviewer persona:** A hands-on SRE/platform eng hiring manager on the AI Infrastructure team (Data org). Cares about production discipline, real K8s/AWS/IaC/observability ownership, MLOps reality, and whether candidate thinks in platform/DX terms — not buzzwords. Crypto-curious is a plus. Bored by analytics/BI framing and by inflated solo-ownership claims.
- **Competitive landscape:** Other applicants = career SREs/platform engineers with Terraform + EKS + MLOps tooling (Kubeflow/Ray/Seldon) and possibly crypto-firm experience. The "obvious fit" has dedicated SRE title + Terraform + LLM-serving stack. Dennis's edge: production ML-into-fab story, governed agentic data foundation, AND authentic crypto fluency — a combination few have.
- **Domain vocabulary (insider):** self-service platform, golden paths, paved road, SLO/error budget, GitOps, IaC drift, model serving, inference latency, agent orchestration, observability/telemetry, on-call rotation, runbooks, MCP, agentic workflows.
## Cover Letter Plan
- **Institution type:** Crypto-native, fast-moving, fully-remote tech company; platform/SRE audience
- **Paragraph count:** 4 paragraphs, ~270 words
- **P1 hook:** Kraken CLI for AI agents / MCP + agentic finance layer → "intersection of data infrastructure and applied AI" mirrors my own work; + crypto-native (customer since 2017)
- **P2-P3 evidence:** P2 = production platform/reliability (K8s ×2, AWS migration + IaC, observability stack, on-call/SLO ownership). P3 = ML-infra + agentic data foundation (BS-1 production ML serving + SW-7 governed self-serve data products that agentic workflows query)
- **Domain pivot:** IaC (CloudFormation) transferable to their Terraform/Nomad stack — state honestly, don't overclaim
- **Jargon level:** Technical (platform/SRE audience)
- **"Why them" hook:** Crypto-native + production discipline = bring reliability engineering to emerging agentic tech, which the JD explicitly asks for
## Bullet Plan (CONFIRMED 2026-06-15)
Crypto decision: signal ON résumé (Skills group 4 = "Programming & Crypto/Web3": Solidity, smart contracts, on-chain fundamentals — free-time/personal, honest per [[user_crypto]]) + full "why them" story in CL. Generali: keep all 3 (page fill, proven).
### Position 1 — Swisscom (6 bullets, 12 lines)
| # | ID | Achievement | Variant | Rationale |
|---|-----|------------|---------|-----------|
| 1 | SW-3 | K8s + GitLab CI/CD (lead) | 2L | Platform/SRE lead — K8s, CI/CD |
| 2 | SW-7 | Data Mesh self-serve data products consumed by eng teams + agentic data layer | 2L | Platform-as-service + agentic bridge. SCOPE object: "within Swisscom's company-wide Data Mesh" |
| 3 | SW-1 | AWS migration + CloudFormation IaC | 2L | AWS + IaC (transferable to Terraform; never name Terraform) |
| 4 | SW-2 | Component Owner, on-call SLA | 2L | Reliability / incident response |
| 5 | SW-4 | Data products + automation + 3rd-level RCA | 2L | Reliability / RCA |
| 6 | SW-6 | PySpark distributed processing | 2L | Spark (named NTH) + data infra |
### Position 2 — Bosch (4 bullets, 8 lines)
| # | ID | Achievement | Variant | Rationale |
|---|-----|------------|---------|-----------|
| 1 | BS-1 | ML inference containerization, 24/7 prod (flagship) | 2L | "ML infra / model serving in production" — core req |
| 2 | BS-4 | ELK + Grafana + Prometheus + Loki observability | 2L | Observability/monitoring/alerting |
| 3 | BS-3 | Application Owner — SLOs, reliability | 2L | SLO/reliability ownership |
| 4 | BS-2 | Multi-language data services consumed by teams | 2L | Platform consumers bridge |
### Position 3 — Fraunhofer (2 bullets, 4 lines)
| # | ID | Achievement | Variant | Rationale |
|---|-----|------------|---------|-----------|
| 1 | FC-1 | First Jenkins CI/CD from zero (0→1) + SCEDAS | 2L | "0→1 / platform-building" (named NTH) |
| 2 | FC-3 | Containerized microservices (Express.js/Docker) | 2L | Docker/microservices |
### Position 4 — Vizrt (2 bullets, 4 lines)
| # | ID | Achievement | Variant | Rationale |
|---|-----|------------|---------|-----------|
| 1 | VZ-1 | Distributed real-time backend (Python/C++) | 2L | Distributed backend; CNN/BBC scale |
| 2 | VZ-2 | A/V test suite + CI/CD quality gates | 2L | CI/CD |
### Position 5 — Generali (3 bullets, 6 lines)
| # | ID | Achievement | Variant | Rationale |
|---|-----|------------|---------|-----------|
| 1 | GN-1 | BDD + CI/CD ownership (Jenkins) | 2L | CI/CD initiative |
| 2 | GN-3 | Java/J2EE, XLDeploy, Camel/Spring Boot | 2L | Java breadth / page fill |
| 3 | GN-2 | UIPath RPA PoC | 2L | Page fill |
**Budget:** 17 variable bullets (34 rendered lines) + Skills 13 lines (4-3-2-2-2). Matches proven QuantCo 2-page fill. Verify at page-fill gate.
## Output Files
- Resume: `output/Kraken_SRE_AI_Agents/e2e_kraken_sre_ai_agents_resume.tex` (+ .pdf, 2 pages)
- Cover Letter: `output/Kraken_SRE_AI_Agents/e2e_kraken_sre_ai_agents_cover_letter.tex` (+ .pdf, 1 page, ~287 words)
- Critique: PENDING
## Status
- Phase 0: DONE
- Phase 1: DONE (17 confirmed → 18 generated; added SW-5 security bullet to close JD access-controls req + page fill)
- Phase 2 Resume:
- Summary: DONE (548 chars)
- Skills: DONE (4-3-2-2-2, crypto/Web3 group added)
- Position 1 Swisscom (7 bullets): DONE
- Position 2 Bosch (4 bullets): DONE
- Position 3 Fraunhofer (2 bullets): DONE
- Position 4 Vizrt (2 bullets): DONE
- Position 5 Generali (3 bullets): DONE
- Compile: DONE (2 pages, MiKTeX)
- Cover Letter: DONE (1 page, ~287 words; P1 hook = Kraken open-source AI-agent CLI + MCP, verified; crypto-native + production-discipline narrative; IaC honest CloudFormation-not-Terraform)
- Critique: CURRENT (87.2/100, 2026-06-15). PASS all gates; CL 299w/1pg, resume 2pg clean. Tier 1 = inject "developer experience/API-driven" vocab into SW-7 platform bullet + a skills line (JD's most-weighted theme, under-served). Honest gaps: Terraform, dedicated SRE title, agent-orchestration frameworks (do NOT fabricate). Crypto + production-ML edge is the lever. Ceiling ~90.
- **FINALIZED 2026-06-15** — submit-ready at 87.2, Tier 1 declined (finalize as-is). Submission PDFs: Dennis_Thiessen_Resume.pdf + Dennis_Thiessen_Cover_Letter.pdf
- **SENT 2026-06-15** — applied via Ashby. Comp unknown — verify clears 180k+ at recruiter stage. Await response.
- **CLOSED — REJECTED 2026-06-17** — Absage, no interview. Honest gaps (Terraform / dedicated SRE title / agent-orchestration frameworks) the likely filter; package was strong (87.2) but this req wanted closer infra/SRE pedigree. Do not reattempt this exact req.
- **Critique file:** output/Kraken_SRE_AI_Agents/critique_kraken_sre_ai_agents.md
- **Before send:** verify comp clears 180k+ all-in (Kraken does not publish CH band)
- Phase 2 Resume: PENDING
- Cover Letter: PENDING
- Critique: PENDING
- **Next:** (Phase 1 — bullet plan, this session)
- **Next CL:** /make-cl output/Kraken_SRE_AI_Agents/session_kraken_sre_ai_agents.md
- **Next Critique:** /critique output/Kraken_SRE_AI_Agents/session_kraken_sre_ai_agents.md
@@ -0,0 +1,97 @@
# Microsoft — Senior Software Engineer, Industry Solutions Engineering (ISE), Zürich
# Source: https://jobs.careers.microsoft.com/global/en/job/200040836
# Fetched 2026-07-03 via Eightfold PCSX API (apply.careers.microsoft.com), verbatim.
Overview
Do you enjoy solving problems, writing software, and working with customers? Do you want to join a team where learning about new technology is part of our work every day? Then, come join us! 
 
The Industry Solutions Engineering (ISE) team is a global engineering organization that works directly with customers looking to leverage the latest technologies to address their toughest challenges.  
 
We work closely with our customers engineers to jointly develop code for cloud-based solutions that can accelerate their organization. We work in collaboration with Microsoft product teams, partners, and open-source communities to empower our customers to do more with the cloud. We develop solutions side-by-side with our customers through collaborative innovation to solve their challenges. This work involves the development of broadly applicable, high-impact solution patterns and open-source software assets that contribute to the Microsoft platform.  
 
We are hiring a Senior Software Engineer with deep experience and expertise in designing and delivering solutions using modern software engineering practices and cloud technologies. You will be part of a cross-functional team of software engineers, data scientists, technical program managers, and designers who work side-by-side with high-impact and strategic customers and their engineers to build innovative solutions.  
 
As part of our team, you will thrive in working with a variety of technologies, not just Microsoft technology. You will solve exciting business problems, contribute to open source, and collaborate with Microsoft product teams.  
 
Microsofts mission is to empower every person and every organization on the planet to achieve more. As employees, we come together with a growth mindset, innovate to empower others, and collaborate to realize our shared goals. Each day we build on our values of respect, integrity, and accountability to create a culture of inclusion where everyone can thrive at work and beyond. 
Responsibilities
- Collaborates with appropriate stakeholders to determine user requirements for a scenario. 
- Drives identification of dependencies and the development of design documents for a product, application, service, or platform. 
- Creates, implements, optimizes, debugs, refactors, and reuses code to establish and improve performance and maintainability, effectiveness, and return on investment (ROI). 
- Leverages subject-matter expertise of product features and partners with appropriate stakeholders (e.g., project managers) to drive a workgroup's project plans, release plans, and work items. 
- Acts as a Designated Responsible Individual (DRI) and guides other engineers by developing and following the playbook, working on call to monitor system/product/service for degradation, downtime, or interruptions, alerting stakeholders about status and initiates actions to restore system/product/service for simple and complex problems when appropriate. 
- Proactively seeks new knowledge and adapts to new trends, technical solutions, and patterns that will improve the availability, reliability, efficiency, observability, and performance of products while also driving consistency in monitoring and operations at scale. 
- Embodies our culture and values 
Qualifications
Required/Minimum Qualifications (RQs/MQs) 
- Bachelor's degree in computer science, or related technical discipline AND 4+ years technical engineering experience with coding in languages including, but not limited to, C, C++, C#, Java, JavaScript, or Python 
- Familiarity with deploying and operating AI systems in production environments 
- Experience building or integrating AI/ML or LLM-based solutions, prompt engineering, RAG
- Understanding of model evaluation, data quality, and performance monitoring 
  
Additional or Preferred Qualifications (PQs) 
- Bachelor's degree in computer science OR related technical field AND technical engineering experience with coding in languages including, but not limited to, C, C++, C#, Java, JavaScript, or Python 
- German language would be beneficial
- Enjoy travel and are comfortable with travel up to 25% 
 
 
Our team prides itself on embracing a growth mindset, inspiring excellence, and encouraging everyone to share their unique viewpoints and be their authentic self. Join us and help create life-changing innovations that impact billions around the world! 
  
At Microsoft, we are seeking people who have a passion for the positive impact technology can have on communities and for making a difference in the world. Within ISE, you will find a wide range of backgrounds, perspectives, personal and cultural experiences which are vital to our success with our customers. Its an informal and flexible work environment, and youll be welcome to work in a way that best enables you to get your job done.   
  
We invest in your health,wellness,and financial future by offering a competitive package including a wide range of benefits built around your personal needs and those close to you.  
  
Benefits/perks listed below may vary depending on the nature of your employment with Microsoft and the country where you work. 
 
 
#ISEngineering 
#WSS
Software Engineering IC4 - The typical base pay range for this role across Switzerland is CHF 146,200.00 - CHF 245,900.00 per year. Certain roles may be eligible for benefits and other compensation.
Find additional benefits and pay information here:
https://careers.microsoft.com/v2/global/en/corporate-pay/switzerland-corporate-pay.html
This position will be open for a minimum of 5 days, with applications accepted on an ongoing basis until the position is filled.
Microsoft is an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to age, ancestry, citizenship, color, family or medical care leave, gender identity or expression, genetic information, immigration status, marital status, medical condition, national origin, physical or mental disability, political affiliation, protected veteran or military status, race, ethnicity, religion, sex (including pregnancy), sexual orientation, or any other characteristic protected by applicable local laws, regulations and ordinances. If you need assistance with religious accommodations and/or a reasonable accommodation due to a disability during the application process, read more about requesting accommodations.
@@ -0,0 +1,288 @@
# Critique: Microsoft — Senior Software Engineer, Industry Solutions Engineering (ISE), Zürich (req 200040836)
**Resume File:** `output/Microsoft_ISE_Senior_SWE/e2e_microsoft_ise_resume.tex` (2 pages, compiled clean)
**Cover Letter File:** `output/Microsoft_ISE_Senior_SWE/e2e_microsoft_ise_cover_letter.tex` (1 page, 299 words)
**JD:** `output/Microsoft_ISE_Senior_SWE/JD_microsoft_ise.txt` — verbatim live fetch 2026-07-03 via Eightfold PCSX API (JD integrity: PASS)
**Date:** 2026-07-03 · **Pass:** 2 (lens reused from Pass 1 — do not rebuild)
---
## Changes Since Pass 1 (applied 2026-07-03, user-directed)
Resume only — CL untouched (passed all checks in Pass 1). Compile verified: 2 pages, summary 5 lines (no orphan), all skills lines single-line, page break identical to baseline.
1. **T1-1:** AI & ML in Production line now reads "…MLOps, model evaluation, data-quality & performance monitoring" — JD's RQ triple complete verbatim.
2. **T1-2:** Software & Data Engineering line 3 now reads "Open-source stack: Apache Kafka, Apache Airflow, PySpark / Spark, Hadoop/Impala; batch & streaming" ("ingestion" dropped for line fit; no contribution claim made).
3. **T2-1/2/3 (single summary rewrite):** "…for agentic AI and LLM workloads, run Python services on Kubernetes, and carry on-call duty as Component Owner." — adds LLM to the recruiter window and binds on-call to the Component Owner role (precision fix); "I work embedded in cross-functional customer and stakeholder teams." — adds the JD's pod descriptor. Tail clause "platform co-ownership, workshops, training" removed to hold the 5-line budget; that signal remains verbatim in BS-3 ("Co-owned the TIBCO Spotfire analytics platform… training engineering users") and GN-1.
4. **T2-4 (conditional metric): NOT applied** — KB check of `experience_bosch.md` / `experience_swisscom.md` found no verified quantitative metric for BS-1/SW-1 beyond 24/7 and 300mm (already used). Adding one would violate anti-fabrication.
### Re-scored dimensions (others unchanged)
| Dimension | Pass 1 | Pass 2 | Why |
|---|---|---|---|
| ATS Keywords (15%) | 8.0 | 9.0 | 20/20 — "model evaluation", "open source", "cross-functional" all present; remaining items semantic-only by nature |
| Summary (10%) | 8.5 | 9.0 | LLM in the 10-second window, cross-functional added, on-call claim probe-proofed |
| Skills (10%) | 8.5 | 9.0 | RQ vocabulary complete, open-source identity named, still zero fabrications |
**Score trajectory: 83.3 → 85.8/100.** At/above the 85+ submit band; theoretical max ~86.5 (residual: no hard metrics in KB, page-2 fill exception). Hard ceiling ~88 unchanged (Azure, OSS contributions — not resume-editable).
**Interview likelihood (updated):** ATS 95% · Recruiter 80% · HR 80% (RQ triple now checkbox-verbatim) · HM 65% (open-source affinity + model-eval line remove two objections) · Panel 70% (unchanged — depth questions remain; bridge points in Part 6 cover them).
---
## Part 1: Domain-Specialist Lens
### Reviewer Persona
ISE engineering manager or principal SWE in EMEA running the hiring-manager screen for a Zürich IC4 req. Daily work: scoping customer engagements, unblocking cross-functional pods (SWE + DS + TPM + design), reviewing code on customer repos in whatever stack the customer runs. Has read 50+ CVs for this posting. Eye-rolls at: buzzword AI claims with no operational substance ("passionate about GenAI"), tool soup, solo-hero claims over org-scale systems, consultants who architect but don't code. Genuinely impressed by: production evidence under real constraints, breadth across stacks ("not just Microsoft" is in their own JD), customer-embedded engineering, scope-honest claims, and — for this specific req — German + already-in-Switzerland (no visa, no relocation).
### Company Context
ISE is Microsoft's global non-billing co-engineering org inside MCAPS: engineers write production code side-by-side with strategic customers' engineers, then feed patterns back into Microsoft products and open source. Their public Engineering Fundamentals Playbook codifies the working style (code-with, testing, observability, agile ceremonies). Zürich req + "German beneficial" → Swiss/DACH strategic accounts (banks, pharma, industrials). Strategic backdrop: USD 400M Swiss datacenter expansion (June 2025) with in-country data residency — regulated Swiss enterprises are the customer base. Recent ISE publication themes: enterprise RAG with document-permission propagation (Entra ID → AI Search), coordinator-based multi-agent architectures, vector/hybrid search evaluation.
### JD Vocabulary Extraction (top 10, ranked)
| # | JD Term | Freq/Placement | Meaning at ISE | Resume Match? |
|---|---|---|---|---|
| 1 | deploying and operating AI systems in production | RQ line | Not research demos — AI running for real customers, operated | SEMANTIC (ML inference in 24/7 fab; "Production AI Foundations" headline) |
| 2 | LLM-based solutions, prompt engineering, RAG | RQ line | Hands-on LLM integration in enterprise settings | YES verbatim (LLM, RAG, prompt engineering in skills) |
| 3 | model evaluation, data quality, performance monitoring | RQ line | Can you tell if the AI solution works and keeps working | PARTIAL — data quality + performance monitoring YES; **model evaluation ABSENT** |
| 4 | modern software engineering practices | Overview + RQ | Playbook fundamentals: CI/CD, code review, testing, design docs | SEMANTIC (CI/CD, code review, TDD, quality gates) |
| 5 | cloud technologies / cloud-based solutions | 4× | Azure-centric but explicitly polyglot org | YES (AWS named honestly, cloud-native) |
| 6 | DRI, on call, monitor/restore, playbook | Responsibilities | Production ownership culture | SEMANTIC-STRONG ("on-call SLA", "incident response and restoration") |
| 7 | cross-functional team (SWE + DS + TPM + designers) | Overview | Pod structure of every engagement | **NO verbatim** (semantic: stakeholder/product-owner partnering) |
| 8 | open source | 3× | Contribution + "not just Microsoft" identity | **NO** (stack is open-source but never named as such) |
| 9 | C, C++, C#, Java, JavaScript, Python | RQ + PQ | Polyglot flexibility, meet customers in their language | YES — 5 of 6 named |
| 10 | observability, availability, reliability | Responsibilities | Operations-at-scale mindset | YES verbatim (skills group name) |
### Domain Vocabulary Map
| Resume Currently Says | Should Say for This JD | Why |
|---|---|---|
| data-quality & performance monitoring | model evaluation, data-quality & performance monitoring | Completes the JD's RQ triple verbatim; backed by IBM AI Engineering cert + operating a production classifier |
| Apache Kafka, Apache Airflow, … (unlabeled) | Open-source data stack: Kafka, Airflow, Spark… | JD says "open source" 3×; his stack IS open source — free honest keyword + "not just Microsoft" culture signal |
| customer and stakeholder teams | cross-functional customer and stakeholder teams | JD's pod descriptor; true of his PO/analyst/domain-team work |
| agentic AI workloads (summary) | agentic AI / LLM workloads | Puts "LLM" in the recruiter's 10-second window, not just skills |
### Gap Ranking
- **Fatal:** none. Every RQ line is covered or truthfully bridgeable.
- **Serious:** (1) "model evaluation" — RQ-line term, currently absent (bridgeable: JD asks only *understanding*); (2) Azure — competitors are Azure-native; resume/CL handle it honestly (AWS named, transfer argued) but it remains a real gap; (3) open-source *contributions* — JD says "contribute to open source"; he has none notable (cannot claim — only the stack can be named); (4) LLM depth is integration-side (LiteLLM APIs, custom GPTs), not solution-building — hedged correctly, but Azure-OpenAI-native candidates will out-depth him here.
- **Cosmetic:** "design documents", "growth mindset", JavaScript depth, C.
### Methodology Transfer Test (top 5 achievements)
| Achievement | How the ISE reviewer sees it |
|---|---|
| SW-7 governed data products for agentic AI | "He already solves the governed-grounding problem our enterprise-RAG engagements hit — permission-aware, metadata-managed data feeding LLM retrieval." ✓ natural |
| BS-1 ML inference into 24/7 fab | "Deploying and operating AI in production under constraints harsher than most customer sites — no maintenance windows, yield on the line." ✓ natural — flagship |
| SW-2 Component Owner, on-call ETL | "That's our DRI model: accountable, on call, restores service." ✓ natural |
| BS-3 Spotfire platform co-ownership + training users | "Customer-facing platform engineering — internal customers, but the code-with muscle is there." ✓ natural |
| SW-1 AWS migration of his domains' ETL | "Cloud migration delivery — wrong cloud for us, right shape of work; concepts transfer." ✓ with the honest-AWS framing doing the bridging |
All five transfer sentences write naturally — the reframing has landed. No bullet requires the reader to do the translation themselves.
### Competitive Landscape
- **Obvious fit:** Azure-native senior SWE from a consultancy (Avanade/Accenture) or ex-product-team Microsoft engineer with OSS visibility and Azure OpenAI project work.
- **Dennis's edge:** genuine enterprise data-platform depth (the *foundation* layer of every AI engagement), regulated-industry scars (telecom, insurance, semiconductor), production ML under 24/7 constraints, native German for DACH accounts, Bern-resident EU citizen (zero visa/relocation friction), cross-industry ramp record that mirrors ISE's engagement model.
- **Their edge:** Azure service fluency, LLM solution-building portfolios, public OSS contributions.
---
## Part 2: Five-Perspective Read-Through
### ATS Robot (keyword scan)
| # | Keyword | Match |
|---|---|---|
| 1 | Python | YES verbatim (bold, multiple) |
| 2 | Java | YES verbatim |
| 3 | C# | YES verbatim |
| 4 | C++ | YES verbatim |
| 5 | JavaScript | YES verbatim |
| 6 | AI systems in production | SEMANTIC (ML inference deployment; Production AI Foundations) |
| 7 | LLM | YES verbatim |
| 8 | RAG | YES verbatim |
| 9 | prompt engineering | YES verbatim |
| 10 | model evaluation | **NO** |
| 11 | data quality | YES verbatim |
| 12 | performance monitoring | YES verbatim |
| 13 | cloud | YES verbatim |
| 14 | modern software engineering practices | SEMANTIC (CI/CD, code review, TDD) |
| 15 | DRI / on-call / restore | SEMANTIC-STRONG (on-call SLA, incident response and restoration) |
| 16 | observability | YES verbatim (group name) |
| 17 | open source | **NO** |
| 18 | cross-functional | **NO** |
| 19 | stakeholders | YES verbatim |
| 20 | German | YES verbatim |
**Match rate: 17/20 = 85% — PASS.** Top 3 truthfully addable: model evaluation (RQ line), open source (3× in JD), cross-functional (pod descriptor).
### Recruiter Glance (10 seconds)
**Verdict: FORWARD (~80%).** "Staff Data & AI Engineer" at Swisscom + tagline with Python/Java/AWS/Kubernetes + "Production AI Foundations & Co-Engineering" + Bern/German-citizen/Zürich-ready/travel-ready line answers every logistics question a Swiss recruiter has before they've read a bullet. Summary's first two lines land data products + AWS + agentic AI. Non-technical reader still understands what he does. Only soft spot: "Co-Engineering" is ISE-insider vocabulary that a generic recruiter may skim past — but this req's recruiter knows the org's own word.
### HR Screen (30 seconds)
**Verdict: PHONE SCREEN (~75%).** Degree ✓ (M.Eng., thesis 1.0), 4+ years coding ✓ (11+), languages of the JD list visibly present ✓, AI-in-production familiarity visible in both summary and a dedicated "AI & ML in Production" skills group ✓, German ✓, travel ✓. First bullet per position is the strongest JD-relevant one in each block (SW-7 grounding for agentic AI; BS-1 production ML; FC-2 applied ML; VZ-1 scale; GN-1 ownership/training). The one RQ term a checklist-reader can't tick verbatim: "model evaluation."
### Hiring Manager (2 minutes)
**Verdict: INTERVIEW (~60%).**
**Top 3 observations:**
1. The Bosch bullet is the credibility anchor — "deploying and operating AI systems in production" answered with a 24/7 wafer fab, which is harsher than most customer environments they scope.
2. The Swisscom story maps onto their current engagement portfolio (governed data → enterprise RAG grounding), and the claims are scope-honest ("within Swisscom's company-wide Data Mesh", "my domains' ETL stack") — no solo-hero smell.
3. The gap they'll price in: AWS not Azure, and LLM work that is integration-grade rather than solution-building-grade. The honest framing earns trust but doesn't erase the gap against Azure-native applicants.
**Predicted first interview question:** "Your cloud depth is AWS — walk me through how you'd ramp onto Azure in the first weeks of a customer engagement."
### Technical Reviewer (10 minutes)
**Truthfulness: PASS — all claims verified.**
| Claim | Verified? | Source |
|---|---|---|
| Governed data products within company-wide Data Mesh (scoped) | ✓ | memory: swisscom_datamesh_ownership — verb/object scoped exactly as mandated |
| ML inference into 24/7 fab, 300mm lines | ✓ | BS-1, bundle flagship |
| Spotfire platform co-owned, Application Owner | ✓ | memory: taf_2022_spotfire ("co-owned" hedge correct) |
| TAF 2022 co-presentation (CL only) | ✓ | memory-verified; correctly reserved for CL |
| LiteLLM, custom GPTs, Copilot, Kiro; **no LangChain** | ✓ | config ban respected — verified toolchain only |
| "Contributed" ML/NLP to ARTUS | ✓ | hedged verb as mandated |
| Component Owner on-call, incident response | ✓ | his components only — scope-disciplined |
| 11+ years | ✓ | May 2015 → present = 11.2 yrs (accurate; session file's "12+" was the estimate, resume is the corrected figure) |
| AWS SAA active to Sep 2027; no Azure claim anywhere | ✓ | config + honest-AWS strategy |
| Security Champion excluded | ✓ | forced exclusion honored (JD has no security gate) |
| Capgemini absent, Generali = Hamburg, education dates/overlap | ✓ | memory corrections all honored |
**Consistency: 1 minor precision note.** Summary clause "run Python services on Kubernetes under on-call SLA" fuses two true facts (SW-3: operates Python apps on K8s; SW-2: on-call SLA as Component Owner for the Fulfillment ETL). A probing interviewer asking "what's the SLA on your K8s services?" gets an answer about the ETL pipelines instead. Defensible but worth a comma's worth of precision — Tier 2.
**Over-saturation:** none. Highest-frequency terms: Python (~10 incl. skills — acceptable as the JD's lead language), AWS (~7), Kubernetes (~5). No term past the concern threshold in bullet prose.
---
## Part 3: Eight-Dimension Scoring
| Dimension | Score | Weight | Weighted | Notes |
|---|---|---|---|---|
| ATS Keywords | 8.0/10 | 15% | 1.20 | 85% match; misses "model evaluation" (RQ line), "open source" (3×), "cross-functional" — all truthfully addable |
| Summary | 8.5/10 | 10% | 0.85 | Strong bridge (data products → AI foundation → customer-embedded); "LLM" absent from recruiter window; one precision nit |
| Skills Section | 8.5/10 | 10% | 0.85 | Group names are domain-perfect ("AI & ML in Production", "Observability & Engineering Quality"); verified GenAI toolchain, zero fabrications |
| Bullet Quality | 8.5/10 | 25% | 2.13 | 18 bullets, all char-clean, scope-disciplined, every top bullet passes the transfer test; light quantification is a KB limit, not a craft failure |
| Publications / Credentials | 8.0/10 | 10% | 0.80 | No pubs (industry resume) — certs carry it: AWS SAA active, Udacity 2026 (fresh), IBM AI Engineering (props up model-eval claim), thesis 1.0 |
| Narrative Coherence | 9.0/10 | 15% | 1.35 | The cross-industry arc IS the ISE pitch; headline → summary → position headers tell one uninterrupted story |
| Page Fill & Visual | 7.0/10 | 5% | 0.35 | 2pp clean, no orphans; page 2 ends ~2/3 down — exceeds ≤3-line rule, documented as unavoidable without KB-unsupported padding (sent Google baseline had the same and cleared screens) |
| Credibility Signals | 8.0/10 | 10% | 0.80 | CNN/BBC/Al Jazeera, 300mm fab, Component/Application Owner titles, AWS cert; no OSS/pubs, few hard metrics |
| **Total** | | **100%** | **83.3** | |
**Score: 83.3/100** — Strong (8084 band): 12 targeted improvements push toward ceiling.
---
## Part 4: Interview Likelihood
| Reader | Probability | Key Factor |
|--------|------------|------------|
| ATS | 90% PASS | 85% keyword rate; all languages verbatim |
| Recruiter (10s) | 80% forward | Staff title + Zürich-ready/German/travel logistics line |
| HR (30s) | 75% phone screen | Every RQ checkable except "model evaluation" verbatim |
| Hiring Manager (2m) | 60% interview | Bosch 24/7 production-AI anchor + zero-friction Swiss hire vs. Azure-native competition |
| Technical Panel (10m) | 70% yes | Claims will survive probing; model-eval/LLM-building depth is the soft spot |
**Ceiling analysis:**
| Scenario | Score |
|---|---|
| Current | 83.3 |
| + Tier 1 applied | ~85.3 |
| Theoretical max (this candidate + this JD) | ~86.5 |
| Hard ceiling (structural: Azure, OSS contributions, LLM solution-building) | ~88 |
| What would close the rest | An Azure cert (AZ-104/AZ-305) or one public OSS contribution — not resume-editable today |
---
## Part 5: Actionable Improvements
### Tier 1 (HIGH — do these)
1. **Add "model evaluation" to the AI & ML in Production skills line.** (+1.0)
- Current: `\skilldash{\textbf{ML} inference deployment (Docker/Kubernetes), MLOps, data-quality \& performance monitoring}`
- Proposed: `\skilldash{\textbf{ML} inference deployment (Docker/Kubernetes), MLOps, model evaluation, data-quality \& performance monitoring}`
- Why: completes the JD's RQ triple ("model evaluation, data quality, and performance monitoring") verbatim. Truthful at the JD's own bar — it asks for *understanding*, backed by IBM AI Engineering Specialization (model building/eval coursework), operating an image classifier in production at Bosch, and thesis NN work. ~108 rendered chars — stays 1 line.
2. **Name the open-source stack.** (+1.0)
- Current (Software & Data Engineering, line 3): `\skilldash{\textbf{Apache Kafka}, \textbf{Apache Airflow}, batch \& streaming ingestion, \textbf{PySpark} / Spark, Hadoop/Impala}`
- Proposed: `\skilldash{Open-source data stack: \textbf{Apache Kafka}, \textbf{Apache Airflow}, \textbf{PySpark} / Spark, Hadoop/Impala; batch \& streaming}`
- Why: JD says "open source" 3× and "variety of technologies, not just Microsoft" is ISE identity. He cannot claim contributions (session tripwire — correctly not claimed), but the stack he runs *is* open source; naming it is a free, honest ATS + culture hit. Verify char count with char_count.py after edit.
### Tier 2 (MEDIUM — optional)
1. **"cross-functional" in the summary.** "I work embedded with customer and stakeholder teams" → "I work embedded in cross-functional customer and stakeholder teams" (+0.5; check summary stays 5 lines).
2. **Summary precision on on-call clause.** "…and run Python services on Kubernetes under on-call SLA" → "…run Python services on Kubernetes, and hold on-call responsibility as Component Owner" (+0.4 probe-proofing; the current phrasing binds the SLA to the K8s services, which the KB doesn't strictly support).
3. **"LLM" into the summary's agentic clause.** "data foundation for agentic AI workloads" → "data foundation for agentic AI and LLM workloads" (+0.3 recruiter-window reinforcement).
4. **Conditional:** if `experience_bosch.md` or `experience_swisscom.md` holds a verified metric (throughput, latency, cost, team count) for BS-1 or SW-1, add it (+0.5). Do NOT invent one.
### Tier 3 (COSMETIC — skip)
1. Page-2 bottom whitespace (~1/3 page) — accepted limitation; padding would violate anti-fabrication.
2. "design documents" / "growth mindset" keyword stuffing — reads as pandering.
3. CL section "Certifications & Awards" contains only certifications — standard template heading, leave.
**Verdict: Apply Tier 1 (both edits, ~5 minutes via /edit-resume). Tier 2 items 13 are cheap and worth taking in the same pass. Tier 3 skip.**
---
## Part 6: Interview Bridge Points
| Resume Topic | ISE Equivalent | Opening Line |
|---|---|---|
| SW-7 governed data products for agentic AI | Enterprise RAG grounding / permission-aware retrieval | "The SharePoint-permissions-to-AI-Search problem your team blogged about is the problem I work daily: making governed, access-controlled data queryable by LLM workloads without breaking its contracts." |
| BS-1 ML inference into 24/7 fab | "Deploying and operating AI systems in production" | "A wafer fab has no maintenance windows — a bad deployment costs yield. That constraint taught me the deployment discipline I'd bring to customer production systems." |
| SW-2 Component Owner + on-call | DRI model | "Component Owner at Swisscom is your DRI: I monitor, I get paged, I restore, and I write the runbook so the next restore is faster." |
| BS-3 Spotfire platform + TAF 2022 talk | Code-with / customer-facing engineering | "My customers were internal — fab engineers — but the loop was the same: co-own the platform, extend it in their stack, train them, present it publicly." |
| AWS → Azure | Cloud-agnostic engagement readiness | "I'm certified on AWS at the architecture level; the primitives map — my first week on an Azure engagement is vocabulary, not concepts. ISE's own playbook says meet customers in their stack." |
| LiteLLM + custom GPTs | LLM integration / prompt engineering | "I've built LLM API integrations through LiteLLM and grounded custom GPTs in domain knowledge — the unglamorous 80% of enterprise LLM work is data grounding, and that's my home turf." |
| Cross-industry ramp (5 industries, 3 countries + Shanghai) | ISE engagement model | "Every 13 years my job has been: walk into an unfamiliar enterprise, learn its domain, ship production code. ISE just compresses that cycle." |
| Model evaluation (prep for the probe) | Eval understanding | "Operating a defect classifier means watching its precision drift against fab ground truth; on the data side I enforce quality contracts — I know eval from the operational end, and IBM's AI Engineering curriculum covered the formal end." |
---
## Part 7: Cover Letter Critique
### 6A. Anti-Pattern Checklist — PASS 8/8
- ✓ No generic opener (opens with the Engineering Fundamentals Playbook)
- ✓ No CV rehash — adds context (yield framing, "one company at a time")
- ✓ Names specifics: Playbook, ISE SharePoint→AI Search RAG post, USD 400M Swiss datacenter
- ✓ Clear "why THIS role": "doing that across many enterprises instead of inside one" (P1)
- ✓ Strongest qualification early (P1 working-style match, P2 opens with the Swisscom AI-data foundation)
- ✓ No apologetic gap language — AWS handled positively ("the practices transfer, and I learn platforms quickly")
- ✓ Active close ("glad to talk through where your current engagements need this profile")
- ✓ Credentials woven into body (SAA in P4, TAF in P3)
### 6B. Tailoring Signals — PASS 5/5
Playbook + ISE blog post + datacenter investment; JD terms supplementing resume (enterprise RAG, AI Search, side by side, observability as fundamentals, data residency); culture reference (code-with, languages-and-frameworks); specific candidate-method↔need connection (governed data ↔ permission-propagation RAG); institution type correctly industry, tone matches.
### 6C. Industry Checks — PASS
Business value present ("a failed deployment costs yield"; data residency for regulated customers); no academia-exit framing needed; jargon technical but HM-readable per plan (deliberate choice, first reader is likely the ISE team, not central HR).
### 6D. CL ATS Keywords — PASS
Supplements resume with: enterprise RAG, AI Search, LLM solutions, production code, observability, on-call, data residency, German, travel — 8+ of 10 high-priority terms present across the package.
### 6E. Structural — PASS
299 words / 4 paragraphs / 1 page ✓ (industry 250300). Every claim traceable to a resume bullet or verified memory (TAF 2022 = memory-verified; deliberately CL-only as a deepener of BS-3). Quantified: USD 400M, 24/7, 25%-travel-implied "ready for the travel", req number. Sentence lengths vary (8-word closer to 30-word openers); one contraction ("I'm"); human details land ("costs yield", "one company at a time"). 0 em-dashes.
### 6F. Package Cohesion — PASS
Resume stands alone ✓ (interview-earning without CL). CL deepens rather than introduces ✓. No contradictions in dates, titles, claims ✓. Not a prose restatement ✓. Page budget 2+1=3 ✓.
**Hook verification (step 8b):** all three named artifacts verified live 2026-07-03 with URLs logged in the session file (Playbook; devblogs.microsoft.com/ise/sharepoint-doc-level-access; USD 400M announcement 2025-06-02). No factual errors found.
---
## Part 8: Post-Generation Verification
### Mechanical
- [x] Char limits: 18/18 variable bullets within max (189210, max 218, zero OVER)
- [x] Orphan check: all 2L bullets fill line 2 ≥70% (visual PDF check)
- [x] Page fill: **EXCEPTION** — page 2 ends ~2/3 down (> 3-line rule); documented accepted tradeoff, matches sent-and-cleared Google baseline
- [x] Bullet ordering matches approved Phase 1 plan (incl. both authorized fillers FC-3, GN-2)
### Content
- [x] ATS ≥70% (85%)
- [x] Provenance flags respected (no false publication/award claims; Security Champion excluded; funding n/a)
- [x] No forbidden terms (LangChain absent; no LOC/test counts; no code-folder names)
- [x] No inflation (hedged: "Contributed" ARTUS, "Co-owned" Spotfire; scoped: "within company-wide Data Mesh", "my domains' ETL stack")
- [x] Publications n/a (industry resume)
- [x] CL claims traceable to resume/memory
- [x] AI fingerprint: banned words CLEAN, 0 rendered em-dashes (both docs), no vague -ing bullet endings, no generic CL opener, sentence variety OK
### Structural
- [x] "Microsoft", "Zürich", "Swisscom", "Fraunhofer" spelled correctly throughout
- [x] Both .tex files compile standalone (MiKTeX, 2pp + 1pp)
- [x] Date format consistent (Mon YYYY -- Mon YYYY); education overlap preserved as mandated
- [x] Email dennis@thiessen.io in both ✓ (config match)
- [x] Page counts: resume 2, CL 1 ✓
**Failures escalated to Tier 1: none.** (Page-fill exception documented, not escalated — padding would require KB-unsupported content.)
---
*End of critique — Pass 1, 2026-07-03. Lens persists for any re-critique.*
@@ -0,0 +1,50 @@
\documentclass[11pt,a4paper,roman]{moderncv}
\usepackage[english]{babel}
\moderncvstyle{classic}
\moderncvcolor{green}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{ragged2e}
\usepackage[scale=0.80]{geometry}
\usepackage[version=4,arrows=pgf-filled]{mhchem}
\renewcommand*{\makeletterclosing}{\par\vspace{2ex}\closingname\par}
\microtypesetup{expansion=false}
% ========== HEADER ==========
\name{Dennis}{Thiessen, M.Eng.}
\address{Bern, Switzerland}{}{}
\phone[mobile]{+41~795~955~585}
\email{dennis@thiessen.io}
\extrainfo{\href{https://linkedin.com/in/dennis-thiessen}{linkedin.com/in/dennis-thiessen}}
% ============================
\begin{document}
\recipient{Hiring Team}{Industry Solutions Engineering (ISE)\\Microsoft Switzerland GmbH\\Z\"urich, Switzerland}
\date{\today}
\opening{Dear ISE Hiring Team,}
\makelettertitle
\begin{justify}
% P1 — Hook: Engineering Fundamentals Playbook / code-with model
ISE's public Engineering Fundamentals Playbook describes a working style I recognize: production code written side by side with the customer's engineers, in their languages and frameworks, with testing and observability treated as fundamentals. Doing that across many enterprises instead of inside one is why I want the Senior Software Engineer position in ISE Z\"urich (req.\ 200040836).
% P2 — Swisscom: data foundation for agentic AI, LLM integration, production ownership
At Swisscom I build governed data products with active metadata on AWS, inside the company-wide Data Mesh. They are the grounded data foundation our agentic AI workloads query. So when your team wrote about propagating SharePoint permissions into AI Search for enterprise RAG, that problem looked familiar: making governed, access-controlled data usable for LLM solutions is my daily work, from LiteLLM API integrations to custom GPTs grounded in domain knowledge. As Component Owner I carry on-call responsibility for business-critical pipelines.
% P3 — Cross-industry ramp record + Bosch production ML and customer-facing platform work
Becoming productive fast inside an unfamiliar enterprise is the pattern of my career: applied research at Fraunhofer, semiconductor manufacturing at Bosch, insurance at Generali, broadcast in Norway at Vizrt, telecom at Swisscom, and a master's thesis written in Shanghai. At Bosch I moved containerized ML inference into a 24/7 wafer fab, where there are no maintenance windows and a failed deployment costs yield. I also co-owned the Spotfire analytics platform for internal engineering customers and co-presented it at the TIBCO Analytics Forum 2022. Embedded engineering with customer teams is what I already do, one company at a time.
% P4 — Why Microsoft Switzerland now + honest AWS positioning + call to action
Microsoft's USD 400 million Swiss datacenter expansion, with in-country data residency for regulated customers, will bring ISE Z\"urich exactly the enterprises I know from the inside. My cloud depth is AWS (Solutions Architect certified); the practices transfer, and I learn platforms quickly. I'm a native German speaker in Bern, ready for the travel, and glad to talk through where your current engagements need this profile.
\end{justify}
\vspace{0.3cm}
% ========== CUSTOMIZE THESE ==========
{Sincerely,\\
Dennis Thiessen, M.Eng.\\
Staff Data, Analytics \& AI Engineer\\
Swisscom (Schweiz) AG}
% ======================================
\end{document}
@@ -0,0 +1,163 @@
\documentclass{resume}
\usepackage{hyperref}
\usepackage{enumitem}
\usepackage{fontawesome}
\usepackage{tikz}
\usepackage{graphicx}
\hypersetup{
colorlinks = true,
linkcolor = [rgb]{0.9,0.4,0.4},
anchorcolor = [rgb]{0.9,0.4,0.4},
citecolor = [rgb]{0.4,0.4,0.4},
filecolor = [rgb]{0.4,0.4,0.4},
urlcolor = [rgb]{0.0,0.0,0.99},
}
\usepackage{xcolor}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[version=4,arrows=pgf-filled]{mhchem}
\usepackage[includefoot,left=0.5in,top=0.5in,right=0.5in,bottom=0.2in,textwidth=7.5in,textheight=10.8in]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[R]{\hfill \thepage/\pageref{LastPage}}
\newcommand{\tab}[1]{\hspace{.2667\textwidth}\rlap{#1}}
\newcommand{\itab}[1]{\hspace{0em}\rlap{#1}}
%----------------------------------------------------------------------------------------
% HEADER
%----------------------------------------------------------------------------------------
\name{Dennis Thiessen, M.Eng.}
\address{\href{https://linkedin.com/in/dennis-thiessen}{LinkedIn}}
\address{dennis@thiessen.io \\ +41 795 955 585}
\address{Bern, Switzerland $\vert$ German citizen (EU) $\vert$ Open to Z\"urich (on-site / hybrid) $\vert$ Travel-ready}
\address{{Staff Data \& AI Engineer $\vert$ Python $\cdot$ Java $\cdot$ AWS $\cdot$ Kubernetes $\vert$ Production AI Foundations \& Co-Engineering}}
\begin{document}
\vspace{-0.15cm}
%----------------------------------------------------------------------------------------
% SUMMARY
%----------------------------------------------------------------------------------------
\begin{rSection}{Summary}
Staff data \& AI engineer with 11+ years shipping production software across telecom, manufacturing, broadcast and insurance. At Swisscom I build governed \textbf{data products} on \textbf{AWS} (Glue, Athena/Iceberg, \textbf{Airflow}), the grounded data foundation for agentic \textbf{AI} and \textbf{LLM} workloads, run \textbf{Python} services on \textbf{Kubernetes}, and carry on-call duty as Component Owner. At Bosch I moved \textbf{ML} inference into a 24/7 semiconductor fab. I work embedded in cross-functional customer and stakeholder teams. \textbf{AWS} Certified Solutions Architect; native German, fluent English.
\end{rSection}
\vspace{-0.15cm}
%----------------------------------------------------------------------------------------
% TECHNICAL SKILLS — Format C, 5 groups (4-3-2-2-2)
%----------------------------------------------------------------------------------------
\begin{rSection}{Technical Skills}
\begin{skillgroup}{Software \& Data Engineering}
\skilldash{\textbf{Python} (expert), \textbf{Java}, C\#, SQL, Bash, JavaScript/TypeScript; REST APIs, FastAPI, pytest}
\skilldash{ETL/ELT pipeline design, data modeling, \textbf{data products}, data governance \& data quality}
\skilldash{Open-source stack: \textbf{Apache Kafka}, \textbf{Apache Airflow}, \textbf{PySpark} / Spark, Hadoop/Impala; batch \& streaming}
\skilldash{Oracle, Teradata, Redshift, Athena, MS SQL, Postgres; SQL performance tuning, data warehousing}
\end{skillgroup}
\begin{skillgroup}{Cloud Platform \& Infrastructure}
\skilldash{\textbf{AWS} (S3, Glue, Athena/Iceberg, Redshift, Lambda, Step Functions, CloudWatch) -- SAA-certified}
\skilldash{Infrastructure as Code (CloudFormation), serverless \& event-driven architecture, ECR/ECS}
\skilldash{\textbf{Kubernetes}, \textbf{Docker}, \textbf{GitLab CI/CD}, Jenkins, Ansible, Linux, Git}
\end{skillgroup}
\begin{skillgroup}{AI \& ML in Production}
\skilldash{\textbf{ML} inference deployment (Docker/Kubernetes), MLOps, model evaluation, data-quality \& performance monitoring}
\skilldash{\textbf{LLM} API integration (\textbf{LiteLLM}), custom GPTs with domain grounding (RAG), prompt engineering, Copilot, Kiro}
\end{skillgroup}
\begin{skillgroup}{Observability \& Engineering Quality}
\skilldash{\textbf{Grafana}, \textbf{Prometheus}, Loki, ELK (Elasticsearch, Logstash, Kibana), alerting \& incident response}
\skilldash{Test automation (pytest, BDD/Serenity, Selenium), CI/CD quality gates, code review, TDD}
\end{skillgroup}
\begin{skillgroup}{Certifications}
\skilldash{\textbf{AWS Certified Solutions Architect -- Associate} (active to Sep 2027), Data Engineering with AWS (Udacity)}
\skilldash{iSAQB CPSA -- Foundation (2016), ITIL Foundation (2016), IBM AI Engineering Specialization}
\end{skillgroup}
\end{rSection}
\vspace{-0.15cm}
%----------------------------------------------------------------------------------------
% PROFESSIONAL EXPERIENCE
%----------------------------------------------------------------------------------------
\begin{rSection}{Professional Experience}
% --- Swisscom (Oct 2023 -- Present) — SW-7, SW-3, SW-1, SW-2, SW-4, SW-6 ---
\begin{rSubsection}{Governed Data Products \& AI-Ready Platform Engineering}{\textcolor{black!60}{Oct 2023 -- Present}}{Staff Data, Analytics \& AI Engineer, Swisscom (Schweiz) AG}{Bern, Switzerland}
\item Build governed \textbf{data products} with active metadata management within Swisscom's company-wide \textbf{Data Mesh} on \textbf{AWS} (Glue, Athena, CloudFormation), the grounded data foundation that agentic \textbf{AI} workflows query.
\item Design, deploy and operate \textbf{Python} data applications on \textbf{Kubernetes} with \textbf{GitLab CI/CD}, owning containerized delivery from build and test through production rollout and operation in an agile DevOps team.
\item Migrated my domains' \textbf{ETL} stack from Teradata/Oracle to Swisscom's cloud-native \textbf{AWS} platform (Glue, Athena/Iceberg, Redshift, \textbf{Airflow}), cutting operational overhead with serverless, scalable processing.
\item Own business-critical Fulfillment \textbf{ETL} pipelines (Oracle, \textbf{Kafka} to Teradata in \textbf{Python}) as Component Owner, accountable for data quality, governance, incident response and restoration under on-call SLA.
\item Deliver data products, dashboards and analyses for B2B stakeholder teams, partnering with product owners on backlog priorities and running root-cause analysis under 2nd/3rd-level support duty.
\item Apply \textbf{PySpark} and distributed data processing in the Swisscom Data Lake, extending \textbf{Python} and \textbf{SQL} pipelines to large-scale batch and streaming workloads across Fulfillment and Product Analysis data domains.
\end{rSubsection}
% --- Bosch (Feb 2020 -- Dec 2022) — BS-1, BS-3+BS-5, BS-4, BS-2 ---
\begin{rSubsection}{Production ML Deployment, Data Services \& Platform Ownership}{\textcolor{black!60}{Feb 2020 -- Dec 2022}}{(Senior) Data \& ML Engineer, Robert Bosch Semiconductor Manufacturing}{Dresden, Germany}
\item Containerized and orchestrated \textbf{ML} inference (\textbf{Docker}, \textbf{Kubernetes}, Ansible) into Bosch's 24/7 semiconductor fab, operating automated image-based defect classification continuously on live 300mm wafer lines.
\item Co-owned the TIBCO Spotfire analytics platform and the Defect Management System as Application Owner, building C\# extensions and wafer-map visualizations, defining SLOs and training engineering users.
\item Built an anomaly-detection proof of concept (ELK with \textbf{Kafka} on \textbf{Docker}) plus \textbf{Grafana}, \textbf{Prometheus} and Loki monitoring, validating centralized log management and alerting for 24/7 manufacturing systems.
\item Developed data services in \textbf{Python}, Java and C\# over OracleDB and Hadoop/ImpalaSQL, giving analysis teams structured, reliable access to defect-management and process-optimization data in a high-throughput fab.
\end{rSubsection}
% --- Fraunhofer (Sep 2018 -- Oct 2019) — FC-2, FC-1 ---
\begin{rSubsection}{Applied ML Research \& CI/CD Automation from Zero}{\textcolor{black!60}{Sep 2018 -- Oct 2019}}{Research Software Engineer, Fraunhofer-Center for Maritime Logistics CML}{Hamburg, Germany}
\item Contributed \textbf{ML} and NLP components to ARTUS, a Fraunhofer research project developing automatic speech transcription for sea rescue operations, applying machine learning in a safety-critical maritime domain.
\item Set up the team's first Jenkins \textbf{CI/CD} pipeline with quality gates independently, bringing build automation to the group; also developed the SCEDAS crew-scheduling system (C\#, .NET, MS SQL, Entity Framework).
\item Built containerized microservices (Express.js, JavaScript, \textbf{Docker}, SQLite) for MISSION, a Fraunhofer maritime data-exchange platform connecting ports, operators and research partners across the logistics chain.
\end{rSubsection}
% --- Vizrt (Jul 2017 -- May 2018) — VZ-1, VZ-2 ---
\begin{rSubsection}{Distributed Real-Time Backend Engineering at Broadcast Scale}{\textcolor{black!60}{Jul 2017 -- May 2018}}{DevOps Engineer, Vizrt}{Bergen, Norway}
\item Engineered distributed real-time video-transcoding backend components in \textbf{Python} (with legacy C++ modules) for Vizrt's broadcast platform, serving global media customers including CNN, BBC and Al Jazeera.
\item Wrote an automated A/V integration and unit test suite in \textbf{Python} and wired quality gates into the \textbf{CI/CD} pipeline, which shortened the feedback loop for new features and raised release reliability.
\end{rSubsection}
% --- Generali (May 2015 -- Jun 2017) — GN-1, GN-3 ---
\begin{rSubsection}{Test Automation, CI/CD Ownership \& Java Backend}{\textcolor{black!60}{May 2015 -- Jun 2017}}{IT Consultant, Generali Deutschland Informatik Services}{Hamburg, Germany}
\item Introduced BDD test automation to Generali (Serenity-BDD, Selenium, JBehave), ran the PoC and took technical ownership, administered Jenkins \textbf{CI/CD} jobs, and trained teams across the Java Community.
\item Developed \textbf{Java}/J2EE features for the PIA-Postkorb workflow portal, migrated WebServices to the XLDeploy process, and contributed to an Apache Camel / Spring Boot dispatcher integration PoC.
\item Pioneered UIPath RPA at Generali GDIS, building PoCs and serving as the internal RPA contact for group companies, extending automation from test tooling into broader business process automation.
\end{rSubsection}
\end{rSection}
\vspace{-0.15cm}
%----------------------------------------------------------------------------------------
% EDUCATION — FIXED
%----------------------------------------------------------------------------------------
\begin{rSection}{Education}
{M.Eng.\ Computer Aided Engineering (Software Design \& Engineering)} \hfill {\textcolor{black!60}{Apr 2012 -- Oct 2013}}\\
{Universit\"at der Bundeswehr M\"unchen}; thesis at Tongji University, Shanghai \hfill Thesis Grade: \textbf{1.0}\\
{\small Thesis: \textit{Development of a Web-Based Remote Fault Diagnosis System} (Neural Networks, PSO, Fuzzy Logic)}
{B.Eng.\ Information and Telecommunication Technologies} \hfill {\textcolor{black!60}{Oct 2009 -- Oct 2012}}\\
{Universit\"at der Bundeswehr M\"unchen}, Munich, Germany
\end{rSection}
\vspace{-0.15cm}
%----------------------------------------------------------------------------------------
% CERTIFICATIONS & AWARDS — FIXED
%----------------------------------------------------------------------------------------
\begin{rSection2}{Certifications \& Awards}
\item \textbf{AWS Certified Solutions Architect -- Associate}, Amazon Web Services (2024, active until Sep 2027).
\item \textbf{Data Engineering with AWS Nanodegree}, Udacity (2026). AWS data pipeline architecture.
\item \textbf{IBM AI Engineering Specialization}, Coursera. Deep learning, TensorFlow, Keras, Apache Spark ML.
\item \textbf{iSAQB CPSA -- Foundation Level}, iSAQB (2016). Certified Professional for Software Architecture.
\item \textbf{ITIL Foundation Certificate in IT Service Management}, PEOPLECERT / AXELOS (2016).
\end{rSection2}
\begin{center}
\vspace{0.1cm}
\textit{Languages: German (native), English (fluent)}
\end{center}
\end{document}
+199
View File
@@ -0,0 +1,199 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Medium Length Professional CV - RESUME CLASS FILE
%
% This template has been downloaded from:
% http://www.LaTeXTemplates.com
%
% This class file defines the structure and design of the template.
%
% Original header:
% Copyright (C) 2010 by Trey Hunner
%
% Copying and distribution of this file, with or without modification,
% are permitted in any medium without royalty provided the copyright
% notice and this notice are preserved. This file is offered as-is,
% without any warranty.
%
% Created by Trey Hunner and modified by www.LaTeXTemplates.com
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ProvidesClass{resume}[2018/09/25 v1.0 Resume class]
\LoadClass[10pt, a4paper]{article} % Font size and paper type
\usepackage{lastpage}
\usepackage[parfill]{parskip} % Remove paragraph indentation
\usepackage{array} % Required for boldface (\bf and \bfseries) tabular columns
\usepackage{ifthen} % Required for ifthenelse statements
\usepackage{enumitem}
\pagestyle{empty} % Suppress page numbers
%----------------------------------------------------------------------------------------
% HEADINGS COMMANDS: Commands for printing name and address
%----------------------------------------------------------------------------------------
\def \name#1{\def\@name{#1}} % Defines the \name command to set name
\def \@name {} % Sets \@name to empty by default
\def \addressSep {$|$} % Set default address separator to a diamond
% One, two or three address lines can be specified
\let \@addressone \relax
\let \@addresstwo \relax
\let \@addressthree \relax
\let \@addressfour \relax
% \address command can be used to set the first, second, and third address (last 2 optional)
\def \address #1{
\@ifundefined{@addresstwo}{
\def \@addresstwo {#1}
}{
\@ifundefined{@addressthree}{
\def \@addressthree {#1}
}{
\@ifundefined{@addressfour}{
\def \@addressfour {#1}
} {\def \@addressone {#1}
}
}
}
}
% \printaddress is used to style an address line (given as input)
\def \printaddress #1{
\begingroup
\def \\ {\addressSep\ }
{#1}
% \centerline{#1}
\endgroup
\par
% \addressskip
}
% \printname is used to print the name as a page header
\def \printname {
\begingroup
% \MakeUppercase
{\namesize\bf \@name} \hfil
% \hfil{\MakeUppercase{\namesize\bf \@name}}\hfil
\nameskip\break
\endgroup
}
%----------------------------------------------------------------------------------------
% PRINT THE HEADING LINES
%----------------------------------------------------------------------------------------
\let\ori@document=\document
\renewcommand{\document}{
\ori@document % Begin document
% \begin{center}
\printname % Print the name specified with \name
\@ifundefined{@addressone}{}{ % Print the first address if specified
\printaddress{\@addressone}}
\@ifundefined{@addresstwo}{}{ % Print the second address if specified
\printaddress{\@addresstwo}}
\@ifundefined{@addressthree}{}{ % Print the third address if specified
\printaddress{\@addressthree}}
\@ifundefined{@addressfour}{}{ % Print the third address if specified
\printaddress{\@addressfour}}
% \end{center}
}
%----------------------------------------------------------------------------------------
% SECTION FORMATTING
%----------------------------------------------------------------------------------------
% Defines the rSection environment for the large sections within the CV
\newenvironment{rSection}[1]{ % 1 input argument - section name
\sectionskip
{\bf #1}
% \MakeUppercase{\bf #1} % Section title
\sectionlineskip
\hrule % Horizontal line
\begin{list}{}{ % List for each individual item in the section
\setlength{\leftmargin}{0.50em} % Margin within the section
}
\item[]
}{
\end{list}
}
\newenvironment{rSection2}[1]{ % 1 input argument - section name
\sectionskip
{\bf #1} % Section title
\sectionlineskip
\hrule % Horizontal line
\medskip
\begin{list}{$\bullet$}{\setlength{\leftmargin}{1.5em}}
\itemsep -0.3em \vspace{-0.5em} % Compress items in list together for aesthetics
}{
\end{list}
\vspace{0.5em}
}
\newenvironment{rSection3}[1]{ % 1 input argument - section name
\sectionskip
{\bf #1} % Section title
\sectionlineskip
\hrule % Horizontal line
\medskip
\begin{enumerate}[]{\setlength{\leftmargin}{1.5em}}
\itemsep -0.3em \vspace{-0.5em} % Compress items in list together for aesthetics
}{
\end{enumerate}
\vspace{0.5em}
}
%----------------------------------------------------------------------------------------
% WORK EXPERIENCE FORMATTING
%----------------------------------------------------------------------------------------
\newenvironment{rSubsection}[4]{ % 4 input arguments - company name, year(s) employed, job title and location
{\bf #1} \hfill {#2} % Bold company name and date on the right
\ifthenelse{\equal{#3}{}}{}{ % If the third argument is not specified, don't print the job title and location line
\\
{\em #3} \quad {\em #4} % Italic job title and location
}\smallskip
\begin{list}{$\cdot$}{\leftmargin=1.5em} % \cdot used for bullets, no indentation
\itemsep -0.2em \vspace{-0.2em} % Compress items in list together for aesthetics
}{
\end{list}
\vspace{0.2 em} % Some space after the list of bullet points
}
%----------------------------------------------------------------------------------------
% FORMAT C SKILLS COMMANDS
%----------------------------------------------------------------------------------------
% Skills group environment: \begin{skillgroup}{Group Name} ... \end{skillgroup}
% Renders bold header + indented dash sub-items. Each \skilldash = exactly 1 rendered line.
\newenvironment{skillgroup}[1]{%
\textbf{#1}\par\nopagebreak%
\vspace{-\parskip}%
\begin{list}{--}{\leftmargin=0.8em \labelsep=0.3em \itemsep=0pt \topsep=0.1em \parsep=0pt \partopsep=0pt}%
}{%
\end{list}%
\vspace{-\parskip}\vspace{0.45em}%
}
% Single dash sub-item within a skillgroup. Content must fit 1 rendered line.
% Char limit: 119 - (0.5 x bold_char_count) at 10pt
\newcommand{\skilldash}[1]{\item #1}
%----------------------------------------------------------------------------------------
% EXPERIENCE SUB-THEME COMMAND
%----------------------------------------------------------------------------------------
% Sub-theme underline header within rSubsection
\newcommand{\subtheme}[1]{\item[] \underline{#1}}
% The below commands define the whitespace after certain things in the document - they can be \smallskip, \medskip or \bigskip
\def\namesize{\huge} % Size of the name at the top of the document
\def\addressskip{\smallskip} % The space between the two address (or phone/email) lines
\def\sectionlineskip{\medskip} % The space above the horizontal line for each section
\def\nameskip{\medskip} % The space after your name at the top
\def\sectionskip{\medskip} % The space after the heading section
@@ -0,0 +1,168 @@
# Session: Microsoft Senior Software Engineer — Industry Solutions Engineering (ISE), Zürich
## JD Info
- **File:** job_scout/jd_microsoft_ise.txt (copy: output/Microsoft_ISE_Senior_SWE/JD_microsoft_ise.txt)
- **JD source:** live fetch 2026-07-03 via Eightfold PCSX API (apply.careers.microsoft.com, req 200040836), verbatim
- **Role:** Senior Software Engineer, Industry Solutions Engineering (ISE) — IC4, Software Engineering profession
- **Company:** Microsoft (ISE = global non-billing co-engineering org inside MCAPS; engineers code side-by-side with strategic customers)
- **Bundle:** HYBRID — primary `bundle_ml_ai_engineer.md` (JD's decisive axis: production AI systems, LLM/RAG, model eval/monitoring), secondary `bundle_data_engineer.md` (strongest evidence; reframing map for bridging bullets)
- **Format:** Resume (2-page, resume.cls) + 1-page cover letter
- **Salary/Details:** Published base band CHF 146,200245,900 (IC4, Switzerland). Zürich. Travel up to 25%. German "beneficial". Posted ~2026-06-26, "open minimum 5 days, ongoing until filled" — apply promptly.
## JD Analysis
### Requirements
| # | Requirement | Match | Evidence |
|---|-------------|-------|----------|
| 1 | BS in CS/related + 4+ yrs engineering w/ coding (C, C++, C#, Java, JavaScript, Python) | Direct | B.Eng. + M.Eng. (Software Design & Engineering); 12+ yrs; Python + Java strong (per feedback_cpp_emphasis: lead Python/Java, do NOT oversell C++; C#/.NET minor via Fraunhofer — secondary mention only) |
| 2 | Familiarity with deploying and operating AI systems in production environments | Bridge (high) | Swisscom: governed data products + metadata mgmt on AWS as the data foundation for company agentic-AI programme (SW-7); operates production pipelines feeding AI workloads; LiteLLM gateway API usage. NOT model-serving ownership — hedge verbs |
| 3 | Experience building or integrating AI/ML or LLM-based solutions, prompt engineering, RAG | Bridge (medium-high) | Verified toolchain ONLY: Kiro (spec-driven AI dev), VS Code + Copilot, LiteLLM (created/used LLM API integrations), custom GPTs fed with domain knowledge (prompt engineering + grounding = RAG-adjacent). NEVER LangChain/LangGraph/LlamaIndex (config ban) |
| 4 | Understanding of model evaluation, data quality, and performance monitoring | Bridge (high) | Data quality is core Swisscom work (data products with contracts/metadata); monitoring/observability from DevOps history (Bosch/Swisscom pipelines). Model evaluation specifically = thin — claim "data quality & performance monitoring" side confidently, model-eval only as understanding |
| 5 | Design/deliver solutions with modern software engineering practices + cloud technologies | Direct | AWS-heavy platform work (Swisscom), CI/CD, IaC-adjacent DevOps at Bosch/Swisscom; Azure = gap (AWS-primary — frame cloud skills as transferable, name AWS honestly) |
| 6 | Customer-facing co-engineering, cross-functional teams (SWE + data scientists + TPMs + designers) | Direct | Bosch: co-owned Spotfire analytics platform for internal customers, co-presented TIBCO Analytics Forum 2022; Swisscom: onboarding domain teams onto data products, guiding producers; Fraunhofer: applied research with industry partners |
| 7 | DRI/on-call: monitor systems, restore service, playbooks | Bridge (high) | Application Owner / Component Owner roles = production ownership incl. incident response for his components (scope-disciplined: HIS components, not org-wide) |
| 8 | Open source contribution / variety of technologies "not just Microsoft" | Bridge (medium) | Polyglot record (Python/Java/C#, AWS/on-prem, Spotfire/TIBCO); personal Solidity work. No notable OSS contributions — do not claim |
| 9 | Travel up to 25% | Direct | Explicitly matches mobility appetite (user_international_mobility: travel-OK from Bern, cross-cultural work history NO/DE/CH/Shanghai) |
| 10 | German language beneficial (preferred qual) | Direct | Native German + fluent English — differentiator for Swiss/DACH customer engagements |
### ATS Keywords
- **ML/AI:** AI systems in production, LLM, RAG, prompt engineering, model evaluation, AI/ML solutions, Copilot, agentic
- **Domain:** co-engineering, customer engagements, industry solutions, cloud solutions, open source
- **Methods:** modern software engineering practices, CI/CD, code review, design documents, observability, monitoring, incident response (DRI), playbooks, reliability, performance, maintainability
- **Tools:** Python, Java, C#, cloud (AWS→Azure bridge), Kubernetes/containers, Git/GitHub
- **Soft skills:** cross-functional collaboration, stakeholder requirements, growth mindset, mentoring/guiding engineers
### Gap Assessment
- **Direct:** coding depth (Python/Java, 12+ yrs), cloud data/platform engineering, customer-facing co-engineering, cross-functional work, German, travel appetite
- **Bridge (confidence):** production AI operations via data-foundation-for-AI (high); LLM integration via LiteLLM/custom GPTs/Kiro (medium-high — verified tools only); DRI/on-call via Application/Component Owner (high); model-eval understanding (medium — hedge as "understanding")
- **Gap (cannot claim):** Azure-specific services (AWS-primary — say so honestly), model training/fine-tuning ownership, notable OSS contributions, C++ depth, JavaScript/front-end depth
- **Fabrication tripwires:** NO LangChain/LangGraph (config ban); no "built the Data Mesh" (scope discipline); no claiming model-serving/MLOps platform ownership
## Company Context
- **Mission:** Empower every person and organization to achieve more. ISE specifically: non-billing global engineering org (inside MCAPS) that co-develops production code side-by-side with strategic customers' engineers, then feeds learnings back into Microsoft products. Public Engineering Fundamentals Playbook (microsoft.github.io/code-with-engineering-playbook) codifies how they work: agile ceremonies, code-with, testing, observability fundamentals.
- **This role:** Zürich-based Senior SWE (IC4) embedded in customer engagements — likely Swiss/DACH strategic accounts (banks, pharma, industrials) given the German-beneficial flag. Recent ISE publication themes: enterprise RAG with document-permission propagation (Entra ID → AI Search), coordinator-based multi-agent architectures in production, vector/hybrid search evaluation frameworks, multimodal RAG fine-tuning experiments.
- **Culture:** "Meet customers where they are — their languages, their frameworks, their OS." Explicitly not-just-Microsoft tech. Growth mindset, informal/flexible, travel ~25%. Cross-functional pods (SWE + DS + TPM + design).
- **Swiss context (CL-relevant):** Microsoft committed USD 400M (June 2025) to expand Swiss datacenter capacity near Zürich and Geneva with in-country data residency for 50k+ customers; AI Tour Zürich April 2026 (3,000+ attendees); Swiss AI Tech Accelerator cohort 3 (Jan 2026).
- **"Why them" angle:** ISE is the rare role where a platform/data engineer with enterprise-scale AI-foundation experience gets to do hands-on engineering ACROSS companies instead of inside one — Dennis's multi-country, multi-industry ramp (Fraunhofer research → Bosch automotive → Generali insurance → Swisscom telecom) is exactly the "walk into a new enterprise and be productive fast" profile ISE hires for.
## Framing Strategy
- **Lead narrative:** Staff-level data & AI platform engineer (12+ yrs, telecom/automotive/research) who builds the governed data and platform foundations that make production AI work inside large enterprises — now bringing that enterprise-hardened, customer-embedded engineering to ISE's co-engineering model.
- **Reframing map:**
- "data products / Data Mesh contribution (SW-7 agentic-AI foundation)" → "data foundations for production AI / agentic systems" (scope-disciplined)
- "LiteLLM gateway APIs + custom GPTs with domain grounding" → "integrating LLM-based solutions; prompt engineering and knowledge grounding" (verbatim-verified tools only)
- "Application Owner / Component Owner incident duty" → "DRI-style production ownership: monitoring, incident response, restoration playbooks" (his components only)
- "Bosch Spotfire platform co-ownership + TAF 2022 co-presentation" → "customer-facing platform engineering and technical evangelism with internal customers"
- "AWS Glue/Athena/Redshift stack" → "cloud-native engineering (AWS; concepts transferable to Azure)" — name AWS, never claim Azure depth
- **Emphasize:** Python/Java polyglot depth; enterprise data/AI platform work; customer-embedded collaboration (Bosch analytics platform, Swisscom domain onboarding); production ownership/reliability; German+English; cross-industry adaptability (4 industries, 3 countries + Shanghai)
- **Downplay:** C++ (per feedback_cpp_emphasis), C#/.NET (one mention max), Spotfire/BI tooling specifics, security-champion badge (JD doesn't gate on security)
- **CL hooks:** (1) ISE Engineering Fundamentals Playbook — "code-with" model matches how he onboards domain teams onto data products; (2) ISE blog's enterprise-RAG/permission-propagation work — mirrors his governed-data-products + metadata/access-control reality at Swisscom; (3) Microsoft's CHF 400M Swiss datacenter/data-residency investment — he builds exactly the kind of regulated, in-country data platforms Swiss customers will bring to ISE; (4) German-native for DACH accounts + 25% travel appetite.
- **User directives:** None given (autonomous Friday-run build). Defaults from hybrid priority matrix.
## Critique Context
- **Reviewer persona:** ISE engineering manager or senior/principal SWE in EMEA doing hiring-manager screen. Reads 50+ CVs per req. Daily work: scoping customer engagements, unblocking pods, code reviews. Impressed by: production evidence, breadth across stacks, customer-facing engineering signals, crisp scope-honest claims. Bored/annoyed by: buzzword AI claims without operational substance, tool soup, solo-hero claims over org-scale objects.
- **Competitive landscape:** Other applicants = senior SWEs from consultancies (Accenture/Avanade), Azure-native engineers, ex-FAANG generalists. The "obvious fit" has Azure depth + OSS visibility. Dennis's edge: genuine enterprise data-platform depth + regulated-industry scars + German + already-Swiss (no visa/relocation friction — EU/EFTA citizen in Bern).
- **Domain vocabulary:** "code-with" / co-engineering, engagement, crew/pod, engineering fundamentals, DRI, game days, grounding, RAG, agentic workflows, Foundry/Copilot ecosystem (use sparingly — only where honest).
## Cover Letter Plan
- **Institution type:** Industry (big tech, customer-facing engineering org)
- **Paragraph count:** 4 paragraphs, 250300 words, 1 page
- **P1 hook:** ISE's co-engineering model ("code-with", Engineering Fundamentals Playbook) + why an enterprise data/AI platform engineer wants to do it across customers; Zürich req + German-beneficial fits him natively
- **P2 evidence:** Swisscom — governed data products on AWS as the data foundation for the company-wide agentic-AI programme (scope-disciplined); LLM integration via LiteLLM APIs + domain-grounded custom GPTs; production ownership (Application Owner, incident response)
- **P3 evidence:** cross-industry, cross-country ramp record (Fraunhofer → Bosch → Generali → Swisscom; NO/DE/CH + Shanghai) = productive-fast-in-new-enterprise; Bosch: co-owned analytics platform for internal customers, co-presented at TIBCO Analytics Forum 2022
- **Domain pivot:** "The foundations that make enterprise AI actually work — governed data, metadata, reliable pipelines — are what I build; ISE is where that work meets customers directly."
- **Jargon level:** Technical (hiring-manager-readable, not HR-safe fluff)
- **"Why them" hook:** Microsoft's USD 400M Swiss datacenter/data-residency expansion → the regulated Swiss enterprises he knows from the inside are exactly ISE Zürich's customer base
- **Hook verification (2026-07-03, all VERIFIED):**
- Engineering Fundamentals Playbook / "code-with" → https://microsoft.github.io/code-with-engineering-playbook/ (GitHub repo tagline: "the playbook for 'code-with' customer or partner engagements")
- ISE blog enterprise RAG / permission propagation → https://devblogs.microsoft.com/ise/sharepoint-doc-level-access/ ("Propagating SharePoint Document Permissions to AI Search and RAG Pipelines")
- USD 400M Swiss datacenter expansion, in-country data residency → announced 2025-06-02; https://www.itpro.com/infrastructure/data-centres/microsoft-invests-usd400-million-to-expand-swiss-data-centers
## Bullet Plan
Calibration: sent Google DE resume = 17 bullets (SW 6, BS 4, FC 2, VZ 2, GN 3), 2 pages clean. Recommended here: **16 confirmed + 2 fillers pending Page Fill Gate.**
### Position 1 — Swisscom · Staff Data, Analytics & AI Engineer (6 bullets, 12 lines)
| # | ID | Achievement (ISE framing) | Variant | JD Match |
|---|----|--------------------------|---------|----------|
| 1 | SW-7 | LEAD — governed data products + active metadata on AWS **within Swisscom's company-wide Data Mesh** (scoped verb per feedback_swisscom_datamesh_ownership) — the grounded-retrieval data foundation downstream AI/agentic workflows query | 2L | Req 2+3 (AI systems in production, RAG/grounding) — Bridge high |
| 2 | SW-3 | Python apps on Kubernetes + GitLab CI/CD — containerized, ML-ready delivery, agile DevOps | 2L | Req 1+5 Direct |
| 3 | SW-1 | AWS migration of legacy Teradata/Oracle ETL → S3/Glue/Athena+Iceberg/Redshift/Airflow/CloudFormation | 2L | Req 5 Direct (cloud) |
| 4 | SW-2 | Component Owner, business-critical Fulfillment ETL — on-call SLA, governance, data quality | 2L | Req 7 (DRI) Bridge high + Req 4 (data quality) |
| 5 | SW-4 | B2B data products/dashboards, stakeholder partnership, root-cause analysis under 2nd/3rd-level support | 2L | Req 6 Direct (cross-functional, customer-facing) |
| 6 | SW-6 | PySpark distributed processing (scale signal) | 2L | Req 5 supporting |
x SW-5 Security Champion — FORCED EXCLUSION (memory: team role not award, only when JD gates on security; JD doesn't)
### Position 2 — Bosch · title "(Senior) Data & ML Engineer" per title-flexibility rule (4 bullets, 8 lines)
| # | ID | Achievement (ISE framing) | Variant | JD Match |
|---|----|--------------------------|---------|----------|
| 1 | BS-1 | LEAD — containerized ML inference (Docker/K8s/Ansible) into 24/7 semiconductor production; automated image-based defect classification | 2L | Req 2 DIRECT ("deploying and operating AI systems in production") — flagship |
| 2 | BS-3+BS-5 | Application Owner + co-owned Spotfire analytics platform for internal customers — SLOs, C# extensions, training, vendor mgmt (TAF 2022 talk reserved for CL) | 2L | Req 6 Direct (customer-facing platform eng) + Req 7 |
| 3 | BS-4 | ELK+Kafka anomaly-detection PoC with Grafana/Prometheus/Loki | 2L | Req 4 (performance monitoring/observability) |
| 4 | BS-2 | Multi-language data services (Python/Java/C#) over OracleDB + Hadoop/ImpalaSQL | 2L | Req 1 Direct (polyglot: 3 of the JD's 6 languages) |
### Position 3 — Fraunhofer · Research Software Engineer (2 bullets, 4 lines)
| # | ID | Achievement | Variant | JD Match |
|---|----|-------------|---------|----------|
| 1 | FC-2 | "Contributed" ML/NLP components to ARTUS sea-rescue transcription research (hedged verb MANDATORY) | 2L | Req 3 supporting (applied ML) |
| 2 | FC-1 | SCEDAS C#/.NET development + independently established Jenkins CI/CD with quality gates | 2L | Req 1 (C#) + Req 5 (modern practices, initiative) |
o FC-3 MISSION microservices (Express.js/JavaScript/Docker) — FILLER #1 if Page Fill Gate needs it (JavaScript checkbox)
### Position 4 — Vizrt · DevOps Engineer, Bergen NO (2 bullets, 4 lines)
| # | ID | Achievement | Variant | JD Match |
|---|----|-------------|---------|----------|
| 1 | VZ-1 | Python/C++ distributed video transcoding backend (CNN/BBC/Al Jazeera scale) | 2L | Req 1 (languages, distributed systems) + intl breadth |
| 2 | VZ-2 | A/V test automation + CI/CD quality gates integration | 2L | Req 5 (engineering fundamentals — ISE playbook resonance) |
### Position 5 — Generali GDIS · Software Engineer → IT Consultant (2 bullets, 4 lines)
| # | ID | Achievement | Variant | JD Match |
|---|----|-------------|---------|----------|
| 1 | GN-1 | Introduced BDD + technical ownership + Java Community evangelism/training | 2L | Req 6 (knowledge sharing/mentoring — strong ISE culture fit) |
| 2 | GN-3 | Java/J2EE workflow-portal features, XLDeploy migration, Camel/Spring Boot PoC | 2L | Req 1 (Java checkbox early career) |
o GN-2 UIPath RPA — FILLER #2 (automation breadth; weakest)
x CA-1 Capgemini — FORCED EXCLUSION (user preference: never list, 6-month stay)
**Budget:** 16 recommended 2L bullets (32 rendered lines) + up to 2 fillers → 1618 vs proven 17-bullet 2-page layout. PASS range.
**Skills plan (4-3-2-2-2):** (1) Programming & Data Engineering, (2) Cloud & Infrastructure (AWS + K8s/Docker), (3) AI/ML & GenAI tooling — incl. memory-verified LiteLLM, GitHub Copilot, custom GPTs, Kiro (NOT in taxonomy — flagged; NEVER LangChain), (4) DevOps & Observability, (5) Certifications (AWS SAA, IBM AI Engineering, Udacity).
**Summary headline (draft):** "Staff Data & AI Engineer | Python · Java · AWS · Kubernetes | Production AI Foundations & Customer-Facing Platform Engineering"
**Focus directive impact:** none given — hybrid priority-matrix defaults (ML/AI primary, DE secondary).
## Output Files
- Resume: `output/Microsoft_ISE_Senior_SWE/e2e_microsoft_ise_resume.tex`
- Cover Letter: `output/Microsoft_ISE_Senior_SWE/e2e_microsoft_ise_cover_letter.tex`
- Critique: `output/Microsoft_ISE_Senior_SWE/critique_microsoft_ise.md`
## Status
- Phase 0: DONE (confirmed by user 2026-07-03)
- Phase 1: DONE (16 bullets confirmed 2026-07-03 + fillers FC-3/GN-2 authorized for Page Fill Gate; headline + skills plan approved as drafted)
- Phase 2 Resume: DONE (2026-07-03)
- Summary: DONE (543 rendered chars, 5 lines, orphan OK)
- Skills: DONE (4-3-2-2-2, 13 dashes; AI/ML group carries memory-verified GenAI toolchain: LiteLLM, custom GPTs w/ grounding (RAG), prompt engineering, Copilot, Kiro — NO LangChain)
- Swisscom (6 bullets): DONE — SW-7 lead scoped ("within Swisscom's company-wide Data Mesh")
- Bosch (4 bullets): DONE — title "(Senior) Data & ML Engineer"; BS-4 honest "proof of concept" restored (Google version had dropped it)
- Fraunhofer (3 bullets): DONE — FC-2 "Contributed" hedge; filler FC-3 added at Page Fill Gate
- Vizrt (2 bullets): DONE
- Generali (3 bullets): DONE — filler GN-2 added at Page Fill Gate
- Compile: DONE — 2 pages, MiKTeX clean, 18 variable bullets all 189210 rendered chars (max 218, zero OVER)
- Page fill: page 2 fuller than sent Google baseline by one 2L bullet (baseline scored 85.5, cleared recruiter screen); strict ≤3-line rule not achievable without KB-unsupported padding
- AI fingerprint scan: banned words CLEAN, 0 rendered em-dashes, no vague -ing endings, dates consistent
- Cover Letter: DONE (2026-07-03)
- 4 paragraphs, 299 words, 1 page, moderncv, MiKTeX clean compile (T1 fontenc + microtype expansion=false fix, same as Google CL)
- Hooks: Playbook "code-with" (P1), ISE SharePoint-permissions-to-RAG blog (P2), USD 400M Swiss datacenter/data-residency (P4) — all web-verified, sources in Cover Letter Plan
- Em-dashes: 0; banned-word scan clean; no generic opener; TAF 2022 talk used in P3 as planned (reserved for CL); AWS named honestly (SAA), no Azure claim
- All claims traceable to resume bullets or verified memory; awaiting user approval at /make-cl STOP
- Critique: CURRENT (Pass 2, 2026-07-03) — **85.8/100**`critique_microsoft_ise.md`
- **APPROVED + FINALIZED 2026-07-03.** Submission PDFs: `Dennis_Thiessen_Resume.pdf` (2pp) + `Dennis_Thiessen_Cover_Letter.pdf` (1pp), verified identical to latest compiles. Package complete (12 files + 2 submission copies).
- **SENT 2026-07-03** — application submitted at apply.careers.microsoft.com (req 200040836). Logged in CLAUDE.md Active Sessions + job_scout decisions.json (applied, 85.8/100).
- **Next:** await Microsoft recruiter response
## Critique Summary (Pass 2, 2026-07-03)
- **Score: 85.8/100** (Pass 1: 83.3 → Tier 1+2 applied same day, user-directed). ATS 20/20, truthfulness PASS, AI-fingerprint CLEAN, JD integrity PASS. In the 85+ submit band.
- **Applied fixes (resume only, CL untouched):** (1) "model evaluation" added to AI & ML skills line — JD RQ triple now verbatim; (2) "Open-source stack:" label on Kafka/Airflow/Spark line; (3) summary rewrite: +LLM, +cross-functional, on-call bound to Component Owner (precision), tail "platform co-ownership, workshops, training" dropped for 5-line budget (signal retained in BS-3/GN-1)
- **NOT applied:** conditional metric for BS-1/SW-1 — KB has no verified numbers beyond 24/7 and 300mm; adding one would fabricate
- **Compile verified:** 2pp, summary 5 lines no orphan, skills lines single-line, page break matches baseline
- **Interview likelihood:** ATS 95% / Recruiter 80% / HR 80% / HM 65% / Panel 70%. Max ≈ 86.5; hard ceiling ≈ 88 (Azure, OSS contributions — not resume-editable)
- **CL: PASS all 6 sub-checks** — hooks verified same-day with URLs
- **Known exception:** page-2 bottom whitespace ~1/3 page (documented, matches sent Google baseline; padding would violate anti-fabrication)
+13 -10
View File
@@ -123,22 +123,25 @@ This domain expertise is rare in data engineering candidates and is a strong dif
--- ---
### Achievement BS-5: Tibco Spotfire C# Extensions ### Achievement BS-5: TIBCO Spotfire Analytics Platform Ownership + TAF 2022 Talk
**Source:** thiessen_linkedin_profile.md **Source:** thiessen_linkedin_profile.md; TIBCO Analytics Forum 2022 article (community.spotfire.com/articles/spotfire/tibco-analytics-forum-2022/) — VERIFIED 2026-06-15 via Playwright scrape. Name spelled "Dennis Thießen" (eszett) on the source.
**User's role:** Developer **User's role:** Co-owner of Spotfire applications/platform + developer of C# extensions; conference co-presenter
**Status:** Deployed **Status:** Deployed / operational; publicly documented speaking credential
**Context:** Developed C# extensions for Tibco Spotfire data analysis tool, extending its visualization and analysis capabilities within the semiconductor manufacturing analytics environment. **Context:** At Bosch, Dennis co-owned the TIBCO Spotfire analytics platform that served semiconductor/fab engineers (alongside the Defect Management System he was Application Owner of — see BS-3), and built C# extensions to extend its visualization/analysis capabilities. His official TAF 2022 speaker bio states his responsibilities included "ownership of Spotfire applications and the semiconductor-specific Defect Management System... and the evaluation and integration of machine learning components for 24/7 use." He **co-presented at the TIBCO Analytics Forum (TAF) 2022**: session "Understanding Spatial Variability in Semiconductor Products with Spotfire Map Charts" (with Mark Herrmann) — multi-layered/trellised wafer-map charts and custom smoothed 2-D contour plots used by engineers to understand process/product variability and drive product quality and reliability across Bosch development and manufacturing groups.
**Bullet variants:** **Bullet variants:**
- **1L:** Developed C# extensions for Tibco Spotfire to extend analytics capabilities within the semiconductor data environment. - **2L:** Co-owned Bosch's TIBCO Spotfire analytics platform serving semiconductor engineers, building C# extensions and custom map/contour visualizations for wafer spatial data; presented this work at the TIBCO Analytics Forum 2022.
- **1L:** Co-owned the TIBCO Spotfire analytics platform and built C# extensions; presented at TIBCO Analytics Forum 2022.
**Key skills:** C#, Tibco Spotfire, BI tooling, data visualization **Speaking credential (for CL / presentations / honors):** Co-presenter, TIBCO Analytics Forum (TAF) 2022 — "Understanding Spatial Variability in Semiconductor Products with Spotfire Map Charts."
**ATS keywords:** Tibco Spotfire, C#, BI, data visualization
**Key skills:** TIBCO Spotfire, C#, BI platform ownership, data visualization, wafer-map/spatial analytics, data quality & reliability
**ATS keywords:** TIBCO Spotfire, C#, BI, data visualization, analytics platform, data quality
**Reframing notes:** **Reframing notes:**
- Analytics Engineer: niche signal — include if JD mentions Spotfire or BI tooling - Analytics Engineer / Data Engineer (BI-bridged JDs): NOW MED-HIGH — named, owned BI platform + a public speaking credential. Combine with BS-3 (Application Owner) into one strong "analytics platform ownership" bullet; surface TAF 2022 talk in the cover letter or as an interview bridge.
- All other: LOW — omit; roll into skills section if relevant - ML/AI, Platform: LOW — omit unless BI/analytics is in the JD.
--- ---