Design a YAML-Configured Point-Cloud Transformation Pipeline

Read the full interview experience this question came from →

Quick Overview

Design point-cloud preprocessing with a validated YAML schema, registered transform interfaces, clear dataflow, metadata handling, and execution checks.

Design a YAML-Configured Point-Cloud Transformation Pipeline

Company: Gatik

Role: Machine Learning Engineer

Category: Software Engineering Fundamentals

Difficulty: hard

Interview Round: Technical Screen

Design a configurable point-cloud preprocessing pipeline. It reads a YAML configuration describing a sequence of transformations, validates that configuration, builds the data flow, and applies the transformations to point-cloud data. ### Requirements and Constraints Cover the YAML schema, interface abstractions, configuration validation, dataflow model, and execution. No particular transformation library, point-cloud format, or mandatory transformation list is supplied. Use clearly labeled examples if needed, and keep the design extensible without allowing arbitrary configuration text to become executable code. ### Part 1 — Define the Configuration and Interfaces Explain how YAML identifies transformations and their parameters, and how implementations expose a common interface. #### What This Part Should Cover - A versioned configuration shape and explicit transformation identifiers. - Parameter schemas, transformation registration, and input/output data contracts. - The treatment of coordinate frames, units, point attributes, and transformations that change point count. ### Part 2 — Validate and Build the Data Flow Validate the configuration before processing expensive data and construct its execution order. #### What This Part Should Cover - Syntax, schema, parameter, and semantic validation with useful error locations. - The distinction between an ordered sequence and a graph with explicit dependencies. - Compatibility between neighboring transformations and rejection of invalid references or cycles if a graph is supported. ### Part 3 — Apply and Observe Transformations Explain how the pipeline runs and how failures or unexpected outputs are handled. #### What This Part Should Cover - Execution order, mutation or ownership rules, and propagation of point-cloud metadata. - Handling of empty clouds, invalid numeric values, and transform failures according to explicit contracts. - Reproducibility, stage-level observability, and tests that verify composition rather than only isolated transforms. ```hint A syntactically valid configuration can still describe an invalid pipeline A parameter can have the correct type while requesting an impossible transform, or one stage can produce attributes the next stage cannot use. Validate meaning as well as YAML structure. ``` ### What a Strong Answer Covers The design connects a clear configuration schema to registered implementations and a validated dataflow plan. It preserves point-cloud semantics, makes ordering and mutation explicit, reports actionable errors, and can add transformations without rewriting the pipeline runner. ### Follow-up Questions 1. What changes if a transformation removes points while another stage expects per-point attributes aligned to the original cloud? 2. How would you prevent a misspelled parameter from silently taking a default value? 3. When would a simple ordered list be preferable to a DAG, and what additional validation does a DAG require?

Overview: Design point-cloud preprocessing with a validated YAML schema, registered transform interfaces, clear dataflow, metadata handling, and execution checks.

Read the full Gatik Machine Learning Engineer interview experience this question came from

|Home/Software Engineering Fundamentals/Gatik
Gatik logo
Gatik
Aug 27, 2026
hardMachine Learning EngineerTechnical ScreenSoftware Engineering Fundamentals
0
0

Design a configurable point-cloud preprocessing pipeline. It reads a YAML configuration describing a sequence of transformations, validates that configuration, builds the data flow, and applies the transformations to point-cloud data.

Requirements and Constraints

Cover the YAML schema, interface abstractions, configuration validation, dataflow model, and execution. No particular transformation library, point-cloud format, or mandatory transformation list is supplied. Use clearly labeled examples if needed, and keep the design extensible without allowing arbitrary configuration text to become executable code.

Part 1 — Define the Configuration and Interfaces

Explain how YAML identifies transformations and their parameters, and how implementations expose a common interface.

What This Part Should Cover Guidance

  • A versioned configuration shape and explicit transformation identifiers.
  • Parameter schemas, transformation registration, and input/output data contracts.
  • The treatment of coordinate frames, units, point attributes, and transformations that change point count.

Part 2 — Validate and Build the Data Flow

Validate the configuration before processing expensive data and construct its execution order.

What This Part Should Cover Guidance

  • Syntax, schema, parameter, and semantic validation with useful error locations.
  • The distinction between an ordered sequence and a graph with explicit dependencies.
  • Compatibility between neighboring transformations and rejection of invalid references or cycles if a graph is supported.

Part 3 — Apply and Observe Transformations

Explain how the pipeline runs and how failures or unexpected outputs are handled.

What This Part Should Cover Guidance

  • Execution order, mutation or ownership rules, and propagation of point-cloud metadata.
  • Handling of empty clouds, invalid numeric values, and transform failures according to explicit contracts.
  • Reproducibility, stage-level observability, and tests that verify composition rather than only isolated transforms.

What a Strong Answer Covers Guidance

The design connects a clear configuration schema to registered implementations and a validated dataflow plan. It preserves point-cloud semantics, makes ordering and mutation explicit, reports actionable errors, and can add transformations without rewriting the pipeline runner.

Follow-up Questions Guidance

  1. What changes if a transformation removes points while another stage expects per-point attributes aligned to the original cloud?
  2. How would you prevent a misspelled parameter from silently taking a default value?
  3. When would a simple ordered list be preferable to a DAG, and what additional validation does a DAG require?
Loading comments...