Compare commits

..
Author SHA1 Message Date
jarvis-at-skic ecc234234e docs: separate two Product and five Technology teams
Build and publish Eldorado documentation / build (pull_request) Successful in 32s
2026-10-03 06:41:10 +00:00
jarvis-at-skic 59b4075113 Merge pull request 'docs: shared Product and Technology squads' (#8) from docs/product-technology-squads into main
Build and publish Eldorado documentation / build (push) Successful in 30s
2026-10-02 10:19:50 -07:00
jarvis-at-skic 6e1503d31b docs: add seven shared Product and Technology squads
Build and publish Eldorado documentation / build (pull_request) Successful in 35s
2026-10-02 17:19:08 +00:00
jarvis-at-skic ea2d1e889b Merge pull request 'docs: organization operating model' (#7) from docs/organization-operating-model into main
Build and publish Eldorado documentation / build (push) Successful in 30s
2026-10-02 08:28:33 -07:00
5 changed files with 199 additions and 44 deletions

No files matched your search

@@ -77,7 +77,7 @@
"id": "engineers",
"type": "frontend",
"label": "Software engineers",
"sublabel": "Product Engineering teams",
"sublabel": "Product Engineering team",
"pos": [
1480,
40
@@ -220,10 +220,10 @@
},
{
"dot": "amber",
"title": "Cross-functional execution",
"title": "Interdepartmental collaboration",
"items": [
"Product Owners, Designers and Tech Leads align on product outcomes.",
"AI Enablement works across engineering teams."
"Data & AI enables AI adoption across Technology."
]
}
]
+157 -22
View File
@@ -23,7 +23,7 @@
"label": "Management",
"sublabel": "CEO / COO",
"pos": [
660,
490,
40
],
"size": [
@@ -51,7 +51,7 @@
"label": "Technology",
"sublabel": "Engineering and platform",
"pos": [
320,
720,
280
],
"size": [
@@ -65,8 +65,8 @@
"label": "Operations",
"sublabel": "Service, resolution and trust",
"pos": [
600,
280
40,
1450
],
"size": [
240,
@@ -79,8 +79,8 @@
"label": "Marketing",
"sublabel": "Brand and customer growth",
"pos": [
880,
280
370,
1450
],
"size": [
240,
@@ -93,8 +93,8 @@
"label": "Finance & Accounting",
"sublabel": "Financial performance and controls",
"pos": [
1160,
280
700,
1450
],
"size": [
240,
@@ -107,13 +107,111 @@
"label": "HR & Administration",
"sublabel": "People and workplace",
"pos": [
1440,
280
1030,
1450
],
"size": [
240,
80
]
},
{
"id": "product-team-1",
"type": "frontend",
"label": "Product Management",
"sublabel": "Strategy, priorities and outcomes",
"pos": [
40,
520
],
"size": [
280,
80
]
},
{
"id": "product-team-2",
"type": "frontend",
"label": "Product Design",
"sublabel": "Research and experience design",
"pos": [
40,
680
],
"size": [
280,
80
]
},
{
"id": "technology-team-1",
"type": "frontend",
"label": "Product Engineering",
"sublabel": "Marketplace software delivery",
"pos": [
720,
520
],
"size": [
280,
80
]
},
{
"id": "technology-team-2",
"type": "frontend",
"label": "Platform & IT",
"sublabel": "Reliability and internal systems",
"pos": [
720,
680
],
"size": [
280,
80
]
},
{
"id": "technology-team-3",
"type": "frontend",
"label": "Architecture & Security",
"sublabel": "Technical standards and protection",
"pos": [
720,
840
],
"size": [
280,
80
]
},
{
"id": "technology-team-4",
"type": "frontend",
"label": "Quality Engineering",
"sublabel": "Testing and release quality",
"pos": [
720,
1000
],
"size": [
280,
80
]
},
{
"id": "technology-team-5",
"type": "frontend",
"label": "Data & AI",
"sublabel": "Analytics, ML and AI enablement",
"pos": [
720,
1160
],
"size": [
280,
80
]
}
],
"connections": [
@@ -121,42 +219,78 @@
"id": "management-product",
"from": "management",
"to": "product",
"label": "Coordinates",
"variant": "default"
},
{
"id": "management-technology",
"from": "management",
"to": "technology",
"label": "Coordinates",
"variant": "default"
},
{
"id": "management-operations",
"from": "management",
"to": "operations",
"label": "Coordinates",
"variant": "default"
},
{
"id": "management-marketing",
"from": "management",
"to": "marketing",
"label": "Coordinates",
"variant": "default"
},
{
"id": "management-finance",
"from": "management",
"to": "finance",
"label": "Coordinates",
"variant": "default"
},
{
"id": "management-people",
"from": "management",
"to": "people",
"label": "Coordinates",
"variant": "default"
},
{
"id": "product-1",
"from": "product",
"to": "product-team-1",
"variant": "default"
},
{
"id": "product-2",
"from": "product",
"to": "product-team-2",
"variant": "default"
},
{
"id": "technology-1",
"from": "technology",
"to": "technology-team-1",
"variant": "default"
},
{
"id": "technology-2",
"from": "technology",
"to": "technology-team-2",
"variant": "default"
},
{
"id": "technology-3",
"from": "technology",
"to": "technology-team-3",
"variant": "default"
},
{
"id": "technology-4",
"from": "technology",
"to": "technology-team-4",
"variant": "default"
},
{
"id": "technology-5",
"from": "technology",
"to": "technology-team-5",
"variant": "default"
}
],
@@ -165,18 +299,19 @@
"dot": "cyan",
"title": "Product",
"items": [
"Orders; Categories",
"Sellers & Operations",
"Data & Intelligence; Product Design"
"Product Management",
"Product Design"
]
},
{
"dot": "amber",
"title": "Technology",
"items": [
"Product Engineering; Quality Engineering",
"Platform & Reliability; Architecture & Security",
"AI Enablement; Internal IT"
"Product Engineering",
"Platform & IT",
"Architecture & Security",
"Quality Engineering",
"Data & AI"
]
},
{
+16 -18
View File
@@ -24,34 +24,32 @@ Functional leaders translate company priorities into departmental plans. Team le
## Departments and teams
Product has **two teams** and Technology has **five teams**. Each team belongs to one department, with its own leadership and responsibilities. The departments collaborate on delivery without sharing team ownership.
### Product
**Purpose:** improve the buyer and seller experience and turn marketplace opportunities into valuable product capabilities.
| Team | Responsibilities |
| --- | --- |
| Orders | Purchase and post-purchase journeys, order status, delivery experience, dispute flows, feedback and loyalty. |
| Categories | Category experiences, including Boosting and Currency, discovery, conversion and category-specific user journeys. |
| Sellers & Operations | Seller Portal, seller integrations, onboarding and verification, balances and withdrawals, invoicing and operational tooling. |
| Data & Intelligence | Product analytics, experimentation, offer ranking, recommendations and decision support. |
| Product Design | User research, interaction design, design consistency and accessible buyer and seller experiences across product teams. |
| Product Management | Product strategy, roadmaps, priorities and outcome measurement across discovery, categories, orders, seller tools, payments and operational workflows. |
| Product Design | User research, interaction design, design consistency and accessible buyer and seller experiences. |
Product Owners, Designers and Tech Leads work together on each product area. Product owns priorities and outcomes; Technology owns engineering execution and technical quality.
Product Management owns what to improve and why. Product Design shapes the experience. Both work with Technology teams while remaining within Product.
### Technology
**Purpose:** build and operate a secure, reliable marketplace and improve the effectiveness of engineering.
| Team / function | Responsibilities |
| Team | Responsibilities |
| --- | --- |
| Product Engineering | Develop and maintain marketplace capabilities in cross-functional product teams. |
| Platform & Reliability | Shared platform services, delivery infrastructure, observability, availability and performance. |
| Architecture & Security | Technical standards, system design, infrastructure security and secure engineering practices. |
| Product Engineering | Build and maintain marketplace capabilities, including search, orders, seller tools, checkout, wallet and operational tooling. |
| Platform & IT | Platform services, delivery infrastructure, observability, reliability, performance, internal systems, employee devices and identity administration. |
| Architecture & Security | Technical standards, system design, security architecture and secure engineering practices. |
| Quality Engineering | Test strategy, automation, release quality and defect prevention. |
| AI Enablement | AI-assisted engineering workflows, developer tools, adoption, standards and safe use of AI. |
| Internal IT | Identity and access, employee devices, internal systems, software administration and joiner–mover–leaver processes. |
| Data & AI | Analytics, experimentation, ranking, recommendations, marketplace ML and safe AI-assisted engineering workflows. |
The CTO owns technology direction. The Head of Engineering leads engineering delivery through Group Engineering Managers and Engineering Managers. The AI Architect coordinates AI enablement across engineering, working with Architecture & Security and team leaders.
The CTO owns technology direction. The Head of Engineering leads engineering delivery through Group Engineering Managers and Engineering Managers. The AI Architect coordinates AI enablement within Data & AI, working with Architecture & Security and the other Technology teams. These are leadership roles within the five-team structure, not additional teams.
### Operations
@@ -103,7 +101,7 @@ The CFO coordinates Finance & Accounting and works with executive leadership on
| People Operations | Employee onboarding, development, performance processes, policies and employee experience. |
| Office & Administration | Workplace services, office operations and administrative coordination. |
HR partners with department leaders on team capacity and development. People Operations works with Internal IT on employee onboarding, role changes and offboarding.
HR partners with department leaders on team capacity and development. People Operations works with Platform & IT on employee onboarding, role changes and offboarding.
## Leadership and delivery structure
@@ -111,21 +109,21 @@ HR partners with department leaders on team capacity and development. People Ope
The diagram shows management responsibility from leader to role or team:
- **CTO → Head of Engineering → Group Engineering Managers → Engineering Managers → Product Engineering teams.**
- **CTO → Head of Engineering → Group Engineering Managers → Engineering Managers → the Product Engineering team.**
- **CTO → AI Architect**, coordinating engineering AI enablement.
- **COO → Operational Quality**, providing independent quality oversight.
- **CMO → Brand Team Lead**, leading Brand & Community.
Product teams combine product ownership, design, engineering, quality and data expertise. Functional management develops people and professional standards; cross-functional teams deliver business outcomes.
Product and Technology retain separate team ownership and reporting lines. Their teams coordinate priorities, design, engineering, quality and data work to deliver business outcomes.
## How the departments work together
| Business outcome | Collaboration |
| --- | --- |
| Better buyer experience | Product defines improvements; Technology delivers them; Operations brings customer feedback; Data measures the result. |
| Better buyer experience | Product defines improvements; Technology delivers them; Operations brings customer feedback; Data & AI measures the result. |
| Stronger seller experience | Product and Technology develop seller tools; Operations supports sellers; Finance manages financial processes. |
| Safe and trustworthy trading | Risk & Fraud, Trust & Resolution, Architecture & Security, and Finance coordinate controls and incident responses. |
| Sustainable growth | Marketing develops demand; Product improves conversion and retention; Finance measures profitability. |
| AI-powered execution | AI Enablement supports engineering; Data & Intelligence develops marketplace intelligence; Operations improves service and quality workflows. |
| AI-powered execution | Data & AI supports engineering and develops marketplace intelligence; Operations improves service and quality workflows. |
Department leaders remain accountable for outcomes, controls and service quality as AI becomes part of everyday work.
+18
View File
@@ -59,6 +59,24 @@ test('Archify is pinned, licensed and rebuilt, not a remote embed', () => {
assert(!wrapper.includes('target="_blank"'));
assert(wrapper.includes('Close full-screen diagram'));
});
test('Product owns two teams and Technology owns five separate teams', () => {
const spec = JSON.parse(read('diagrams/organization-structure.architecture.json'));
const page = read('docs/organization/structure.mdx');
assert(!/shared-delivery|squad-/i.test(JSON.stringify(spec)));
assert(!/shared squads|share a delivery structure|cross-functional teams/i.test(page));
for (const [dept, count, heading, next] of [['product',2,'Product','Technology'],['technology',5,'Technology','Operations']]) {
const teams = spec.components.filter(n => n.id.startsWith(`${dept}-team-`));
assert.equal(teams.length, count);
const section = page.split(`### ${heading}\n`)[1].split(`### ${next}\n`)[0];
const rows = section.split('\n').filter(l => l.startsWith('| ')).slice(2);
assert.equal(rows.length, count);
for (const team of teams) {
const parents = spec.connections.filter(e => e.to === team.id);
assert.deepEqual(parents.map(e => e.from), [dept]);
assert(rows.some(row => row.startsWith(`| ${team.label} |`)));
}
}
});
test('organization page presents an operating model, not research notes', () => {
const page = read('docs/organization/structure.mdx');
assert(page.includes('operating model') && page.includes('## Departments and teams'));
+5 -1
View File
@@ -21,9 +21,13 @@ if (process.argv.includes('--build')) {
}
assert(!readdirSync('build/diagrams', {recursive: true}).some(f => f.endsWith('.delivery.json')), 'Private build receipts must not be published');
const diagram = read('build/diagrams/organization-structure/index.html');
assert(diagram.includes('Coordinates') && diagram.includes('node-technology'));
assert(diagram.includes('node-product-team-2') && diagram.includes('node-technology-team-5'));
assert(!diagram.includes('shared-delivery'));
assert(!/A: placement|E: careers|J: advertised/.test(diagram));
assert(!diagram.includes('Example leadership'));
for (const [dept, count] of [['product', 2], ['technology', 5]]) {
for (let i = 1; i <= count; i++) assert(diagram.includes(`node-${dept}-team-${i}`));
}
const reporting = read('build/diagrams/organization-reporting/index.html');
assert(reporting.includes('AI Architect') && reporting.includes('Leads'));
assert(!/A: assumed|J: direct/.test(reporting));