Custom Tooling and Dogfooding

Developer Experience custom tooling and dogfooding practices

GitLab dogfoods extensively. The Developer Experience stage builds custom tooling to address GitLab functionality gaps, creating a valuable feedback loop between internal needs and product development.

The Custom Data ↔ Custom Tooling Loop

Over the years, we’ve built custom tooling for missing GitLab features (triage-ops, test health management, CI observability, in-job metrics). This custom tooling generates custom data that’s not part of GitLab’s production database.

By integrating custom tooling as product features, we achieve:

  • Features that benefit customers (if it helps us as customer zero, it likely helps others)
  • Custom data becomes product data, available by default in visualizations
  • Reduced technical debt from maintaining custom solutions
  • Every improvement benefits both customers and internal teams

Current Custom Tooling

CI/CD Pipeline Observability

Tool Purpose Repository Status Product Potential
CI Alerts Real-time alerting for pipeline failures and performance issues ci-alerts Active High - Could become native pipeline alerting
CI/CD Pipelines Observability Pipeline visualizer, failure categorization, CI log scraping for custom metrics, and comprehensive analytics requiring tests as first-class citizens and runner improvements Epic #22, Pipeline Visualizer, Failure Categories Active High - Requires runner epic and native test concept in product
Snowflake Observability Custom dashboards and analytics for GitLab.com operations and performance snowflake-dashboard-sql Active High - Could be integrated directly in product

Triage and Issue Management Automation

Tool Purpose Repository Status Product Potential
Triage Ops (Reactive) Real-time automated issue and MR triage using custom policies and reactive engine triage-ops Active High - Advanced real-time triage automation
Triage Ops (Scheduled) Scheduled triage operations including weekly team reports and batch processing triage-ops Active High - Could benefit many customers (for example, weekly team reports)

Review and Code Quality Tools

Tool Purpose Repository Status Product Potential
GitLab Roulette Intelligent reviewer assignment system that considers domain expertise, availability, and workload gitlab-roulette Active High - Core developer workflow improvement
GitLab Danger Files Standardized CI-based code review automation and policy enforcement gitlab-dangerfiles Active High - Demonstrates advanced merge request automation
Renovate Bot Automated dependency management across GitLab projects renovate-gitlab-bot Active High - Multiple teams built similar solutions, clear product need

Test Health and Quality Management

Tool Purpose Repository Status Product Potential
Flaky Tests Management RSpec report parsing from job artifacts, automated test behavior analysis, GitLab issue creation for test health tracking, and data pipeline to GCS/Snowflake gitlab_quality-test_tooling Active High - Native test results concept missing from product
Slow Tests Management RSpec profiling and analysis with custom frontend/backend for test performance insights RSpec profiling stats, gitlab_quality-test_tooling Active Medium - Built but limited team adoption/reaction

Incident and Process Management

Tool Purpose Repository Status Product Potential
Main Branch Broken Process Automated identification, incident management, response, and revert MR handling broken main branch workflow Active High - Critical workflow for maintaining stable main branches

Data and Analytics Infrastructure

Tool Purpose Repository Status Product Potential
Data Pipelines Custom data processing pipelines feeding Snowflake dashboards and analytics test_tooling project, various GCS buckets, internal events, Snowflake SQL queries, alerting Active Medium - Could be integrated directly in product