Build Customer Lakehouse Pipeline
Build a production-oriented customer data pipeline from source ingestion through Bronze, Silver, and Gold layers, making trusted customer data available for enterprise analytics.
Project Brief
Understand the business problem before designing the technical solution.
Business Requirement
A company has introduced a new Customer Management System. Customer information is generated by the source system and delivered to cloud storage for downstream processing.
The data engineering team needs a new production pipeline that ingests the customer data, validates and transforms it, and publishes a trusted customer dataset for analytics and reporting.
Your Responsibility
You are responsible for designing and developing the complete data pipeline from source ingestion through the final analytics-ready customer dataset.
Source System
Understand the source contract before designing the pipeline.
Source Overview
Customer data originates from the Customer Management System. The source system produces customer records that are delivered to the data platform for downstream processing and analytics.
Delivery Pattern
Customer data is delivered as a daily batch feed. Each delivery represents customer information received from the source system for processing by the data engineering platform.
Input Format
Customer Dataset
The primary source dataset is a customer master feed containing customer identity, contact, registration, and lifecycle information.
| Column | Data Type | Business Meaning |
|---|---|---|
customer_id | STRING | Unique identifier assigned to the customer. |
customer_name | STRING | Full name of the customer. |
email | STRING | Primary email address associated with the customer. |
phone | STRING | Customer contact number. |
country | STRING | Country associated with the customer. |
registration_date | DATE | Date on which the customer registered. |
status | STRING | Current lifecycle status of the customer. |
Known Source Constraints
The source contract defines what the pipeline receives. It does not prescribe how you should implement ingestion, cleansing, deduplication, validation, or storage. Those are engineering decisions that you must make as part of this development task.
Expected Architecture
Design the solution using a layered lakehouse architecture.
Target Data Flow
The customer pipeline should follow a layered architecture where raw source data is preserved, business transformations are applied in controlled stages, and the final dataset is prepared for analytics consumption.
Layer Responsibilities
Architectural Expectations
The architecture defines the expected responsibilities of each layer. The implementation approach, transformation strategy, partitioning approach, naming conventions, and processing logic are engineering decisions that must be determined by you.
Development Requirements
The solution must address the following engineering responsibilities.
Developer Objective
Build the customer data pipeline described in the business requirement and architecture sections. The implementation should process the incoming customer dataset through the required data layers and produce a trusted analytics-ready customer dataset.
You are expected to make the technical decisions required to implement the solution while following the architectural and business requirements defined in this task.
Source Ingestion
Establish a reliable process for reading customer data from the configured landing location.
Bronze Layer
Create the raw customer data layer while preserving the source information required for traceability.
Silver Transformation
Transform raw customer records into clean and standardized customer data.
Gold Dataset
Create an analytics-ready customer dataset for downstream consumers.
Data Quality
Ensure customer records meet the minimum quality expectations before reaching the trusted layer.
Error Handling
Make pipeline failures visible and operationally manageable.
Processing Logging
Provide sufficient operational visibility into each pipeline execution.
Incremental Processing
Design the pipeline so that repeated executions do not unnecessarily reprocess the complete historical dataset.
Snowflake Publishing
Publish the curated customer dataset to the downstream analytical platform.
Production Readiness
Ensure the solution is structured as an operational data engineering pipeline rather than a one-time script.
Multiple technical approaches may satisfy these requirements. You are expected to evaluate the problem and select an appropriate implementation strategy rather than following a predefined solution.
Testing Requirements
Prove that the pipeline produces correct, reliable, and repeatable results.
Testing Objective
The pipeline must be tested before it can be considered complete. Testing should verify both the expected processing path and the behavior of the pipeline when data or execution conditions are not ideal.
Schema Validation
Verify that incoming data conforms to the expected customer dataset structure.
Data Quality Validation
Verify that customer records are evaluated against the defined quality expectations.
Duplicate Handling
Verify that duplicate customer records do not incorrectly create multiple trusted customer records.
Transformation Validation
Verify that transformations produce the expected Silver and Gold data.
Record Count Reconciliation
Verify that record movement between pipeline stages can be explained.
Incremental Processing
Verify that repeated executions behave correctly when new and previously processed data are present.
Failure Handling
Verify that expected pipeline failures are handled and made visible.
Target Validation
Verify that the curated customer dataset is correctly published to Snowflake.
Reprocessing Test
Verify that the pipeline can safely recover from a previous execution or processing failure.
End-to-End Validation
Verify the complete pipeline from source input through the Snowflake target.
A successful test is not simply evidence that the pipeline runs. The developer should be able to demonstrate that the pipeline produces the expected data, handles invalid conditions correctly, and behaves safely when execution is repeated or interrupted.
Acceptance Criteria
The development task is complete only when the solution satisfies the following conditions.
Definition of Done
The solution should be considered complete only when the pipeline has been implemented, tested, and demonstrated to satisfy the business, data, architectural, and operational expectations defined in this task.
If the answer is no, identify the missing requirement, testing evidence, operational safeguard, or data quality control before considering the development task complete.
The completed solution should include the implementation, relevant configuration, test evidence, and concise documentation explaining the major engineering decisions made during development.
Developer Deliverables
The completed task should be submitted with the following implementation and evidence.
Required Deliverables
The implementation is not considered complete until the required engineering artifacts and supporting evidence are available for review.
A completed implementation without supporting test and execution evidence should not be treated as a complete development submission.
Engineering Constraints
Implementation freedom is encouraged, but the following engineering boundaries must be respected.
Non-Negotiable Engineering Practices
The implementation approach is intentionally left to the developer. However, the solution should follow the engineering constraints below to ensure that the resulting pipeline is reliable, maintainable, and suitable for operational use.
These constraints define the engineering boundaries of the task, not a predefined implementation. Different technical solutions may be acceptable when they satisfy the business requirements, testing expectations, and engineering standards.
Prerequisites
Recommended knowledge and skills before attempting this development task.
Expected Knowledge
This task is designed for a developer who is already comfortable with the fundamentals below. The task focuses on applying those skills to a complete data engineering problem rather than teaching each technology from the beginning.
You do not need to know the exact solution before starting this task. The purpose of the Development Arena is to apply your existing engineering knowledge and make appropriate technical decisions while solving the problem.
Build the solution, don't just follow the solution.
This task is designed to simulate real development work. Requirements define what the system must achieve; the engineering solution is yours to design.