Urgent.News

What's breaking now, across thousands of outlets.

Tech

The GitLab Way: How We Scaled Autonomous Problem-Solving with MVC, Boring Solutions, and the GitLab CLI

The GitLab Way: How We Scaled Autonomous Problem-Solving with MVC, Boring Solutions, and the GitLab CLI When engineers think of GitLab, they usually think of a CI/CD powerhouse or an all-in-one DevOps platform. But behind GitLab’s 100% remote, thousands-strong engineering organization lies one of the most rigorously documented, efficient software engineering cultures on the planet: The GitLab…

The GitLab Way: How We Scaled Autonomous Problem-Solving with MVC, Boring Solutions, and the GitLab CLI

At first glance, GitLab is known for its powerful CI/CD capabilities and all-in-one DevOps platform. However, the true secret behind GitLab's success lies in its unique engineering culture, which is meticulously documented in the Engineering Handbook. This handbook is built upon core principles such as Minimum Viable Change (MVC), Choose Boring Solutions, Single Source of Truth (SSOT), and Asynchronous-First Communication.

By adhering to these principles, GitLab has managed to eliminate common software engineering pitfalls like runaway refactoring, oversized pull requests, stalled code reviews, and broken CI pipelines.

Here is a step-by-step guide on how GitLab operates, how to apply their guidelines for autonomous problem-solving, and a comprehensive guide to using the GitLab CLI (glab) commands.

1. Core GitLab Engineering Principles

GitLab's philosophy is grounded in the CREDIT values: Collaboration, Results, Efficiency, Diversity/Inclusion/Belonging, and Iteration, all of which translate into three key pillars when solving problems or writing code:

- Pillar I: Minimum Viable Change (MVC)

- Philosophy: Don't wait for a feature or bug fix to be 100% polished before getting feedback.

- Scope Trimming: Break down fixes into smaller, sequential MRs, each delivering real value and validating the fix.

- Deferred Polish: If minor UI polish or edge-case handling must be sacrificed, document it as a follow-up issue.

- Pillar II: Choose Boring Solutions

- Philosophy: The best code is simple, unexciting, and obvious. Cleverness can be a liability in production.

- Application: Use standard library primitives, reuse existing helpers, and avoid adding third-party packages or speculative architecture.

- Pillar III: Single Source of Truth (SSOT) & Asynchronous Context

- Philosophy: Documented decisions in issues or handbooks are the only true source of truth.

- Application: No tribal knowledge or hidden Slack debates. Each issue must contain full reproduction steps, logs, expected behavior, and architectural decisions.

2. The Modern Command-Line Stack: glab & Git Worktrees

GitLab engineers work primarily in the terminal, utilizing the official GitLab CLI (glab) and Git Worktrees to navigate issues, branches, code reviews, and pipelines seamlessly.

- Authentication & Environment: Authenticate with GitLab.com or a self-managed instance using `glab auth login` and verify permissions with `glab auth status`.

- Git Worktrees: Create isolated directories for parallel work on issues, keeping branches clean and manageable.

- Issue Management with glab: View issue details, list open issues assigned to you, add notes, and update progress asynchronously.

- GitLab Quick Actions: Use text macros like `/assign`, `/label`, `/estimate`, and `/spend` to streamline MR descriptions and comments.

- Merge Request (MR) Lifecycle with glab: Create draft MRs for team visibility, track changes, assign DRI, add labels, estimate effort, and link to milestones.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

PokéBonk

Looking for a quick way to try PokéBonk? This browser-based 3D roguelite fan game combines movement, positioning, and upgrade choices in short runs.

Why Your Postgres Table Keeps Growing Even Though You're Deleting Rows

A while back I noticed something odd. A table with a modest number of rows was taking far more disk space than it should. SELECT count(*) said one thing, pg_relation_size said another.

  • PostgreSQL uses MVCC, keeping old row versions called dead tuples
  • VACUUM marks space reusable, doesn't shrink file on disk
  • VACUUM FULL rewrites table, locks it, or use pgrepack

InfiniBand Architecture First Principles: Physical Link Rates, Credit-Based Link Flow Control, and Subnet Manager Fabric Orchestration

Introduction: The Dedicated Arteries of Supercomputing — Native InfiniBand In Chapter 9 of our series, RDMA High-Performance Networking Foundations: Kernel Bypass, Zero-Copy, Queue Pairs, and Lossless…

  • InfiniBand designed for high-performance computing and AI, unlike Ethernet retrofitting RDMA
  • Physical link speeds from SDR 2.5 Gbps to XDR 800 Gbps, 1600 Gbps aggregate throughput
  • Credit-based hardware flow control prevents packet drops, eliminates deadlock hazards

More from Wednesday 21 October →