Posts

151 posts. For what I wrote while I worked at GitHub, see my GitHub years.

Start here

Work loudly

6 min read

In an office, some of your visibility is free. Go remote and it drops to zero. Working loudly makes your impact visible as you do it, not after the fact in a status update nobody reads.

How to one-on-one

5 min read

Most 1:1s waste your team's only protected synchronous time on status updates. Here's how to run ones worth showing up for.

How I over-engineered my book

24 min read

My book has a linter, ~5,500 automated checks, and a Pandoc pipeline that rebuilds five formats (EPUB, Kindle, paperback ×2, and web) on every git push. For a book one person wrote. Here's how I built and published it the way I ship software.

The Zen of GitHub

3 min read

Call it taste, culture, or zen. Every organization has shared assumptions that guide decisions and resolve ambiguity in pursuit of its mission.

15 rules for communicating at GitHub

15 min read

How GitHub used issues and chat for async communication: fifteen rules that eliminate the 'you had to be there' problem in corporate workflows.

GitHub for non-developers: a beginner's guide

10 min read

No coding required. A plain-English guide to GitHub issues, pull requests, Markdown, and notifications for product managers, designers, legal, and ops.

Why everything should have a URL

15 min read

When knowledge lives in people's heads and inboxes, it doesn't scale. Giving decisions and processes URLs makes context discoverable, async, and opt-in.

Why you should work asynchronously

5 min read

Async is what makes remote work actually work. It produces better outcomes, improves work-life balance, and makes room for flow by moving past Cold War-era workflows.

Most read this month

  1. Your documentation quality is your AI quality now
  2. How I over-engineered my home network for privacy and security
  3. The rule of no surprises
  4. How I manage 200+ GitHub notifications a day
  5. Diff (and collaborate on) Microsoft Word documents using GitHub

2026 (15 posts)

The rule of no surprises

7 min read

Surprises break trust faster than setbacks. If something would surprise someone when they find out later, tell them now. Don't wait until it's convenient or until you have a fix.

It's pronounced JIF. The Open and Async audiobook is out.

5 min read

The Open and Async audiobook is out. It's read by a synthetic narrator who says 'jif,' correctly. For the hard-G crowd who insist that's heresy, I re-recorded an entire chapter in their (wrong) pronunciation and posted it free. One chapter the wrong way, or eleven and a half hours the right way.

Accessible by default: writing a book like software

9 min read

The ebook meets the Web Content Accessibility Guidelines (WCAG 2.1 Level AA) because the format wouldn't let me fake a heading and a browser audits every build, not because anyone scheduled a week for it. The parts Markdown can't check, like color contrast, axe-core catches under Playwright.

How I over-engineered my book

24 min read

My book has a linter, ~5,500 automated checks, and a Pandoc pipeline that rebuilds five formats (EPUB, Kindle, paperback ×2, and web) on every git push. For a book one person wrote. Here's how I built and published it the way I ship software.

Open and async on the Overcommitted podcast

1 min read

How people communicate matters more to a remote engineering team than where they sit. A conversation on the Overcommitted podcast about async-first culture, decision durability, and the ideas behind Open and Async.

Open and Async: the remote-work playbook is out

3 min read

Open and Async is the practical playbook for making remote and distributed work succeed. It covers two habits, working in the open and communicating asynchronously, drawn from a decade of remote-first lessons at GitHub.

Work loudly

6 min read

In an office, some of your visibility is free. Go remote and it drops to zero. Working loudly makes your impact visible as you do it, not after the fact in a status update nobody reads.

Reorgs happen

6 min read

In thirteen years at GitHub I was part of 25 reorgs, almost one every six months. Reorgs are a constant in tech, not a crisis. Here's how to navigate them.

AI-first program management

10 min read

AI-augmented program management is the natural evolution of async-first and engineering-inspired workflows. It amplifies human judgment instead of replacing it.

How to keep a brag doc (without the cringe)

5 min read

Nobody's tracking your wins for you. How to keep a brag doc in five minutes a week, what makes a good entry, and how it builds your promotion case.

How to one-on-one

5 min read

Most 1:1s waste your team's only protected synchronous time on status updates. Here's how to run ones worth showing up for.

No agenda, no meeting

2 min read

Announcing noagendanomeeting.net, a single-page site arguing that every meeting deserves an agenda and most meetings should be a document instead.

Thirteen years remote at GitHub: what works

6 min read

When I joined GitHub in 2013, I found a company that had rethought how work happens. Thirteen years later, those lessons still shape how I work.

2025 (1 post)

How to run LanguageTool on macOS

5 min read

Set up LanguageTool as a free, open-source Grammarly alternative that runs locally on your Mac. No subscription required.

2024 (1 post)

2023 (10 posts)

Cathedral vs Bazaar People Management

5 min read

What if we applied open source's cathedral vs. bazaar metaphor to management? Cathedral managers control; bazaar managers empower.

Pull requests are a form of documentation

3 min read

Pull requests capture not just what changed, but who, why, and what alternatives were considered. Treat every PR as a time capsule for future contributors.

Practice inclusive scheduling

1 min read

Write dates unambiguously, include time zones, and build in breaks. Small scheduling choices make distributed teams feel included.

GitHub for non-developers: a beginner's guide

10 min read

No coding required. A plain-English guide to GitHub issues, pull requests, Markdown, and notifications for product managers, designers, legal, and ops.

How to write a great extended leave document

5 min read

A battle-tested template for handing off your responsibilities before extended leave, so your team stays unblocked and nothing falls through the cracks.

Manage like an engineer

8 min read

If issues, pull requests, and project boards are the best way to develop software, should they not also be the best way to manage software development?

2022 (4 posts)

Helpful 404s for Jekyll (and GitHub Pages)

3 min read

How to build 404 pages for Jekyll and GitHub Pages that automatically suggest similar URLs to those requested, using Levenshtein distance and your sitemap.

Why you should work asynchronously

5 min read

Async is what makes remote work actually work. It produces better outcomes, improves work-life balance, and makes room for flow by moving past Cold War-era workflows.

Leaders show their work

10 min read

Great leaders don't just communicate decisions. They explain how and why. Without that context, every decision sounds like "because I said so."

2021 (9 posts)

Nine things a technical program manager does

9 min read

What does a technical program manager do? Nine things, from cross-team coordination to risk, by a product manager who helped found GitHub's TPM org.

2020 (11 posts)

The top 10 posts of the past 10 years

2 min read

Celebrating 10 years and nearly 200,000 words of blogging with a countdown of the most viewed posts, from open source licensing to communicating at GitHub.

Budget for the hidden "internet tax"

9 min read

Trust and safety is a cost of doing business on the internet. If you're building a platform, budget for abuse protection before someone gets hurt.

How I manage 200+ GitHub notifications a day

7 min read

My GitHub notifications setup: read the web inbox in batches, send @mentions to email, filter the rest in Gmail, and unsubscribe from threads often.

Eight tips for working remotely

10 min read

Tools alone won't make remote work succeed. Eight cultural rules for effective async communication, regardless of your industry or role.

User blocking vs. user muting

9 min read

Why GitHub's approach to user blocking diverges from other social networks, and what's different about moderating a code collaboration platform.

2019 (3 posts)

Go near, go far, meet in the middle

5 min read

A three-phase approach for product managers joining established teams: tackle known wins, build a shared vision, then discover how to get there.

What lawyers can learn from open source

1 min read

How lawyers can adopt the workflows, tools, and philosophies of open source to make their legal practice more remote-friendly.

2018 (3 posts)

Problems, not solutions

5 min read

The most valuable thing a product manager can do is frame the right problem for the right user before anyone writes a line of code.

Yes, No, Maybe

4 min read

When responding to customer feature requests your answer should be in the form of "we're doing that", "we're not doing that", or "we might do that".

2017 (7 posts)

How not to prioritize a feature

7 min read

The hardest part of software development is not coming up with features to build, but instead, deciding what features will have the biggest impact.

Bikeshed honeypots

5 min read

A bikeshed honeypot is an obvious flaw you plant in a proposal to divert attention from the parts you feel strongly about.

2016 (10 posts)

How to make a product great

7 min read

Great products absorb complexity on behalf of users, not the other way around. 10 principles for building software that's complex to build and easy to use.

Removing a feature is a feature

7 min read

Features aren't free. Every time you remove one that doesn't serve your core use case, you're adding an implicit feature that does.

Books for geeks

1 min read

A curated reading list for developers who care about more than just code, covering technology, open source culture, and the business of software.

Twelve things a product manager does

10 min read

What does a product manager actually do all day? After six months of note-taking, here are 12 responsibilities from user advocacy to strategic thinking.

Moderating a controversial pull request

5 min read

Ground rules, assigned roles, and clear timelines keep controversial pull requests from devolving into the internet's comments section.

How to derail any meeting

4 min read

How a WWII field manual can help modern knowledge workers identify those inadvertently sabotaging your organization today.

2015 (28 posts)

Open source as Yelp for software

8 min read

Open source is like Yelp for software, with the potential to shift the balance of power from publishers to consumers.

Why everything should have a URL

15 min read

When knowledge lives in people's heads and inboxes, it doesn't scale. Giving decisions and processes URLs makes context discoverable, async, and opt-in.

The three biggest challenges in government IT

12 min read

Change aversion, lack of technocratic leadership, and heavyweight processes bred by distrust keep government IT 5–10 years behind the private sector.

The Zen of GitHub

3 min read

Call it taste, culture, or zen. Every organization has shared assumptions that guide decisions and resolve ambiguity in pursuit of its mission.

Merge by committee

7 min read

Reviewing pull requests in weekly committee meetings kills open source projects. Decentralize governance and reduce information imbalance.

Analysis of federal .gov domains, 2015 edition

3 min read

A data-driven look at federal .gov domains: one in four support HTTPS, one in ten enforce it, 87% have no detectable CMS, and dozens still run decade-old servers.

What does your organization optimize for?

4 min read

Every organization is optimized for one thing. A glance at someone's laptop stickers reveals whether yours optimizes for people or process.

2014 (21 posts)

Geeks and suits

7 min read

In government IT, change depends on geeks and suits. Yet despite being in an industry built on communication, they rarely talk.

The myth of government IT

5 min read

Government IT is held back less by law than by myth: decade-old assumptions about technology that calcified into policy.

15 rules for communicating at GitHub

15 min read

How GitHub used issues and chat for async communication: fifteen rules that eliminate the 'you had to be there' problem in corporate workflows.

What is a Government Evangelist?

3 min read

What a GitHub Government Evangelist does: help agencies ship software better and bring Silicon Valley practices to Washington.

Our code deserves better

5 min read

Government delivers multi-million dollar software projects on CD-ROMs in triplicate. Modern development practices demand better.

Open source is (not) insecure

5 min read

Open source software isn't inherently less secure than proprietary alternatives. That myth stems from fear, uncertainty, and doubt (FUD).

Open source, not just software anymore

8 min read

Open source has always been about the right to modify, not contribute. As those workflows spread beyond software, we may need a new word.

2013 (15 posts)

Why no one uses your government data

3 min read

Next time you publish a data source, ask one question: how can you optimize the experience for the data consumer?

That's not how the internet works

7 min read

Stop publishing monolithic datasets. Treat your GitHub repo like a RESTful API: granular, URL-addressable, and optimized for consumers.

Jekyll: Where content is truly king

2 min read

Choosing Jekyll over a traditional CMS for government.github.com freed us to spend six months iterating on what mattered most: the content.

Treat Data as Code

5 min read

Developers learned decades ago that version control and collaboration are essential. It's time we apply those same practices to data.

Friction

5 min read

Friction, the time between wanting to contribute and actually contributing, is the only metric that matters for open source.

Everyone Contributes

3 min read

Code is just one way to contribute to open source. Projects thrive when they create clear paths for non-technical contributors to participate.

Bet on the little guy

3 min read

On the internet, simple and open formats always win. From HTTP to JSON to Markdown, the lightweight underdog consistently beats its proprietary rival.

The technology's the easy part

6 min read

In government IT, technology is never the hard part. Culture is. Stop building new tools and start sustaining the ones you already have.

An open letter to government CIOs

3 min read

Government CIOs don't need bigger budgets or more staff. They need to build lean, iterate quickly, and embrace open source as a way of working.

We've Been Selling Open Source Wrong

4 min read

Demanding agencies release code misses the point. Open source is a culture and workflow, not a deliverable. Fix the process and the code follows.

The store that sells only one thing.

3 min read

Tech consultants who define themselves by a single language or framework are like a store that sells one product. Customers bring problems, not solutions.

The next big thing is already here

2 min read

Want to predict the next technology trend? Look at how open source developers work. The tools they build for themselves today become mainstream tomorrow.

What is a 'Hacker'?

5 min read

In DC, 'hacker' is a dirty word. But the hacker ethic (sharing, openness, decentralization) is the mindset government needs to solve hard problems.

2012 (10 posts)

Deprecate Management

5 min read

Open source communities ship code across geographies and timezones without managers. Their collaborative practices have lessons for all of us.

We've been trained to make paper

5 min read

If the internet is the primary medium by which content is consumed, shouldn't that be the primary medium for which content is prepared?

Open Source is not a verb

4 min read

Open source, at its core, is actually not about code, but about connecting people around a shared vision to encourage collaborative problem solving.

The Demise of the Personal Dashboard

5 min read

Google retired iGoogle. Startups favor activity feeds and minimal interfaces. The drag-and-drop dashboard era is over, and simplicity is the new default.

2011 (3 posts)