YAML Generator for Funnel YAML Files: Streamlining the Mobile Data Workflow Process

Jack Ning, Xuan He
8 min readintermediate
--
View Original

Overview

The article discusses the development of the YAML Generator application at Uber, designed to streamline the creation of funnel YAML files for mobile data workflows. It highlights the challenges faced by engineers in managing these files and how the new application simplifies the process, reduces errors, and enhances productivity.

What You'll Learn

1

How to create funnel YAML files using the YAML Generator application

2

Why reducing complexity in input processes enhances productivity

3

How to leverage user feedback to improve application design

Prerequisites & Requirements

  • Basic understanding of YAML file structure
  • Familiarity with Uber's SuperFlurry application(optional)

Key Questions Answered

What is the purpose of the YAML Generator application?
The YAML Generator application simplifies the creation of funnel YAML files, making it easier for engineers to define sequences of events for analysis without needing to edit raw YAML files directly. This reduces errors and improves efficiency in setting up mobile data workflows.
How does the YAML Generator reduce human error?
The YAML Generator includes built-in validation that catches invalid inputs as they occur, ensuring that semantically and functionally correct funnel YAML files are generated. This contrasts with raw YAML files, where mistakes can be difficult to identify and rectify.
What technologies are used in the development of the YAML Generator?
The YAML Generator utilizes Fusion.js for the application UI and Apollo for handling API calls through a GraphQL server. Additionally, Apache Thrift is used to define APIs and Golang is employed for their implementation.
What are the key features of the YAML Generator?
Key features of the YAML Generator include drag-and-drop functionality for arranging steps, autocomplete for applicable fields, and a complete editing suite that allows for undo and copy-to-clipboard actions. These enhancements aim to improve user experience and efficiency.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Frontend
Fusion.js
Used to create the application UI.
Frontend
Apollo
Handles API calls through a GraphQL server.
Backend
Apache Thrift
Defines APIs for the application.
Backend
Golang
Implemented the APIs defined by Apache Thrift.

Key Actionable Insights

1
Utilize the YAML Generator to streamline the creation of funnel YAML files, reducing the time spent on manual edits.
By using the application, engineers can focus more on data analysis rather than the complexities of YAML syntax, leading to faster insights and improved decision-making.
2
Incorporate user feedback throughout the development process to enhance application usability.
Regular feedback from engineers can guide design improvements, ensuring the application meets user needs and reduces frustration with complex workflows.
3
Leverage built-in validation features to minimize errors in YAML file creation.
This proactive approach to error checking can save time and resources by preventing issues that arise from incorrect file formats.

Common Pitfalls

1
Many engineers struggle with creating valid YAML files due to the complexity of the syntax.
This often leads to frustration and wasted time as users attempt to debug their files. The YAML Generator addresses this issue by providing a user-friendly interface that minimizes the likelihood of syntax errors.