A flat, decentralized software org where the CTO and Tech Council sit at the center, and teams are graph-like nodes connected through collaboration, APIs, and shared standards.
- CTO and Tech Council act as the strategic hub
- All other teams are equal nodes, interacting laterally
- Communication flows via RFCs, Slack, GitHub, and APIs
- Teams own their own modules with clear boundaries
- Example:
Billing Squad,Checkout Squad,Analytics Squad - Own user-facing features end-to-end
- Builds internal developer tools and golden paths (e.g., CI/CD, feature flag systems)
- Treats internal teams as customers
- Owns foundational infrastructure (Kubernetes, networking, DNS, node pools)
- Ensures reliability, uptime, and scalability
- Conducts threat modeling, secure coding practices, secret scanning
- Works across repos and teams
- Cross-cutting working groups to solve shared problems
- Temporary or rotating membership
| Team Type | Example Team Name | Responsibilities | GitHub Permissions |
|---|---|---|---|
| Product Team | checkout-team |
Own a customer-facing repo; handle PRs, issues, releases | Admin or Maintain on repo |
| Platform Team | dev-platform |
Build internal SDKs, CI/CD, observability tools; support dev teams | Write or Maintain |
| Infrastructure/Core Ops | k8s-ops |
Manage K8s clusters, DNS, cloud infra; ensure uptime and reliability | Admin on infra repos |
| Security Team | appsec, security |
Code scanning, vuln triage, permission audit, secret rotation | Triage or Maintain on repos |
| Enabling / DevEx | devex-team |
Create templates, linters, onboarding kits; run internal RFCs | Maintain on templates/tools |
| SIGs / Working Groups | sig-observability |
Review architecture proposals, build best practices across teams | Read/Triage, Discussions |
| Owners / Maintainers | maintainers-auth |
Review PRs, set direction for owned modules, rotate maintainership | CODEOWNERS, Enforced Reviews |
| Bot or Automation Users | ci-bot, release-bot |
Trigger tests, sync GitOps, auto-tag releases | Write on scoped repos |
| Org Admins | org-admins |
Configure permissions, billing, repo access, org-wide settings | Full org admin |
An RFC (Request for Comments) is a lightweight, structured document used to propose significant changes, new features, architectural decisions, or policy shifts. RFCs help decentralize decision-making by allowing contributors across teams to review, discuss, and reach consensus asynchronously.
An RFC typically includes:
- Problem statement and motivation
- Proposed solution and alternatives considered
- Technical and operational implications
- List of affected teams and modules
- Review period and decision timeline
RFCs are tracked and stored in versioned markdown documents (often in a docs/rfcs folder within a repo) and are shared across the org via GitHub or an internal portal.
RFCs ensure everyone can contribute to technical direction, and that decisions are transparent, reviewable, and time-boxed.
- DRIs / Maintainers: Every module has accountable maintainers (documented in
OWNERS.md) - RFC System: All major decisions go through a documented RFC process
- InnerSource: All code is internally open for contribution
- Async Collaboration: PRs, Issues, Discussions, RFCs over meetings
- β‘ Faster time-to-market
- π‘ Bottom-up innovation
- π©βπ» High developer autonomy and satisfaction
- π Modular scalability
| Challenge | Mitigation Strategy |
|---|---|
| Lack of clear authority or escalation paths | Contributor β Team Lead β Tech Council. There are two meetings: in the first, the Team Lead assesses the issue and either proposes a fix or determines it must be escalated. The issue is logged on a shared board. In the second meeting, the Tech Council discusses escalated items and takes action. If the Team Lead misses an issue, the Tech Council can follow up directly via the shared board. This ensures a clear, two-touch process with accountability built-in. |
| Risk of duplicated efforts across teams | Maintain a graph registry of team ownership + internal project index |
| Overhead in consensus-building (too democratic) | Time-boxed RFC reviews; default to lazy consensus unless objections are raised |
| Onboarding difficulty due to decentralized info | Developer portal with discoverable ownership, docs, APIs, and contribution guides |
| Loss of context during cross-team handoffs | Enforced shared documentation standards and handoff templates |
| Fragile coordination in crisis or incident response | Runbooks + rotating incident commander roles from Tech Council |
- Graph Visualization:
vis-networkfor interactive diagrams
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Graph-Style Org Structure</title>
<script src="https://unpkg.com/[email protected]/dist/vis-network.min.js"></script>
<style>
#network {
width: 100%;
height: 90vh;
border: 1px solid lightgray;
}
</style>
</head>
<body>
<h2 style="text-align:center;">Graph-Style Software Organization</h2>
<div id="network"></div>
<script>
document.addEventListener('DOMContentLoaded', () => {
const nodes = new vis.DataSet([
{ id: 1, label: "CTO", shape: "ellipse", color: "#ffcc00" },
{ id: 2, label: "Tech Council", shape: "ellipse", color: "#ffd966" },
{ id: 3, label: "Platform Team", color: "#86c5f6" },
{ id: 4, label: "Infra/Ops Team", color: "#f6a5c0" },
{ id: 5, label: "Security Team", color: "#f6c586" },
{ id: 6, label: "Billing Squad", color: "#c2f0c2" },
{ id: 7, label: "Checkout Squad", color: "#c2f0c2" },
{ id: 8, label: "Analytics Squad", color: "#c2f0c2" },
{ id: 9, label: "Observability Guild", color: "#d9c2f0" }
]);
const edges = new vis.DataSet([
{ from: 1, to: 2 },
{ from: 2, to: 3 },
{ from: 2, to: 4 },
{ from: 2, to: 5 },
{ from: 3, to: 6 },
{ from: 3, to: 7 },
{ from: 4, to: 6 },
{ from: 4, to: 7 },
{ from: 4, to: 8 },
{ from: 5, to: 6 },
{ from: 5, to: 8 },
{ from: 2, to: 9 },
{ from: 9, to: 3 },
{ from: 9, to: 4 },
{ from: 9, to: 8 }
]);
const container = document.getElementById("network");
const data = { nodes, edges };
const options = {
nodes: {
shape: 'box',
font: { size: 14, face: 'arial' }
},
edges: {
arrows: 'to',
smooth: {
type: 'cubicBezier',
forceDirection: 'horizontal',
roundness: 0.4
}
},
physics: {
enabled: true,
stabilization: false,
barnesHut: {
gravitationalConstant: -30000,
springLength: 150
}
},
layout: {
improvedLayout: true
}
};
new vis.Network(container, data, options);
});
</script>
</body>
</html>- Collaboration: GitHub, RFC markdowns, Slack integrations
- Docs: README,
CONTRIBUTING.md,CODEOWNERS, Notion
This structure mirrors how open-source ecosystems like CNCF and companies like Shopify or GitLab function at scale. It's adaptable, resilient, and built for speed with safety.