I've been loosely tracking DE comp for a while and just went through a search myself, so here's an updated picture for anyone researching this.
Context: 7 YOE, Python/Spark/dbt/Airflow stack, most recent role was senior DE at a Series D fintech in NYC. Left voluntarily to take a staff DE role at a public company. Salary went up, RSU went up significantly, on-call schedule improved. The grass is usually not greener but in this case it was.
Senior DE (5-8 YOE), 2026: Tier 1 (FAANG/quant/big fintech): $200-260k TC, NYC/SF Tier 2 (Series C-D, mid-market public): $155-195k TC Tier 3 (early stage, Series A-B): $120-160k base, equity might matter more Remote: discounts vary, maybe 5-15% below the comparable in-office offer
Staff DE (8+ YOE): Tier 1: $320-450k TC Tier 2: $220-280k TC Staff title at a Series B is different from staff title at a company with 3k engineers. Adjust accordingly.
What moved the needle in my negotiation: I had a competing offer. Without it I would have left 15-20k on the table. The competing offer was from a place I'd have been fine going to, and the recruiter at my preferred company knew I was serious.
Skills that commanded a premium in the roles I saw: Spark + streaming (Flink or Kafka Streams, not just Kafka basics), data mesh architecture experience, working knowledge of the modern data stack at scale (not just dbt on a small warehouse). Iceberg/Delta Lake familiarity is becoming a differentiator for senior-to-staff roles.
Leveling is inconsistent. My current "staff" role would have been a senior 2 at my previous company. Titles mean nothing without knowing the headcount and engineering org size. Ask how many engineers are at the company total and how many are at or above your level before you accept a staff label.