Skip to content
Customers

2017–2021 · GitHub Coding

How GitHub made complex systems intuitive.

GitHub deployed Califa across repositories, pull requests, and Codespaces for four years. Git stayed exactly as complicated as it was. Working with it on GitHub got easier and faster.

4 yrs
leading design across repositories, pull requests, and Codespaces
1 wk
to specify and complete the Code button before its announcement
1.5 yrs
from Suggested Changes to the first multi-line comment release

Every team uses pull requests differently.

Teams bring their own CI, branching, review culture, permissions, and merge gates. GitHub had to support all of it and still have an opinion about quality, speed, and what a developer should do next.

Califa worked from product principle to technical model to interaction detail. Depending on the problem, that produced a multi-year vision, a project that research killed before anyone built it, a new Git trailer, or a one-line arrow.

01

Product thinking

Defined pull requests around one job: integrate high-quality code. That principle gave security, CI, review, deployments, and every future feature a reason to exist in the same system.

PR vision · action items · code-at-scale strategy

02

Research

Tested the premise before polishing the request. WIP research disproved the original notification problem; partial-review work found a more useful need in simply tracking review progress.

WIP PRs · Draft PRs · partial reviews

03

Technical system design

Mapped branches, forks, revisions, force pushes, workspaces, permissions, and repository context until product and engineering could work from the same model.

Guest Branches · Review Points · Codespaces

04

Interaction design

Turned code review into tighter loops: propose a change inside a comment, apply it, comment across a range, and remember which files you already reviewed.

Suggested Changes · multi-line comments · file tracking

05

Microinteractions

Used the browser tab, a one-line arrow, recency color, precise labels, and small state changes to remove friction from workflows repeated millions of times.

Dynamic favicons · Git Blame · branch direction

06

Research infrastructure

Designed the machinery around research so teams could recruit a broader pool, track contact history, honor opt-outs, and learn without a researcher’s private Rolodex.

Participant system · Airtable pilot · operating docs

Poolside
“Califa is without question the best strategic thinking design model I’ve tested.”
Jason WarnerCEO, Poolside

Start with what pull requests are for.

Pull requests exist to integrate high-quality code. Review, CI, security, deployments, and approvals should each make that outcome clearer or safer.

That framing turned a crowded feature surface into a product strategy. It also surfaced the same problems across years of work: developers didn’t know what needed their attention, important feedback got lost, large changes were hard to read, and the review model itself was ambiguous.

Pull request design vision showing a file tree, code changes, floating comments, review state, and a merge checklist
The 2019 pull request vision connected file navigation, floating comments, actionable feedback, review state, and merge readiness into one coherent surface. Parts shipped; most remained direction for later teams.

Let research change the request.

Research was allowed to make the project smaller, different, or unnecessary.

WIP PRs began with reports from two customers about premature notifications. Interviews showed that teams meant different things by “work in progress,” had already built notification habits, and did not consistently experience the stated problem. The team stopped. Soon after, Draft PRs addressed a different need: giving developers permission to share unfinished work without feeling self-conscious.

Early work-in-progress pull request state model exploring open, in review, approved, and merged states
The first model added more states. Research revealed that the underlying problem was not coherent enough to justify them.

Partial reviews became Mark file as viewed.

Partial reviews tried to let specialists approve only the files they owned. The research found a more common need: helping people keep their place in a large change. Mark file as viewed shipped in July 2019, with interaction work on scrolling and perceived performance.

The narrower behavior solved a clearer problem and reduced the amount of state users had to manage.

Draw the system before drawing the screen.

Forks, force pushes, dependent changes, permissions, and review readiness are the product model. The interface sits on top of them.

Diagram of the setup and maintenance steps required when contributing through a fork
Forks were designed for divergence, then pressed into service for one-time contribution. The resulting setup burden became normal through repetition.
Guest Branches proposal showing a shorter first-time and repeat contribution flow
Guest Branches kept the contribution inside the original repository and removed most of the remote-management overhead. The concept did not ship.

Review Points modeled the rhythm, not just the status.

New pushes moved a ready pull request back into progress. An author explicitly published the next review point when the iteration was ready. Updates tracked every push, including force-push workflows, so the model could eventually support stacked diffs.

The staff ship failed: implementation drifted from the model, onboarding was missing, teams were reassigned, and the name confused people. The project was shelved.

Review Points state diagram moving a pull request between draft, ready for review, and in progress as updates are pushed
A pull request’s state became a sequence of explicit author–reviewer handoffs, with every push attached to the right iteration.

Build on what developers already know.

The best interactions extended something developers already used: a Markdown comment, a line-range gesture, a commit trailer.

Suggested Changes turned feedback into code that an author could apply. The first version was a small Markdown extension. Batch and multi-line flows followed as the comment system caught up. GitLab adopted the same syntax and interaction pattern almost verbatim; the convention subsequently spread across the industry.

Early Suggested Changes model showing a reviewer proposing code inside a comment and an author committing the change
The core model: a suggestion is a component inside a comment. That kept the feature legible in both Markdown and the rendered review.
Animated multi-line commenting interaction selecting a range of lines in a pull request diff
Multi-line comments used a click-and-drag express interaction. Multi-line suggestions shipped once the underlying model could support them cleanly.
Co-Authors turned a simple idea, sharing credit, into a system across GitHub. The resulting Co-authored-by convention is now used across the industry to share attribution with agents.

Sweat the change that takes one line.

At GitHub’s scale, a one-line change can remove friction from a workflow developers repeat all day.

CI state in the favicon

A hack-week project put build status in the browser tab, so developers did not have to keep reopening every pull request to see what changed.

An arrow instead of an ellipsis

Branch direction was easy to misread. A close-to-one-line change made the merge relationship explicit without introducing another explanation.

Recency that reads at a glance

Git Blame research showed that repository-relative color made old work look new. The scale was reframed around a meaningful time window.

GitHub notice explaining that the default branch was renamed and providing commands to update a local environment
After GitHub designer Vinicius Depizzol kicked off the project, Califa managed GitHub’s switch from master to main, completing the product work, adding guardrails, and giving developers the exact local commands they needed next.
GitHub partially verified commit popover distinguishing signed and unsigned co-author contributions
Vigilant Mode made an absence meaningful: unsigned commits attributed to protected emails could no longer look quietly official.

Let developers choose where code opens.

Codespaces required more than designing a button. Califa worked across GitHub, VS Codespaces, and VS Code on workspace permanence, product UI, naming, pricing, and the relationship between a repository and the tools that could open it.

A week before Codespaces was announced at GitHub Satellite 2020, the Code button was specified and completed in response to a real platform concern: GitHub should not push every developer toward one paid Microsoft editor. The proposed Open with model included Desktop, Codespaces, ZIP, local editors, and custom tools. Its general structure shipped and kept evolving.

Open with menu concept listing GitHub Desktop, Codespaces, ZIP, Visual Studio Code, Notepad++, IntelliJ, CodePen, and a custom editor
The original direction treated tool choice as a user preference that should travel with repository context.

Design the system around the research.

Teams needed more than good questions for user interviews. They needed a responsible way to find the right developers, know who had already been contacted, and carry consent through the work.

Califa designed an inbound participant system, then led a cross-functional Airtable pilot with Legal, Procurement, Marketing, researchers, and designers. The model connected segmentation, projects, email, sessions, opt-outs, and usage history so research could scale beyond personal networks.

  1. 01

    Participant

    Profile, segment, consent

  2. 02

    Project

    Question, criteria, owner

  3. 03

    Contact

    Invitation, history, opt-out

  4. 04

    Session

    Notes, recording, finding

Privacy, procurement, participant history, and usage limits were designed into the model before the first interview.

What shipped, and what didn’t.

Launches, pivots, failed staff ships, and unbuilt visions, kept on the same record.

01

Shipped

Suggested Changes, multi-line comments, and file review tracking

Three releases shortened the loop between reading feedback, proposing code, and completing a review. Suggested Changes launched at GitHub Universe 2018, GitHub’s annual developer conference; its syntax was subsequently adopted across the industry, and multi-line suggestions followed once the underlying comment model could support them.

02

Shipped

Co-Authors, Codespaces, and the Code button

Native multi-author credit became a first-class convention, now used across the industry to share attribution with agents. Codespaces shipped after cross-company work on workspace models, UI, naming, and pricing. The Code button gave developers more than one useful destination.

03

Changed shape

WIP PRs and partial reviews

WIP research invalidated the original notification premise; the work later resurfaced as Draft PRs around a different human need. Partial approvals pivoted into the simpler, shipped Mark file as viewed behavior.

04

Held

Review Points, Guest Branches, and code at scale

These models showed real leverage and real adoption costs. Their staff-ship failures, product constraints, and unbuilt opportunities stay on the record.

The handoff was part of the design.

“Since I won’t be around to rant on Zoom, the following is a brain dump that will hopefully be valuable to you.”

The handoff document recorded principles, unresolved product problems, why specific models failed, which assumptions no longer held, and who was carrying the work forward. Four years of product judgment, in a form the next designer could use.

Ready to deploy?

Rollout takes about a coffee. He shows up and starts working.