Senior Software Engineer, Semantic Layer

dbt Labs dbt Labs · Data AI · India · Remote · Engineering

dbt Labs is seeking a Senior Software Engineer to join their Semantic Layer team in Bangalore. This role will focus on designing, building, and maintaining core features of MetricFlow, their open-source semantic engine. Responsibilities include owning the open-source project, collaborating with other engineering teams, improving performance and reliability, and translating feedback into improvements. The ideal candidate has strong Python and SQL skills, experience with systems involving parsing or compilation, and excellent communication abilities. Experience with open-source projects, data warehousing, or semantic layers is a plus.

What you'd actually do

  1. Design, build, and maintain core features of MetricFlow, including metric definitions, query compilation, dimensional modeling, and SQL generation across multiple data warehouses (Snowflake, BigQuery, Databricks, Redshift, and others).
  2. Own MetricFlow as an open-source project — triage issues, review external pull requests, manage releases, and engage the community on GitHub and in Slack.
  3. Collaborate with engineers across dbt Cloud, dbt Core, and the Semantic Layer service to ensure MetricFlow integrates seamlessly with the rest of the dbt ecosystem.
  4. Improve performance, reliability, and observability of metric query execution at scale.
  5. Partner with product, design, and developer-relations teammates to translate customer and community feedback into shipped improvements.

Skills

Required

  • Python
  • SQL
  • system design
  • parsing
  • compilation
  • software engineering
  • communication

Nice to have

  • open-source contribution
  • dbt
  • MetricFlow
  • LookML
  • Cube
  • data warehousing
  • query optimization
  • CI/CD
  • GitHub Actions
  • release engineering
  • developer-facing APIs
  • SDKs
  • CLIs

What the JD emphasized

  • Strong professional software engineering experience, with a strong track record of shipping production systems.
  • Deep proficiency in Python, including modern typing, testing practices, and packaging.
  • Strong SQL fundamentals and a working understanding of how analytical query engines and data warehouses execute queries.
  • Experience designing systems that involve parsing, compilation, or transformation — for example: query planners, DSL compilers, type systems, or rule-based engines.
  • Solid grasp of software design principles: clean APIs, modularity, testability, and backwards compatibility.
  • Excellent written and verbal communication — you can explain complex tradeoffs clearly to engineers, PMs, and external community members.
  • Experience collaborating in a distributed, asynchronous team environment.