Square · Primly Community

Square data engineer interview, pipelines and SQL, here's the full loop breakdown

de_derek · 4 replies

Finished my Square DE loop last month. Posting this because I couldn't find a good writeup when I was prepping. Targeting senior DE, pipeline and platform focus.

Recruiter screen: 30 minutes. Mostly background, why Square, what's my experience with streaming vs. batch pipelines. I mentioned Kafka and Flink experience and the recruiter flagged that as relevant -- Square runs a real-time transaction platform so streaming is not optional here.

Technical screen: SQL heavy. Three questions, 45 minutes. Two were analytics-ish (aggregations, window functions). One was more data modeling: given a set of business requirements, design the tables. I sketched a fact/dimension model, they pushed back and asked about slowly changing dimensions. Know your SCDs.

Onsite (4 rounds):

Pipeline design / system design: Design a real-time pipeline to detect duplicate transactions. I talked through Kafka as the event stream, a stateful Flink job to window transactions and check for duplicates by idempotency key, sinking to Postgres for alerting and to S3 for historical analysis. They asked about failure modes: what if the Flink job goes down? How do you guarantee exactly-once? We spent a while on Kafka offsets and checkpointing.

SQL round: Heavier version of the phone screen queries. One problem had a recursive CTE (org hierarchy). I knew the syntax but hadn't practiced it much. Managed but it was slow.

Data modeling round: Design the data model for Square's seller analytics product. What does a merchant's transaction history schema look like? How do you handle schema changes over time? We got into versioning and column-level changes.

Behavioral: "Tell me about a pipeline that broke in production and how you handled it." Have this story. Have real numbers (SLA, data lag, business impact).

Prep essentials: Kafka + Flink or Spark Streaming, SQL including window functions and CTEs, star schema vs. OBT, exactly-once guarantees, and one solid incident story from your production experience.

Decision was 7 business days post-onsite. Passed to offer stage. Comp discussion is a separate post.

4 replies

contractor_kai

The exactly-once semantics question is pure fintech pain. In theory Kafka + Flink gives you it. In practice, your sink also has to be idempotent. They're testing if you know the end-to-end contract, not just the Flink config.

qa_quinn

Recursive CTEs in a SQL interview always feel like a trap. They're not hard once you've seen them but if you haven't written one recently you freeze. Org hierarchies are the classic example. Practice it once and you're fine.

hardware_hugo

Yeah I froze for about 90 seconds. Just needed to remind myself: anchor member + recursive member + termination condition. Once I verbalized the structure out loud the interviewer helped steer me and I got there.

ops_omar

What tools do they actually use internally at Square? Like are they on Spark or Flink day-to-day, and does knowing the specific tool matter in the interview?