Define a Git workflow for CI

Quick Overview

This interview question evaluates requirements, scale assumptions, API/data design, architecture, trade-offs, failure modes, and rollout in a realistic interview setting. A strong answer for Define a Git workflow for CI states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.

Define a Git workflow for CI

Company: NVIDIA

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Take-home Project

Propose a Git branching and release strategy for a graphics testing repo. Cover code review, protected branches, versioning of test assets (e.g., large textures), submodules or monorepo trade-offs, bisecting regressions, reverting bad changes, and maintaining reproducible builds. How would you integrate with Jenkins for gated merges?

Quick Answer: This interview question evaluates requirements, scale assumptions, API/data design, architecture, trade-offs, failure modes, and rollout in a realistic interview setting. A strong answer for Define a Git workflow for CI states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.

|Home/System Design/NVIDIA
NVIDIA logo
NVIDIA
Aug 9, 2025, 12:00 AM
mediumSoftware EngineerTake-home ProjectSystem Design
5
0

Define a Git workflow for CI

Design a Git Branching and Release Strategy for a Graphics Testing Repository

Context

You are designing the source control and CI/CD workflow for a graphics testing repository used to validate rendering pipelines across platforms and GPU architectures. The repo contains code (harness, shaders, test logic) and large binary test assets (e.g., textures, models, scenes). CI must run on GPU-equipped hosts and keep main stable while enabling rapid iteration.

Requirements

Propose a strategy that covers:

  1. Branching and release model (including protected branches and code review).
  2. Versioning and storage of large test assets (e.g., textures, scenes).
  3. Submodules vs. monorepo trade-offs and a recommendation.
  4. Techniques for bisecting regressions effectively.
  5. Reverting bad changes quickly and safely.
  6. Maintaining reproducible builds and test runs.
  7. Integration with Jenkins to enable gated merges (merge only after CI passes).

Clarifying Questions to Ask Guidance

  • Clarify users, core use cases, read/write patterns, scale, latency, availability, and data retention.
  • State explicit assumptions before making sizing or architecture decisions.
  • Prioritize the functional path first, then address reliability, security, observability, and rollout.

What a Strong Answer Covers Guidance

  • A scoped requirements summary with concrete non-goals and success metrics.
  • API, data model, architecture, consistency, capacity, and operations.
  • Reasoned trade-offs among simple and scalable designs, including bottlenecks and failure modes.
  • A validation, monitoring, migration, and launch plan appropriate for the risk level.

Follow-up Questions Guidance

  • What breaks first at 10x traffic or data volume?
  • How would you degrade gracefully during dependency failures?
  • What metrics and alerts would prove the design is healthy after launch?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...