Klaviyo · klaviyo.com · checked today
Senior Software Engineer - Data Platform
<div class="content-intro"><p><em>At Klaviyo, we value the unique backgrounds, experiences and perspectives each Klaviyo (we call ourselves Klaviyos) brings to our workplace each and every day. We believe everyone deserves a fair shot at success and appreciate the experiences each person brings beyond the traditional job requirements. If you’re a close but not exact match with the description, we hope you’ll still consider applying.
Skills, with evidence
- Python
Klaviyo operates a real-time data analytics platform written primarily in Python that is built for massive scale and hosted on Amazon Web Services (AWS).
must have - AWS
Klaviyo operates a real-time data platform built for massive scale on Amazon Web Services (AWS).
must have · not practised here - Terraform
Experience provisioning infrastructure using Terraform or a similar infrastructure as code tool.
must have · not practised here - Streaming
<p>Klaviyo operates a real-time data platform built for massive scale on Amazon Web Services (AWS).
- Airflow / orchestration
<li>Airflow</li>
- Cost & performance
<p>Our salary range reflects the cost of labor across various U.S.
- SQL
<li>MySQL</li>
- Spark
<li>Spark</li>
- Warehousing
<li>Iceberg</li>
- Kubernetes
<li>Kubernetes</li>
not practised here
Your plan
- The SQL screen: correct, then fast≈ 2 h
SQL
- Median delivery time per cityIntermediate
- Bucket deliveries into quartilesIntermediate
- Median order value without a median functionIntermediate
- New and repeat orders by monthIntermediate
- Every order against its customer's averageIntermediate
- Python: the data-wrangling round≈ 3 h
Python
- Diff two snapshots of a tableIntermediate
- Explode an array column into rowsIntermediate
- Flatten nested event payloadsIntermediate
- Pivot a long metrics table to wideIntermediate
- Choose what an incremental run should readIntermediate
- Data modelling: the round most people fail≈ 3 h
Warehousing
- Subscription warehouse grainIntermediate
- Addresses that stay true to the pastIntermediate
- Campaign efficiencyIntermediate
- Chats, members and read receiptsIntermediate
- Churn that survives an argumentIntermediate
- Pipeline design: safe to run twice≈ 4 h
Streaming · Airflow / orchestration
- The source will not let youIntermediate
- Parcel tracking pipelineIntermediate
- Is this change safe?Intermediate
- Marketplace transactions at scaleIntermediate
- Five minutes behind the sourceIntermediate
- Spark: read the plan Spark actually ran≈ 2 h
Cost & performance · Spark
- broadcast() with auto-broadcast off, and the case where Spark ignores itIntermediate
- autoBroadcastJoinThreshold compares an estimate: flip a join with select() and one settingIntermediate
- Does Spark really run your EXISTS subquery once per row?Intermediate
- left_semi and left_anti: "customers who did / never did" without a full joinIntermediate
- A self-join on a real key that still multiplies rowsIntermediate
- Say it out loud≈ 1 h
Not covered by the plan: AWS, Terraform, Kubernetes.
Readiness
Counted from drills you have completed anywhere on D8LooP.
leaves in 8 dremoved the moment Klaviyo closes it
