Working Principles
Table of Contents
Async by Default
Most communication happens in writing. Slack messages, docs, PRs, and RFCs are the primary channels. This isn’t because we dislike meetings - it’s because writing forces clarity, creates a searchable record, and respects time zones.
Meetings are for alignment, brainstorming, and relationship building. They’re never for status updates or information that could be a message.
Small Teams, High Autonomy
We organize into small teams (2-5 people) with clear ownership over a product area. Each team has the authority to make decisions about their domain without seeking approval from a chain of command.
With autonomy comes accountability. Teams own their metrics, their bugs, and their roadmap. If something breaks in your area, you fix it - you don’t file a ticket and wait.
Bias Toward Shipping
When faced with a choice between shipping something imperfect today or shipping something perfect next month, we almost always ship today. Early feedback from real users is more valuable than internal speculation.
This doesn’t mean we ship garbage. It means we ship the smallest useful version, learn from it, and iterate. Perfection is the enemy of progress.
Write Things Down
Decisions that aren’t documented didn’t happen. We write down:
- Why we made a decision, not just what we decided
- Context that future team members will need
- Trade-offs we considered and rejected
This handbook is the canonical example. If it’s important enough to discuss, it’s important enough to write down.
Strong Opinions, Loosely Held
We encourage strong points of view backed by reasoning and evidence. But we also expect people to change their minds when presented with better arguments or new data. Ego has no place in technical decisions.