TinyFish

US & HCMC - Senior Software Engineer, Data Infrastructure

TinyFish Palo Alto, California, United States

Software Development · 51-200 employees

2 d ago
Senior (5-10 yrs) Full-time United States
Create a free account to apply — email only, no card. You can also save this posting or score it against your profile with AI.

About the role

Design and build infrastructure for data storage standards, lineage, policy propagation, retention, deletion, legal holds, customer commitments, and cost attribution across services, clouds, and analytics systems. Establish reusable tools and guardrails, monitor coverage, and enable engineering and business teams to answer data and cost questions without relying on engineers.

What they look for

Data Infrastructure Storage Architecture Data Lineage Distributed Tracing Data Lifecycle Management Data Governance Data Privacy Engineering Infrastructure as Code Terraform Cloud Infrastructure Cost Attribution FinOps Data Warehousing and Lakehouses GDPR and CCPA Compliance Distributed Systems AI and LLM Data Handling

Requirements

Requires significant experience building production data infrastructure and strong systems thinking across application services, queues, storage, clouds, and analytics platforms. Candidates should have experience implementing data-handling controls, building adopted engineering standards and automation, using infrastructure as code, and making sound tradeoffs across correctness, cost, latency, and delivery speed.

Benefits

Competitive Compensation Remote, Flexible, and Async-Friendly Working Environment

Full description

About TinyFish

TinyFish builds browser-based AI agents that do real work on the open web for enterprise customers. We're a small, technical team shipping fast against serious enterprise buyers, and they ask serious questions about where their data goes.

About the Role

We're looking for a Senior Software Engineer, Data Infrastructure, to own how data is stored, traced, governed, and accounted for across TinyFish. The goal is to make the answers to "where is this data, what did it cost, and is it handled the way we promised?" fast, consistent, and provable.

This is not a pipeline-maintenance or data-request role. You'll build the infrastructure that our product services, pipelines, and analytics sit on:

  • storage standards and the paved road for using them;
  • lineage and tracing across services and clouds;
  • data lifecycle controls such as retention, deletion, export, and legal hold;
  • enforcement of customer data commitments;
  • cost attribution;
  • shared definitions that keep our analyses consistent.

A single customer request at TinyFish fans out across multiple services, LLM providers, cloud platforms, and browser workloads. Along the way it produces logs, traces, screenshots, HTML, usage events, and results. Those land in operational databases, blob storage, S3/Iceberg, Databricks, and product analytics. We can answer most questions about that data today, but too often it takes an engineer digging through logs, code, and dashboards, and different systems give slightly different answers. You'll make those answers fast, self-serve, and consistent, for engineers and for the sales, support, security, legal, and finance teams who need them.

You'll own problems end to end: finding the paths nobody has documented, designing the system, implementing it, and making sure it stays correct as engineers add new services, tables, and stores. We care more about your engineering judgment and the coverage you can prove than about any particular tool.

Why this role, why now

We already handle commitments like "don't train on my data," zero data retention (ZDR), and GDPR deletion and export requests, and we can attribute AI and infrastructure costs to the tenants and features that caused them. Today, though, much of that depends on careful per-service engineering and manual investigation.

At the same time, some of our operational stores are growing faster than they should, because there isn't yet a clear standard for where different kinds of data belong. Our internal analyses also rely on hand-written filters that aren't consistent from one system to the next. All of these costs grow with every new service, data store, and enterprise contract.

These problems share a foundation: identity, policy, and lineage that travel with the data, clear standards for where data lives, and shared definitions everyone uses. You'll turn what we do carefully today into infrastructure that does it by default. Then the answers can reach the people who need them without an engineer in the loop: sales responding to a security review or contract requirement, support handling a customer data request, finance asking what a feature costs.

Example projects

  • Data lifecycle and data subject rights: retention and deletion that propagate to every copy of the data, including derived tables, caches, snapshots, and third parties. "Download my data" exports that are complete and repeatable. GDPR requests handled by the system rather than by an engineer.
  • Legal hold: the ability to put constraints on data that must not be deleted, and have deletion and retention respect them everywhere.
  • Customer data commitments: move "don't train on my data" and ZDR from careful per-service work to platform defaults that cover every path a request can take, including async queues, retries, error paths, and direct internal calls.
  • Storage standards and paved road: official guidelines for where each kind of data belongs (hot operational stores, large blobs, cold S3/Iceberg, Databricks for large analytics and historical analysis), with retention, partitioning, and cost defaults. Delivered as reusable Terraform modules and libraries so the right choice is the easy one. Includes migrating fast-growing operational tables to the right tier.
  • Cost lineage: automatic attribution of cost across clouds and providers to the originating tenant and feature. A request that goes A → B → C should reconcile with a direct call to C and with each provider's bill.
  • Codified cohorts and filters: a single, versioned definition of segments such as internal users, test accounts, employees, and enterprise customers, used consistently across product analytics, Databricks, and our other data systems in place of ad hoc user-ID lists and email regexes.
  • Self-serve enablement: give sales, support, legal, and finance direct access to provable answers, such as what we can commit to in an enterprise contract, the status of a customer's deletion or export request, or cost by tenant, without pulling in an engineer.

What You'll Do

  • Map how data actually flows through our services, clouds, and analytics systems, and where it lands, including the paths that aren't on any diagram.
  • Design and build propagation of identity, data policy, and lineage (tenant, policy flags, root request ID) across sync calls, queues, internal jobs, and data pipelines.
  • Enforce data policies, retention, deletion, and legal holds at the points where data is written and stored, so that missing context fails safe.
  • Build cost attribution and lineage systems that product, finance, and leadership can rely on.
  • Write and evolve data handling and storage guidelines, then turn them into Terraform modules, libraries, schema conventions, defaults, and CI checks so engineers rarely need to read them.
  • Build guardrails so new tables, services, and data stores are automatically brought under policy, or at least automatically flagged, instead of depending on someone remembering.
  • Define shared cohorts and data definitions, and make them the default across our analytics and data systems.
  • Monitor for drift and coverage gaps, and drive fixes to the root cause rather than one-off patches.
  • Partner with security, legal, and customer-facing teams to translate data commitments and contract terms into engineering requirements.
  • Treat sales, support, legal, security, and finance as customers of your systems. Build the reports, tools, and evidence they need to answer data questions themselves.
  • Participate in incident response for data-handling issues, and drive the systemic corrective actions that follow.

What success looks like

  • 30 days. You've mapped where customer data and cost flow across our core services and data systems, including the undocumented paths. You know which parts of our data lifecycle, commitment, and attribution coverage are automated and which depend on manual work. You know which questions from sales, support, legal, and finance cost the most engineering time to answer.
  • 60 days. Storage guidelines v1 are published, with a paved road for the most common cases, and the fastest-growing operational tables have a plan. Propagated request context runs across our core services. A first cost attribution view by tenant and feature exists, and the team uses it. Core cohorts, such as internal and test users, have one shared definition.
  • 90 days and beyond.
  • ZDR, no-train, and retention are enforced where data lands, with automated checks that catch new tables and stores that aren't covered.
  • New services and data stores come under policy by default.
  • Deletion, export, and no-train requests run through the system, respect legal holds, and can be proven end to end.
  • Lineage can answer "where is tenant X's data?"
  • Cost attribution reconciles with provider bills across clouds, and finance gets cost by tenant and feature without asking engineering.
  • Sales can see what we can commit to in a contract, and support answers customer data requests from the system.
  • Internal analyses use shared cohorts everywhere.

What We're Looking For

  • Significant experience designing and building production data infrastructure that other engineers build on: storage architecture, tracing or lineage, data access layers, or data platform tooling.
  • Strong systems thinking. You can follow data across application code, service boundaries, queues, storage systems, clouds, and analytics platforms.
  • Experience implementing data lifecycle and data-handling requirements, such as retention, deletion, data export, legal hold, consent or opt-out flags, GDPR/CCPA, or zero data retention. You've also made that coverage hold up as the system grew.
  • A track record of building controls and standards other teams actually adopt: defaults, libraries, infrastructure modules, schemas, and automated checks rather than wiki pages.
  • Sound judgment across correctness, cost, latency, and delivery speed.
  • Strong software engineering skills, and production experience with infrastructure as code.
  • Working knowledge of the storage landscape (relational stores, object storage, table formats like Iceberg or Delta, warehouses or lakehouses) and when each is the right fit.
  • Experience using AI coding tools effectively, along with the judgment to verify and own what they produce.
  • Clear communication, including explaining data commitments and tradeoffs to engineers, legal, and customers.
  • An enablement mindset: you measure success partly by how well other teams, technical and non-technical, can get answers without you.

Nice to Have

- Experience with distributed tracing and context propagation (e.g. OpenTelemetry).

- Experience with lineage or catalog systems (e.g. OpenLineage, Unity Catalog, DataHub).

- Experience with Databricks, Spark, or Iceberg at scale, including deletes, compaction, and snapshot management.

- Experience with cost attribution, chargeback, or FinOps for cloud or LLM spend, especially across multiple clouds or providers.

- Experience with product analytics platforms (e.g. PostHog, Amplitude) and keeping metric and cohort definitions consistent across systems.

- Background in privacy engineering, or experience with SOC 2, ISO 27001, or customer data-handling audits.

- Experience with AI/ML data handling: training-data preparation, LLM provider data policies, or eval datasets.

- AWS experience, including Terraform and multi-account environments.

What We Offer

  • Broad ownership over how data is stored, governed, and accounted for across TinyFish.
  • Close collaboration with the engineers building our products, and with security, legal, sales, support, and finance.
  • Hard problems at the intersection of AI, browser automation, and distributed systems.
  • A culture that values engineering judgment, simplicity, security, and ownership.
  • A remote, flexible, and async-friendly working environment.
  • Competitive compensation.