Skip to content

sefire-org/.github

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Sefire Graph-Style Organization

🧭 Core Idea

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.

πŸ—οΈ Org Structure Summary

  • 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

πŸ“Œ Node Types

πŸ”Ή Product Teams (Stream-Aligned)

  • Example: Billing Squad, Checkout Squad, Analytics Squad
  • Own user-facing features end-to-end

πŸ”Ή Platform Team

  • Builds internal developer tools and golden paths (e.g., CI/CD, feature flag systems)
  • Treats internal teams as customers

πŸ”Ή Infra/Ops Team

  • Owns foundational infrastructure (Kubernetes, networking, DNS, node pools)
  • Ensures reliability, uptime, and scalability

πŸ”Ή Security Team

  • Conducts threat modeling, secure coding practices, secret scanning
  • Works across repos and teams

πŸ”Ή Guilds / SIGs (e.g., Observability Guild)

  • Cross-cutting working groups to solve shared problems
  • Temporary or rotating membership

πŸ—‚οΈ Team Responsibilities and GitHub Permissions

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

πŸ” Key Org Concepts

What is an RFC?

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

βœ… Benefits

  • ⚑ Faster time-to-market
  • πŸ’‘ Bottom-up innovation
  • πŸ‘©β€πŸ’» High developer autonomy and satisfaction
  • πŸ”„ Modular scalability

⚠️ Graph-Based Org: Potential Cons & Mitigations

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

πŸ›  Tooling Used

  • Graph Visualization: vis-network for 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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors