feat(app): Google Staff SWE, Shopping Graph submitted; design/architecture KB gap closed; scout triage 2026-10-20

Scout triage 2026-10-20
- 109 new rows screened; 23 JDs read in full and logged with the failing
  line quoted; 4 Google reqs screened 10-21. One new maybe (Google Senior
  SRE, YouTube ML); SBB Team Ampere skipped on the user's Niveau rule (J).

Google Staff Software Engineer, Shopping Graph (Feeds Infra), Zurich
- Chosen as the single Google application after comparing all live Zurich
  reqs. Evidence Fit 70, Stretch (Staff-level technical leadership is the
  defining responsibility and only Adjacent), hard gate PASS, channel weak.
- Resume generated, critiqued (Document Quality 84), edited for leadership
  framing, finalized and submitted 2026-10-21. No cover letter.
- The summary line "sets the technical direction for the data products of
  his domains" rests on the user's 2026-10-21 statement and is deliberately
  NOT in claims.json (user request); recorded in the session Edit History.
- Registry: new applied entry; the Commerce entry is marked superseded.

KB: software design and architecture
- User-confirmed 2026-10-21: design and architecture of the ingestion and
  inference scripts at Bosch (2020-22) and of data products at Swisscom; the
  two together exceed three years. Recorded on BS-1, BS-2 and SW-7, with
  `designed` added to the BS-1/BS-2 verbs, scoped to his own scripts and the
  inference integration (the first patch over-extended it to the data
  services and was trimmed the same session).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
dennisthiessenandClaude Opus 5.5 committed 2026-10-22 09:18:50 +02:00
1 parent dbf937043e
commit 7d8166ddd2
12 files changed
+984 -16

No files matched your search

@@ -0,0 +1,144 @@
# Critique: Google — Staff Software Engineer, Shopping Graph (Feeds Infra), Zürich
> **STALE (2026-10-21):** the resume was edited after this critique (leadership framing, SW-8, BS-1, trims). See the
> session Edit History. Evidence Fit (70, Stretch, gate PASS) is unaffected; Document Quality needs a re-score.
Date: 2026-10-21. Document: `e2e_google_staff_swe_shopping_graph_resume.tex` / `.pdf` (2 pages).
JD: `jd_google_staff_swe_shopping_graph_2026-10-21.txt`, a verbatim Playwright render of the live posting,
retrieved 2026-10-21. Cover letter: intentionally omitted (session decision NO).
## 1. Fit verdict and hard-gate audit
**Verdict: STRETCH, hard gate PASS.** Every minimum qualification is met, so nothing disqualifies the
application. It is a Stretch because the role's defining responsibility, Staff-level technical leadership,
is only Adjacent (`application_strategy.md`: "a defining responsibility is only Adjacent").
| Minimum qualification | Class | Evidence on the page | Risk |
|---|---|---|---|
| Bachelor's or equivalent | Direct | B.Eng., M.Eng. | none |
| 8 yrs programming in C++/Java/Python/Kotlin/Go | Direct, tight | Generali Java 2015-17, Vizrt Python/C++ 2017-18, Bosch Python/Java 2020-22, Swisscom Python/PySpark 2023- (about 8.8 yrs; 8.0 without Vizrt). Fraunhofer was C#/JS and does not count | A recruiter who discounts Vizrt (a *contribution*) lands exactly on 8 |
| 5 yrs testing and launching software | Direct | GN-1, VZ-2, FC-1, BS-1, SW-1, SW-9 | none |
| 3 yrs software design and architecture | Direct, scoped | SW-7 (present), BS-2 scripts, BS-1 integration, GN-3 contribution; iSAQB CPSA-F | Design is component-scale. A Staff reader expects system design of large services |
| GenAI / LLM interfaces integrated into workflows | Direct, modest | SW-8 bullet; LiteLLM, Copilot, Kiro | Configuration/integration level only. Expect "what did you build with it?" |
No level-based NO-GO trigger applies: the role is an IC tech lead, not people management, external-account
ownership or company-wide architecture authority.
## 2. Evidence Fit — 70 / 100 (Stretch by definition)
Scored independently of the provisional 73 in the session. It comes out stricter on responsibilities and
level, as seen from the hiring manager's chair.
| Dimension | Weight | Score | Reason |
|---|--:|--:|---|
| Required qualifications | 35 | 31 | All five Direct; two are tight or modest (8 yrs, GenAI) |
| Core responsibilities | 25 | 15 | Design/build/test/deploy and ingestion with data quality are Direct. Four of the five responsibility lines are leadership or coordination, and those are Adjacent |
| Level and ownership | 15 | 7 | Component Owner, Application Owner and mentoring; no recorded project-team lead or technical direction set for others |
| Recency and depth | 10 | 8 | Current Python/PySpark/AWS ingestion and data-product design |
| Domain/tool transfer | 10 | 6 | Ingestion and data quality transfer well. Web crawling and the commerce domain are gaps. Java is historical (Google Feeds Infra is likely Java/C++-heavy). Google's internal stack is new to every external candidate |
| Practical constraints | 5 | 3 | Zürich hybrid against a 3-homeoffice-day baseline, plus the Thun–Zürich commute. Acceptable only for a clear overall improvement; clarify at first contact |
| **Total** | 100 | **70** | Numerically Adjacent. **Classified Stretch** because a defining responsibility is only Adjacent |
## 3. Document Quality — 84 / 100
| Dimension | Weight | Score | Reason |
|---|--:|--:|---|
| Truth and provenance | 25 | 24 | Every claim traces to `claims.json` (audit below). One framing nit: the SW-8 bullet puts the domain-grounded assistants inside "development workflows", but their recorded use is Q&A and domain tasks |
| Information hierarchy | 20 | 16 | Employer/title/dates are clean. Page 1 carries only Swisscom, and the Bosch design and ingestion evidence that backs the 3-yr design minimum sits on page 2. About a quarter of page 1 is white space (acceptable, not padding) |
| Bullet evidence and impact | 20 | 14 | Specific and scoped, but almost no outcomes: only "reduced manual image classification". No verified scale or impact numbers exist, and none was invented. For a Staff screen the leadership evidence is thin on the page |
| Relevance and terminology | 15 | 12 | Ingestion, data quality, design, architecture, testing, GenAI and matrixed work are all covered. The JD's "launching" has no visible counterpart; "technical direction" is absent (correctly, since it is unrecorded) |
| Skills evidence | 10 | 9 | Every skill is canonical and interview-ready; 8 rendered lines, at the top of the range |
| Mechanics/readability | 10 | 8 | 2 pages, no overfull/underfull boxes, validator 0 warnings, cadence within range. Three bullets run to about 35-37 words (SW-2, BS-2, Generali). Minor hyphenation: *Spot-fire*, *exam-iner*, *mod-els* |
| **Total** | 100 | **84** | |
Truth/provenance is 24/25, above the automatic-failure line.
## 4. Channel Strength — Weak
Cold submit through Google Careers. The user has no referral, and Google postings name no contact. The last
three cold Google applications drew no interview; no cause is inferred from that. Optional warm action: a short
LinkedIn note to a Google Zürich Commerce/Shopping technical recruiter after submitting. It does not upgrade
the channel unless it produces a conversation.
## 5. Competitive read and reader sequence
- **Obvious-fit competitor:** a senior/staff backend engineer from a large-scale ingestion or catalog team,
current in Java/C++, who has tech-led several engineers.
- **Dennis's real advantage:** a decade of ingestion and data-quality work across very different sources (fab
sensor/process data, telco fulfillment data), current data-product design on AWS, and production
integration under a hard failure constraint (24/7 fab).
- **Competitor's real advantage:** Google-scale distributed systems, current Java/C++, and a recorded
tech-lead role. Do not value the bridge as highly as their direct evidence.
| Reader | Verdict | Reason |
|---|---|---|
| Parser/ATS | Pass | Single column; text extracts in employer, dates, title, location order; core JD terms present |
| Recruiter glance | **Borderline** | Minimums visibly met, but no Staff-level tech-lead signal. The recruiter may consider a lower level or pass |
| Hiring manager | Maybe | Ingestion and data quality are directly relevant; scale and team leadership are not shown |
| Technical reviewer | Credible | First challenges: "a system you designed end to end, its scale and trade-offs"; "how you set direction for other engineers"; Java currency |
## 6. Claim audit
| Claim | Canonical | D/A | Safe? | Fix |
|---|---|---|---|---|
| Summary: over ten years of software engineering | GENERALI 2015-05 → present (Capgemini omitted) | Direct | yes | — |
| Summary/BS: designed ingestion scripts and the ML-inference integration | BS-2, BS-1 (2026-10-21) | Direct | yes | — |
| Design and build governed data products ... Atlassian Compass | SW-7 | Direct | yes, scoped to "within company-wide Data Mesh" | — |
| Migrated legacy ETL for owned domains ... Glue/PySpark/Iceberg/Airflow, pytest, part of company-wide programme | SW-1, SW-6, SW-9 | Direct | yes, scope hedged | — |
| Owned ETL component, Oracle → Teradata, quality/security/compliance, on-call | SW-2 (past) | Direct | yes, past tense | — |
| Integrated LLM tooling into development workflows; configured assistants; LiteLLM, Copilot, Kiro | SW-8 | Direct (modest) | yes; framing nit | Tier 2 #3 |
| Onboarded and mentored junior developers; prototype-and-iterate with stakeholders | SW-10, SW-4 | Direct | yes, past tense | — |
| Data services in Python and Java over Oracle and Hadoop/Impala; defect/image/PCM data | BS-2 | Direct | yes | — |
| Normalized spatial wafer data (SDO_GEOMETRY) across CRS; tuned performance | BS-8 | Direct | yes; transformation location not asserted | — |
| ML inference integration; defect could have halted production; reduced manual classification | BS-1 | Direct | yes; approved wording, qualitative result | — |
| Technical Application Owner, KLA DMS and Spotfire; TAF 2022 co-presentation | BS-3, BS-5 | Direct | yes | — |
| Guided juniors; one Bachelor thesis as second examiner | BS-9, BS-7 | Direct | yes, not pluralised | — |
| Fraunhofer: C#/SQL Server, Jenkins build jobs; Express.js/Docker microservices | FC-1, FC-3 | Direct | yes ("set up", no quality-gate claim) | — |
| Vizrt: test suites as CI/CD quality gates; contributed Python/C++ | VZ-2, VZ-1 | Direct / contribution | yes | — |
| Generali: Java/J2EE services, contributed to design; introduced BDD, trained team | GN-3, GN-1 | Direct | yes | — |
| Skills: all listed; Kafka and Kubernetes historical but `allowed` | skills array | — | yes | — |
| Certifications: AWS SAA 2024-2027; iSAQB CPSA-F 2016; IBM AI Engineering 2020 | thiessen_certifications.md | — | yes; IBM not shown as academic | — |
Forbidden-term scan (validator): clean. No Capgemini, no LangChain, no Terraform/GCP/Flume, and no unverified
metric.
## 7. Fixes
**Tier 1 (truth/fit, blocks approval): none.** Validator PASS, and every claim is canonical. The Stretch
classification is a fit finding the user already knows about, not a document defect.
**Tier 2 (presentation, optional, ranked by expected effect):**
1. **Leadership evidence: ask, don't write.** This is the decisive gap for a Staff screen. If true, the most
valuable addition would be one recorded instance of setting technical direction for other engineers. For
example: a data-product design pattern or modelling convention others adopted, design reviews he ran, or
coordinating his domains' migration with other teams. It can only be added after the user confirms it and
it is recorded in `claims.json`.
2. **Scale.** Any verifiable count (data products designed, source systems onboarded, pipelines migrated, data
volumes) would answer the "large-scale" question. Same rule: only from the user, recorded first.
3. **SW-8 framing.** "Integrated LLM tooling into development workflows, configuring domain-grounded
assistants..." links the assistants to development work, which is not recorded. Safer: "Configured
domain-grounded LLM assistants by selecting models and supplying curated knowledge; use LiteLLM APIs,
Copilot and Kiro in development."
4. **A launch signal.** BS-1 allows `deployed`: "Designed the integration of containerized ML inference ...
and deployed it into a continuously operating semiconductor fab, where ..." puts the JD's
testing-and-launching sense into words without a new claim.
5. **Trim the three ~35-37-word bullets** (SW-2, BS-2, Generali) by a clause each. Optional; they parse fine.
## 8. Cover letter
Decision NO stands: not requested, the screen is driven by minimum qualifications, and a letter would add no
transition, relocation or personal-connection context. Not penalised.
## 9. Mechanical verification
- `validate_resume_system.py --document`: PASS, 0 warnings.
- Fresh scratch compile: 2 pages, no overfull/underfull boxes. Its text matches the delivered PDF except the
single-pass page footer.
- `pdftotext`: employer, dates, title, location in order for all five roles; 648 words.
- PDF metadata: empty Title and Author; Producer MiKTeX pdfTeX.
- Contact line: Bern, B permit, email, phone, LinkedIn. No personal data. No Capgemini.
- `page_metrics.py` could not run (Git's `pdftotext` lacks `-bbox`). Visually, experience starts at about 45%
of page 1.
**Status:** not submit-ready until the user approves this critique and decides on the Tier 2 items. Fit class
Stretch; hard gate PASS.
@@ -0,0 +1,89 @@
% Google - Staff Software Engineer, Shopping Graph (Feeds Infra), Zurich.
% International Tech profile. Generated 2026-10-21 from resume_builder/canonical/claims.json
% and the experience files; no historical output used as a source.
% Session: session_google_staff_swe_shopping_graph.md
\documentclass{resume}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[a4paper,left=0.65in,right=0.65in,top=0.55in,bottom=0.55in]{geometry}
\usepackage{xcolor}
\usepackage{hyperref}
\hypersetup{hidelinks}
\usepackage[version=4]{mhchem}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[R]{\small \thepage/\pageref{LastPage}}
\name{Dennis Thiessen, M.Eng.}
\headline{Staff Data Engineer $\vert$ Data Ingestion, Data Products, Data Quality $\vert$ Python, PySpark, AWS}
\contactline{Bern, Switzerland (Swiss B permit) $\vert$ \href{mailto:dennis@thiessen.io}{dennis@thiessen.io} $\vert$ +41 795 955 585 $\vert$ \href{https://linkedin.com/in/dennis-thiessen}{LinkedIn}}
\begin{document}
\begin{rSection}{Summary}
Staff data engineer with over ten years of software engineering. At Swisscom, sets the technical direction for the data products of his domains and designs and builds them on AWS; at Bosch, designed the ingestion scripts and the ML-inference integration for a continuously operating semiconductor fab.
\end{rSection}
\begin{rSection}{Technical Skills}
\skillline{Languages}{Python, SQL, Bash; Java and Kotlin (earlier roles)}
\skillline{Data processing}{PySpark, AWS Glue, Apache Airflow, Apache Iceberg, Athena, Redshift, Kafka, Oracle, Teradata, Hadoop/Impala; relational data modelling}
\skillline{Platform}{AWS, CloudFormation, Docker, Kubernetes, GitLab CI/CD, Jenkins, Ansible, Linux}
\skillline{Testing}{Unit testing with pytest; automated test suites as CI/CD quality gates; BDD test automation}
\skillline{AI tooling}{LiteLLM, domain-grounded LLM assistants, Copilot, Kiro}
\skillline{Certifications}{AWS Solutions Architect -- Associate (2024--2027); iSAQB \mbox{CPSA-F} software architecture (2016); IBM AI Engineering (2020)}
\end{rSection}
\begin{rSection}{Professional Experience}
\begin{rSubsection}{Swisscom (Schweiz) AG}{Oct 2023 -- Present}{Staff Data, Analytics \& AI Engineer (promoted from Senior, Apr 2025)}{Bern, Switzerland}
\item Design and build governed data products on AWS within Swisscom's company-wide Data Mesh: logical and physical relational models, source onboarding, and metadata and lineage documented in Atlassian Compass.
\item Set the technical direction for a B2B data product whose requirements could not be fixed up front: built a prototype, proposed it to business stakeholders, architects and engineers, and iterated on it with them. Onboarded and mentored junior developers.
\item As primary engineer for the owned data domains, migrated their legacy ETL pipelines to AWS as Python and PySpark Glue jobs on Apache Iceberg tables, orchestrated with Airflow and unit-tested with pytest, within the company-wide migration programme.
\item Component Owner for the ETL that loaded business-critical Fulfillment data from Oracle into the Teradata data warehouse; responsible for its data quality and governance compliance through to on-call support.
\item Integrated GenAI tools and LLM interfaces into workflows: configured domain-grounded assistants with curated knowledge and called models through LiteLLM APIs; develop with Copilot and Kiro.
\end{rSubsection}
\end{rSection}
% Keep the current role on page 1 and start Bosch, the second major evidence block, on page 2.
\newpage
\begin{rSection}{Professional Experience (continued)}
\begin{rSubsection}{Robert Bosch Semiconductor Manufacturing Dresden GmbH}{Feb 2020 -- Dec 2022}{Senior Data Engineer, Data Analysis (promoted from Data Engineer, Jan 2021)}{Dresden, Germany}
\item Designed and built ingestion scripts and developed Python and Java data services over Oracle and Hadoop/Impala, serving fab analysis teams with defect records, wafer inspection images and PCM electrical parameters.
\item Normalized spatial wafer data (Oracle SDO\_GEOMETRY) across the different coordinate reference systems of fab tools and systems and transformed it between them; tuned its performance.
\item Designed the integration of containerized ML inference (Docker, Kubernetes, Ansible) and deployed it into a continuously operating semiconductor fab, where a software defect could have halted production; it reduced manual image classification.
\item Served as technical Application Owner for the KLA Defect Management System and TIBCO Spotfire, defining their SLOs and handling vendor communication; co-presented wafer-map analytics at TIBCO Analytics Forum 2022.
\item Guided junior developers and supervised student work, including one Bachelor thesis as second examiner.
\end{rSubsection}
\begin{rSubsection}{Fraunhofer Center for Maritime Logistics and Services CML}{Sep 2018 -- Oct 2019}{Research Software Engineer}{Hamburg, Germany}
\item Developed C\# crew-scheduling software on Microsoft SQL Server and set up Jenkins build jobs for its automated deployment; built microservices for a research data-exchange platform with Express.js and Docker.
\end{rSubsection}
\begin{rSubsection}{Vizrt}{Jul 2017 -- May 2018}{Test Automation / DevOps Engineer}{Bergen, Norway}
\item Developed automated test suites and connected them to the CI/CD pipeline as quality gates; contributed Python and C++ engineering to a distributed video-transcoding backend.
\end{rSubsection}
\begin{rSubsection}{Generali Deutschland Informatik Services GmbH}{May 2015 -- Jun 2017}{IT Consultant}{Hamburg, Germany}
\item Developed Java/J2EE workflow services and contributed to their design and architecture; introduced Behaviour-Driven Development and trained the project team in it, with technical responsibility for its test automation.
\end{rSubsection}
\end{rSection}
\begin{rSection}{Education}
\compactentry{M.Eng. Computer Aided Engineering}{Apr 2012 -- Oct 2013}
Universität der Bundeswehr München; Software Design \& Engineering.
\compactentry{B.Eng. Information and Telecommunication Technologies}{Oct 2009 -- Oct 2012}
Universität der Bundeswehr München.
\end{rSection}
\begin{rSection}{Languages}
German (native), English (fluent)
\end{rSection}
\end{document}
@@ -0,0 +1,208 @@
URL: https://www.google.com/about/careers/applications/jobs/results/102064172115600070-staff-software-engineer-shopping-graph?location=Switzerland␍
FINAL: https://www.google.com/about/careers/applications/jobs/results/102064172115600070-staff-software-engineer-shopping-graph?location=Switzerland
google.com/about/careers/applications uses cookies to deliver and enhance the quality of its services and to analyze traffic. If you agree, cookies are also used to serve advertising and to personalize the content and advertisements that you see. Learn more
Agree
No thanks
Careers
Skip navigation links
home
Home
Home
work_outline
Jobs
Jobs
noogler_hat
Students
Students
google
How we work
How we work
handyman
How we hire
How we hire
person_outline
Your career
Your career
help_outline
Help link
feedback
Send feedback
Sign in
Job Details
arrow_back
Back to jobs search
Jobs Search Results
AI Strategic Pursuit Lead, Automotive Agent, Google Cloud EMEA
London, UK; Zürich, Switzerland; +1 more
Staff Forward Deployed Engineer, GenAI, Google Cloud
Zürich, Switzerland
Software Engineer III, Shopping Ads
Zürich, Switzerland
Solution Architect, Capital Markets and Exchanges, Google Cloud
Frankfurt am Main, Germany; Zürich, Switzerland; +2 more
Staff Software Engineer, Generative AI, Commerce
Zürich, Switzerland
Senior Forward Deployed Engineer, GenAI, Google Cloud
Zürich, Switzerland
AI Outcome Customer Engineer, Google Cloud
Zürich, Switzerland
Research Scientist, User Signals from Agentic Logs, DeepMind
Zürich, Switzerland
Software Engineer III, Search Ads, Quality and AI
Zürich, Switzerland
Student Researcher, 2027
Zürich, Switzerland; Berlin, Germany; +7 more
Staff Research Engineer, Generative AI, Cloud AI Research, Co-Scientist
Zürich, Switzerland
Data Cloud Partner Specialist, Google Cloud
London, UK; Zürich, Switzerland; +3 more
Software Engineering PhD Intern, 2027
Zürich, Switzerland
Data Scientist Product MS Intern, 2027
Zürich, Switzerland
Software Engineer III, YouTube Viewcount and Aggregations
Zürich, Switzerland
Software Engineer III, Site Reliability Engineering, Prod AI
Zürich, Switzerland
Staff Research Data Scientist, Ads Metrics
Zürich, Switzerland
Staff Software Engineer, Site Reliability Engineering, Google Cloud
Munich, Germany; Zürich, Switzerland
Senior Staff Software Engineer, Site Reliability Engineering, Privacy, Security and Safety
Zürich, Switzerland
Software Engineer III, AI/ML YouTube Shopping Creator
Zürich, Switzerland
Showing 1 to 20 of 59 rows
1‑20 of 59
navigate_next
Go to next page
Staff Software Engineer, Shopping Graph
share
Share Staff Software Engineer, Shopping Graph
corporate_fare
Google
place
Zürich, Switzerland
bar_chart
Advanced
Apply
info_outline
X
In most instances, this position requires in-person interviews as part of the hiring process.
Minimum qualifications:
Bachelor's degree or equivalent practical experience.
8 years of experience programming in C++, Java, Python, Kotlin or Go.
5 years of experience testing, and launching software products.
3 years of experience with software design and architecture.
Experience integrating generative AI tools or LLM interfaces into workflows.
Preferred qualifications:
Master’s degree or PhD in Engineering, Computer Science, or a related technical field.
8 years of experience with data structures/algorithms.
3 years of experience in a technical leadership role leading project teams and setting technical direction.
3 years of experience working in a complex, matrixed organization involving cross-functional, or cross-business projects.
About the job
Google's software engineers develop the next-generation technologies that change how billions of users connect, explore, and interact with information and one another. Our products need to handle information at massive scale, and extend well beyond web search. We're looking for engineers who bring fresh ideas from all areas, including information retrieval, distributed computing, large-scale system design, networking and data storage, security, artificial intelligence, natural language processing, UI design and mobile; the list goes on and is growing every day. As a software engineer, you will work on a specific project critical to Google’s needs with opportunities to switch teams and projects as you and our fast-paced business grow and evolve. We need our engineers to be versatile, display leadership qualities and be enthusiastic to take on new problems across the full-stack as we continue to push technology forward.
The Shopping Graph is Google's comprehensive dataset of commercial information. It powers shopping experiences across all of Google, including Search, YouTube, Ads, and next-generation AI experiences like Gemini and AI Overviews. The Data Acquisition team is responsible for acquiring this high-quality commerce data. Our vision is to make it effortless for merchants to submit and enhance their product information, ensuring the Shopping Graph maintains extensive coverage and data quality.
As a core pillar within Data Acquisition, the Feeds Infra team builds and owns the foundational infrastructure that ingests data into the Shopping Graph via files, APIs, and web crawling. Beyond ingestion, we empower merchants and downstream teams to continuously improve product data quality, meeting the rigorous demands and rising bar of Agentic Commerce.
People shop on Google more than a billion times a day - and the Commerce team is responsible for building the experiences that serve these users. The mission for Google Commerce is to be an essential part of the shopping journey for consumers - from inspiration to to a simple and secure checkout experience - and the best place for retailers/merchants to connect with consumers. We support and partner with the commerce ecosystem, from large retailers to small local merchants, to give them the tools, technology and scale to thrive in today’s digital world.
Responsibilities
Provide technical leadership on high-impact projects.
Influence and coach a distributed team of engineers.
Facilitate alignment and clarity across teams on goals, outcomes, and timelines.
Manage project priorities, deadlines, and deliverables.
Design, develop, test, deploy, maintain, and enhance large-scale software solutions.
Information collected and processed as part of your Google Careers profile, and any job applications you choose to submit is subject to Google's Applicant and Candidate Privacy Policy.
Google is proud to be an equal opportunity and affirmative action employer. We are committed to building a workforce that is representative of the users we serve, creating a culture of belonging, and providing an equal employment opportunity regardless of race, creed, color, religion, gender, sexual orientation, gender identity/expression, national origin, disability, age, genetic information, veteran status, marital status, pregnancy or related condition (including breastfeeding), expecting or parents-to-be, criminal histories consistent with legal requirements, or any other basis protected by law. See also Google's EEO Policy, Know your rights: workplace discrimination is illegal, Belonging at Google, and How we hire.
If you have a need that requires accommodation, please let us know by completing our Accommodations for Applicants form.
Google is a global company and, in order to facilitate efficient collaboration and communication globally, English proficiency is a requirement for all roles unless stated otherwise in the job posting.
To all recruitment agencies: Google does not accept agency resumes. Please do not forward resumes to our jobs alias, Google employees, or any other organization location. Google is not responsible for any fees related to unsolicited resumes.
Equity is granted exclusively and discretionarily by Alphabet Inc. on the basis of an agreement concluded between you and Alphabet Inc. Alphabet Inc. is your sole contractual partner with respect to equity grants. GSU grants are not guaranteed, are discretionary, are subject to approval by the Alphabet Inc. board of directors or its delegate, the terms of the relevant Alphabet Inc. stock plan, and your grant agreement. They have no impact on statutory payments. Current or past grants do not confer an acquired right.
Follow Life at Google on
More about us
About usopen_in_new
Contact usopen_in_new
Pressopen_in_new
Related Information
Investor relationsopen_in_new
Blogopen_in_new
Equal Opportunity
Google is proud to be an equal opportunity and affirmative action employer. We are committed to building a workforce that is representative of the users we serve, creating a culture of belonging, and providing an equal employment opportunity regardless of race, creed, color, religion, gender, sexual orientation, gender identity/expression, national origin, disability, age, genetic information, veteran status, marital status, pregnancy or related condition (including breastfeeding), expecting or parents-to-be, criminal histories consistent with legal requirements, or any other basis protected by law. See also Google's EEO Policy, Know your rights: workplace discrimination is illegal, Belonging at Google, and How we hire.
Privacyopen_in_new
Applicant & Candidate Privacyopen_in_new
Termsopen_in_new
Manage cookies
helpHelpopen_in_new
language
English
Info In most instances, this position requires in-person interviews as part of the hiring process.
@@ -0,0 +1,59 @@
\ProvidesClass{resume}[2026/07/27 Evidence-first professional resume]
\LoadClass[11pt,a4paper]{article}
\RequirePackage{enumitem}
\RequirePackage{ifthen}
\RequirePackage{lastpage}
\RequirePackage{parskip}
\RequirePackage{needspace}
\pagestyle{empty}
\setlength{\parindent}{0pt}
\def\@resumename{}
\def\@resumeheadline{}
\def\@resumecontact{}
\newcommand{\name}[1]{\def\@resumename{#1}}
\newcommand{\headline}[1]{\def\@resumeheadline{#1}}
\newcommand{\contactline}[1]{\def\@resumecontact{#1}}
\newcommand{\printresumeheader}{%
{\LARGE\bfseries \@resumename}\par
\vspace{0.15em}
\ifthenelse{\equal{\@resumeheadline}{}}{}{\@resumeheadline\par}
\vspace{0.1em}
{\small \@resumecontact}\par
\vspace{0.45em}
}
\AtBeginDocument{\printresumeheader}
\newenvironment{rSection}[1]{%
\vspace{0.35em}
{\bfseries #1}\par
\vspace{0.1em}\hrule\vspace{0.35em}
}{%
\vspace{0.2em}
}
% Arguments: employer, dates, formal title, location.
\newenvironment{rSubsection}[4]{%
\Needspace{6\baselineskip}%
{\bfseries #1}\hfill{\small #2}\par
{\itshape #3}\hfill{\itshape #4}\par
\vspace{0.1em}
\begin{itemize}[leftmargin=1.25em,label=\textbullet,itemsep=0.18em,topsep=0.15em,parsep=0pt,partopsep=0pt]
}{%
\end{itemize}
\vspace{0.25em}
}
\newcommand{\skillline}[2]{%
\textbf{#1:} #2\par
\vspace{0.08em}
}
\newcommand{\compactentry}[2]{%
\textbf{#1}\hfill #2\par
}
@@ -0,0 +1,182 @@
# Session: Google — Staff Software Engineer, Shopping Graph (Feeds Infra)
## JD Integrity
- File/source: `jd_google_staff_swe_shopping_graph_2026-10-21.txt` (this folder). Employer posting:
https://www.google.com/about/careers/applications/jobs/results/102064172115600070-staff-software-engineer-shopping-graph?location=Switzerland
- Retrieval method and date: Playwright render of the employer page (job_scout `.venv`), 2026-10-21. Also present in
the 2026-10-08, 10-14 and 10-20 scout runs.
- Verbatim posting: YES (full rendered page text; page chrome kept, unedited).
- Posting status: LIVE on 2026-10-21. Location Zürich only. Google level label "Advanced". No salary range shown.
*"In most instances, this position requires in-person interviews."*
## Application Decision
- Audience profile: International Tech
- Evidence Fit: 73 (provisional, pre-critique)
- Fit class: **Stretch.** The score alone would read Adjacent, but `application_strategy.md` defines Stretch as
"a defining responsibility is only Adjacent", and on a Staff req technical leadership is defining (rows 8, 10,
11 are Adjacent). The comparison alternative, Senior SWE SRE YouTube ML, would also be Stretch (pure SRE is a
listed Stretch target; its distributed-systems and leadership minimums are Adjacent), so the pick stands.
Fit class is a preparation signal, not a spend limit: expect the leadership questions.
- Hard gate: PASS. All five minimum qualifications are Direct; the design/architecture line became Direct with the
user's 2026-10-21 clarification.
- Channel Strength: Weak
- Channel plan: cold submit via Google Careers. The user has no referral (2026-10-21). Optional warm action after
submitting: a short LinkedIn note to a Google Zürich Commerce/Shopping technical recruiter.
- Named contact published? NO (Google postings name no contact).
- Decision: PROCEED (user chose this req 2026-10-21 as the single Google application)
- Google limits: 3 applications per rolling 30 days; last Google submit 2026-07-27 (SWE III Business Home). Not a role
he applied to before, so the 90-day same-role wait does not apply.
- Prior Google record (context, no causal inference): SWE III Business Home, Senior Data Engineer (Merchant DS) and
Sr SWE Infrastructure (Data Pipeline) went cold and drew no interview.
## Requirements
| # | Requirement | Required/preferred | Direct/Adjacent/Gap/Constraint | Canonical evidence | Gate? |
|---|---|---|---|---|---|
| 1 | Bachelor's degree or equivalent | Required | Direct | EDU-BENG, EDU-MENG | yes |
| 2 | 8 yrs programming in C++, Java, Python, Kotlin or Go | Required | Direct but TIGHT: ~8.0 yrs elapsed without Vizrt (Generali Java 2015-17, Bosch Python/Java/Kotlin 2020-22, Swisscom Python 2023-), ~8.8 with Vizrt Python (VZ-1 rests on a user statement the reference letter does not corroborate); Fraunhofer C#/JS not counted. Name the language in each role's bullet so a recruiter can count | GN-3, VZ-1, BS-2, SW-1, SW-6 | yes |
| 3 | 5 yrs testing and launching software products | Required | Direct | GN-1, VZ-2, FC-1, BS-1, BS-2, SW-1, SW-9 | yes |
| 4 | 3 yrs software design and architecture | Required | Direct, scoped to own components (Bosch 2020-22 + Swisscom data products; user-confirmed 2026-10-21) | BS-1, BS-2, SW-7, GN-3 (contribution) | yes |
| 5 | Integrating GenAI tools or LLM interfaces into workflows | Required | Direct, modest depth (configuration/integration level only) | SW-8; LiteLLM, Copilot, Kiro | yes |
| 6 | Master's/PhD in Engineering or CS | Preferred | Direct | EDU-MENG (Software Design & Engineering focus) | no |
| 7 | 8 yrs data structures/algorithms | Preferred | Adjacent (practised, not separately recorded; interview-tested) | general | no |
| 8 | 3 yrs technical leadership leading project teams, setting technical direction | Preferred | Adjacent: component/application ownership, BDD introduction, mentoring; no project-team lead recorded | SW-2, BS-3, GN-1, BS-9, SW-10 | no |
| 9 | 3 yrs complex matrixed org, cross-functional projects | Preferred | Direct | SWISSCOM (SAFe ART, company-wide Data Mesh), BOSCH (fab teams, vendors) | no |
| 10 | Technical leadership on high-impact projects; influence and coach a distributed team | Responsibility | Adjacent | SW-2, BS-3, BS-9, SW-10 | no |
| 11 | Facilitate cross-team alignment; manage priorities, deadlines, deliverables | Responsibility | Adjacent | SW-4 (prototype-and-iterate with stakeholders/architects), SW-3 (backlog with PO) | no |
| 12 | Design, develop, test, deploy, maintain large-scale software | Responsibility | Direct for the function; Google scale is Adjacent | SW-1, SW-7, BS-1, BS-2 | no |
| 13 | Feeds infrastructure: ingestion via files, APIs, web crawling; product data quality | Domain | Direct for ingestion and data quality; web crawling Gap; commerce/merchant domain Gap | SW-2, SW-1, SW-7, BS-2, BS-8 | no |
| 14 | Zürich onsite/hybrid, in-person interviews | Constraint | Constraint: Thun–Zürich commute and fewer than his 3 homeoffice days; acceptable only for a clear overall improvement (config Job-change Preferences). Clarify at first contact | config.md | no |
Evidence Fit (critique_framework.md): required 32/35 · responsibilities 17/25 · level/ownership 8/15 ·
recency/depth 7/10 · domain/tool transfer 6/10 · practical 3/5 = **73**. Class **Stretch** by definition (defining
responsibility only Adjacent), not by score. Serious gap: Staff-level technical leadership (rows 8, 10, 11).
## Competitive Read
- Obvious-fit candidate: a senior/staff backend engineer from a large-scale ingestion or catalog team (Google
internal, Amazon catalog, a marketplace), current in Java/C++, who has tech-led a team of engineers.
- Dennis's advantage: over a decade of end-to-end ingestion and data-quality work across very different sources (fab
sensor/process data, telco fulfillment data), current design of governed data products on AWS, production
integration under a hard failure constraint (24/7 fab), and long work inside matrixed enterprises.
- Their advantage: Google-scale distributed systems, current Java/C++, a recorded tech-lead role, and fluency in
the data-structures/algorithms interview.
- Level/scope comparison: Staff (L6) asks for project-team leadership he has only as component/application owner
and mentor. Present that honestly; do not inflate it.
## Framing Strategy
- Professional identity: Staff data engineer who designs and builds data ingestion and data products.
- Strongest proof points: SW-7 (design of governed data products, current), SW-2 (owned ingestion component with
data quality and on-call), BS-2/BS-1 (designed ingestion services and the ML-inference integration at Bosch).
- Honest adjacent bridges: Glue/PySpark/Airflow ingestion as a bridge to Feeds Infra; Bosch normalization across
coordinate systems (BS-8) as a data-quality story; SW-8 as the GenAI-in-workflows minimum.
- Explicit gaps: web crawling, commerce domain, Google internal stack (Flume/Spanner/Bigtable are forbidden as
claims), technical leadership of a team, current Java.
- User directives: none beyond the role choice.
## Resume Plan
- Summary: 2 lines.
- Skills: about 5 rendered lines plus certifications (see the plan presented 2026-10-21).
- Swisscom: SW-7, SW-1+SW-6+SW-9, SW-8, SW-2, SW-10+SW-4 (5 bullets; mentoring leads the last one).
- Bosch: BS-2 ("designed" covers the ingestion scripts only), BS-1, BS-8, BS-3+BS-5+BS-9 (4 bullets); BS-6 held in
reserve.
- Earlier experience: Fraunhofer FC-1+FC-3, Vizrt VZ-2+VZ-1, Generali GN-1+GN-3 (1 each; GN-1 shows introducing BDD,
presenting it and training the project).
- Leadership evidence, allowed verbs only (owned, served, onboarded, mentored, guided, introduced, trained): SW-2,
BS-3, SW-10, BS-9, GN-1. Never "led" or "managed".
- Total bullets: 12.
- Impact evidence still needed: none claimed. All metrics are unverified and omitted.
- Open wording check: SW-8 "migration and data-mapping" detail rests on `experience_swisscom.md` (user-confirmed
2026-07-10), not on canonical SW-8 scope. Ask before using it.
## Cover Letter Decision
- YES/NO: NO
- Reason: not requested; Google's screen is minimum-qualification driven, and there is no transition, relocation or
personal connection a letter would add. If the portal offers an optional field, leave it empty.
- Information it adds beyond resume: none material.
- Verified hook sources: n/a
## As Built (2026-10-21)
- Plan confirmed by the user 2026-10-21 ("i confirm, go on"). The SW-8 "migration and data-mapping" detail was
NOT answered, so it is omitted (accuracy default).
- 13 bullets: Swisscom 5 (SW-7; SW-1+SW-6+SW-9; SW-2; SW-8; SW-10+SW-4), Bosch 5 (BS-2; BS-8; BS-1; BS-3+BS-5;
BS-9+BS-7), Fraunhofer 1 (FC-1+FC-3), Vizrt 1 (VZ-2+VZ-1), Generali 1 (GN-3+GN-1). The Bosch mentoring line was
split into its own short bullet (cadence and the two-accomplishment limit).
- Self-audit fixes before presenting: Kotlin removed from the BS-2 data-services bullet (the services were
Python/Java/C#; Kotlin was backend, Ansible plugins and extensions); "team workflows" changed to "development
workflows" (team adoption is not recorded); "maritime" removed from FC-3 (not recorded for the platform); BS-8 reworded so it no longer says the coordinate
transformation ran inside Oracle (BS-8 establishes SDO_GEOMETRY data and CRS transformation as separate facts;
spatial operators are not confirmed) - caught by the advisor review.
- Layout: Swisscom on page 1, Bosch starts page 2 (template default), "Professional Experience (continued)".
Skills 6 rendered categories / 8 lines. Certifications on one entry; iSAQB CPSA-F kept unbroken with \mbox.
- Validation: `validate_resume_system.py --document` PASS, 0 warnings (an initial cadence WARN, 8/13 triples,
was fixed by reshaping the SW-8 and Generali sentences). pdflatex: 2 pages, no overfull/underfull boxes.
pdftotext order: employer, dates, title, location for every role. PDF metadata: empty Title/Author.
`page_metrics.py` could not run (Git's pdftotext rejects `-bbox`); page-1 weighting checked visually instead:
experience starts at roughly 45% of page 1.
## Edit History
### 2026-10-21 — post-critique edit (user: "apply improvements which you think are important")
- **User directive:** make acceptable stretches to maximise interview chances, including saying he set technical
direction. Verbatim context: *"I'm a staff engineer at Swisscom - of course that is my day to day responsibility
but i cant think of something concrete right now. Dont add it to the KB."*
- **Declined part:** inventing a concrete technical-direction incident he could not name. Reason: Google loops ask
for the story behind every line, and a fabricated specific is the likeliest thing to fail there.
- **What was done instead:**
1. New Swisscom bullet 2 frames the recorded SW-4 prototype-and-iterate episode as setting technical direction
(he built a prototype, proposed it to business, architects and engineers, and iterated). This is an existing
canonical fact, reframed, and the interview story behind the line. SW-10 mentoring stays in it.
2. Summary: "sets the technical direction for the data products of his domains". **Source: the user's
2026-10-21 statement above. NOT in `claims.json`, at the user's request.** Scoped to his own domains' data
products; no artefact, adoption count or cross-team authority is claimed. Treat it as application-specific
wording, not reusable evidence.
3. SW-1 bullet opens "As primary engineer for the owned data domains" (SW-1 scope wording).
4. SW-2 bullet leads with the Component Owner title.
5. SW-8 reframed to mirror the JD minimum ("Integrated GenAI tools and LLM interfaces into workflows") without
tying the assistants to development work.
6. BS-1: "Designed the integration ... and deployed it" (allowed verbs), a launch signal.
7. Headline adds "Data Quality". Trimmed BS-2, BS-3 (user training/documentation dropped) and Generali; GN-1
training kept as leadership evidence.
- **Before → after:** validator PASS/0 warnings → PASS/0 warnings (two intermediate cadence WARNs fixed by
reshaping); 2 → 2 pages; 13 → 13 bullets; no overfull/underfull boxes; employer/title/date order unchanged.
- **Estimated Document Quality after edit: ~86** (leadership now visible on page 1; provenance −1 for the
user-sourced summary line). The critique is STALE: re-run `/critique` for a scored figure. Evidence Fit is
unchanged at 70 Stretch; writing cannot change fit.
## Output Files
- Resume: `e2e_google_staff_swe_shopping_graph_resume.tex` (source of truth) + `.pdf`
- Cover letter: intentionally omitted
- Critique: `critique_google_staff_swe_shopping_graph.md` (not yet)
## Critique Summary (2026-10-21, `critique_google_staff_swe_shopping_graph.md`)
- Evidence Fit: 70 (critique rescore; provisional was 73). Class **Stretch**: the defining responsibility,
Staff-level technical leadership, is only Adjacent.
- Hard gate: PASS (all five minimums Direct; 8 yrs programming and GenAI are tight/modest)
- Document Quality: 84
- Channel Strength: Weak (cold, no referral)
- Tier 1 fixes: none
- Tier 2: (1) ask for one recorded instance of setting technical direction for other engineers; (2) ask for
any verifiable scale count; (3) SW-8 framing; (4) BS-1 "deployed" as a launch signal; (5) trim three long
bullets.
## Status
- Fit gate: DONE 2026-10-21 (Adjacent, PASS)
- Resume: GENERATED, validated and compiled 2026-10-21; awaiting user approval
- Cover letter: NO
- Critique: DONE 2026-10-21 (Evidence Fit 70 Stretch, gate PASS, Document Quality 84, channel Weak, no Tier 1).
**STALE after the 2026-10-21 post-critique edit** (see Edit History).
- Application/outcome: not submitted. At submission: copy the PDF to `Dennis_Thiessen_Resume.pdf`, add the
application with `application_tracker.py add` (date = submission date), and set the decision-log row to `applied`.
- **FINALIZED 2026-10-21** on user approval ("na, finalize it"). Validator PASS / 0 warnings; PDF newer than `.tex`;
`Dennis_Thiessen_Resume.pdf` is a byte-identical copy (2 pages, empty metadata). No cover letter (decision NO).
The critique on file predates the last edit (marked stale); the user approved without a re-score.
- **SUBMITTED 2026-10-21** via Google Careers, cold (user-confirmed "submitted just now"). Recorded in
`job_scout/state/applications.json` as `app-google-staff-shopping-graph-102064172115600070` (stretch, 70, weak,
gate pass, applied); decision-log row set to `applied`; `current_applications.md` regenerated.
- Google limit: this is the first Google submit since 2026-07-27, so 2 slots remain in the rolling 30 days to
2026-11-20.
- Next: await Google's response. At first contact clarify the level (L6 vs L5), Zürich hybrid days and the total
package. Interview prep: SW-4 prototype story; one concrete Staff example named by the user; Java currency;
end-to-end system design with scale and trade-offs. Optional before that: a re-run of `/critique` for a fresh score.
Interview prep: have the SW-4 prototype story ready as the "technical direction" answer, plus one day-to-day
Staff example he can name himself.
- KB changes this session: `knowledge_base/extractions/2026-10-21_software_design_architecture_clarification.md`;
`claims.json` BS-1, BS-2 (+`designed` verb), SW-7 scope; `config.md` data-product design row.