Granule·Labs

Open role

Senior Data Engineer

Granule Labs · Minneapolis, MN or Seattle, WA · Full-time

The basics

Out of the way up front, so the rest of this can be about the work.

Compensation

$140,000 – $165,000 base, plus bonus and benefits.

Location

Minneapolis, MN or Seattle, WA.

Travel

Minimal client travel.

Employment

Full-time.

Role type

Hands-on individual contributor.

Career track

Technical depth, not people management.

About the role

This is the core engineering work: physical design, ingestion, query optimization, and the decisions that determine whether large analytical systems are fast and economical.

Most of your week is schema, query plans, and pipelines, on data large enough that the decisions actually matter.

It is hands-on, but not hidden.

You work beside the client's engineers, explain the decisions as you make them, and leave their team able to run what you built.

You work with a small number of clients at a time and move between their systems rather than living inside one. Different industries, different data shapes, different environments — several times a year instead of once a decade.

About you

The last time a query got slow, your first move was the plan, not the instance size. You have seen what brute-force scaling costs, and you would rather understand the system first.

You want technical depth, not a management track. You like working with people and teaching what you know, but your ceiling should be defined by engineering depth rather than headcount.

You let measurements win. You can make the case for a design with evidence, defend it when needed, and change your own mind when the numbers go the other way.

You take ownership beyond the ticket. You want to understand why something worked, and you can explain difficult technical news to a client clearly without hiding the consequence.

What you'll own

Physical design and performance

Choose sort order, partitioning, indexes, projections, and compression strategies against real query shapes. Read the plan, read the system tables, and make the system read less.

Data modeling and precomputation

Design denormalized analytical models, materialized views, dictionaries, and the cases where joins are still the right answer.

Ingestion and migration

Build reliable streaming and batch paths, including backfill, replay, dual-write, verification, cutover, and rollback for large migrations.

The platform as code

Keep environments reproducible with Terraform, migration review, CI, and benchmark gates. If it cannot be reproduced, it is not done.

Teaching while you build

Work beside client engineers, explain the decisions you are making, and leave them able to operate and improve the system after we leave.

The table stakes

Skills and experience get you in the room. What is above is what gets you the job.

  • Senior data engineering experience. 7+ years building systems where scale was the actual problem — terabytes and up, billions of rows, high-cardinality data, and at least one consequential migration you personally delivered.
  • Deep analytical database experience. Production depth in ClickHouse or a closely related analytical engine, with strong understanding of physical design, materialized views, distributed execution, replication, and operational tradeoffs.
  • Analytical data modeling. Strong judgment around denormalization, dimensional design, event and telemetry schemas, slowly changing dimensions, and late or out-of-order data.
  • Streaming and ingestion. Production experience with Kafka or a comparable platform, including partitioning, ordering, backpressure, consumer behavior, and delivery guarantees.
  • Systems and infrastructure fundamentals. Expert SQL, strong Python, solid Linux and performance instincts, cloud experience in AWS, GCP, or Azure, and practical experience with Terraform, Kubernetes, and CI.
  • Working use of AI tooling. Coding agents and assistants are part of your actual workflow, and you know when to trust, verify, or discard what they produce.
  • Education. Bachelor's degree in computer science, engineering, or a related field — or equivalent practical experience.

What sets you apart

None of these are required, but they tell us where you may bring unusual depth.

  • Deep ClickHouse experience. You have operated ClickHouse at meaningful scale, contributed to the project, filed issues with real reproductions, or built something because the defaults were not enough.
  • Observability at scale. You have designed log, metric, or trace systems using technologies such as OpenTelemetry, Vector, ClickStack, Grafana, or similar platforms, and understand what changes when telemetry volume gets large.
  • Semantic and governance depth. You have worked with shared metric definitions, semantic layers, row- and column-level controls, quotas, spend limits, or multi-tenant isolation in analytical systems.
  • Engine-level systems work. You have worked close to the storage engine, query executor, or database internals in C++, Rust, or another systems language.
  • Large migrations with consequences. You can describe a migration or performance project that materially changed cost, latency, or reliability — including what went wrong along the way.
  • Visible technical craft. Talks, technical writing, open-source work, published benchmarks, or a GitHub history that shows how you approach hard engineering problems.
  • Consulting maturity. You have worked in professional services or a similar environment and are comfortable changing systems, industries, and client contexts several times a year.
  • A result with a number attached. You can point to a system you made faster, cheaper, smaller, or more reliable and explain exactly what moved.

Apply

careers@granulelabs.ai. Send us three things:

  • Your resume, covering the items above.
  • A note on any criteria you do not meet, and why you are worth talking to anyway.
  • A query plan you fixed, or a schema change that materially moved the number — on a system operating at terabyte scale or beyond.

That is worth more to us than a cover letter.

How we hire

We hire carefully, move quickly, and tell you where you stand.

If you meet most of the role, explain the gaps honestly and show us relevant work — a human will respond.

Four steps:

  1. Human phone screen

    A real conversation about your work, not a checklist.

  2. Technical screen

    A short assignment, live technical discussion, or coding exercise, depending on the role.

  3. Deep dive with the CTO

    Architecture, tradeoffs, and the decisions you have had to defend.

  4. Final conversation with the CEO

    How you work with clients, and whether this is the right place for you.

We aim to move quickly and tell you where you stand at every step.

If your experience doesn't line up exactly, apply anyway. We'd rather read your note than have you screen yourself out.