Compare commits

..
Author SHA1 Message Date
jarvis-at-skic 033d9bf8fd docs: refine organization connector entry and squad alignment
Build and publish Eldorado documentation / build (pull_request) Successful in 30s
2026-10-04 09:28:34 +00:00
jarvis-at-skic 353a04588c Merge pull request 'docs: align departments and add departmental squads' (#10) from docs/align-departments-add-squads into main
Build and publish Eldorado documentation / build (push) Successful in 33s
2026-10-04 01:51:06 -07:00
jarvis-at-skic 01e2b4df39 docs: align departments and add departmental squads
Build and publish Eldorado documentation / build (pull_request) Successful in 31s
2026-10-04 08:50:28 +00:00
jarvis-at-skic 5bc1263be0 Merge pull request 'docs: separate Product and Technology teams' (#9) from docs/separate-product-technology-teams into main
Build and publish Eldorado documentation / build (push) Successful in 31s
2026-10-02 23:42:00 -07:00
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 363 additions and 56 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."
]
}
]
+283 -30
View File
@@ -23,7 +23,7 @@
"label": "Management",
"sublabel": "CEO / COO",
"pos": [
660,
820,
40
],
"size": [
@@ -41,7 +41,7 @@
280
],
"size": [
240,
280,
80
]
},
@@ -51,11 +51,11 @@
"label": "Technology",
"sublabel": "Engineering and platform",
"pos": [
320,
360,
280
],
"size": [
240,
280,
80
]
},
@@ -65,11 +65,11 @@
"label": "Operations",
"sublabel": "Service, resolution and trust",
"pos": [
600,
680,
280
],
"size": [
240,
280,
80
]
},
@@ -79,11 +79,11 @@
"label": "Marketing",
"sublabel": "Brand and customer growth",
"pos": [
880,
1000,
280
],
"size": [
240,
280,
80
]
},
@@ -93,11 +93,11 @@
"label": "Finance & Accounting",
"sublabel": "Financial performance and controls",
"pos": [
1160,
1320,
280
],
"size": [
240,
280,
80
]
},
@@ -107,11 +107,165 @@
"label": "HR & Administration",
"sublabel": "People and workplace",
"pos": [
1440,
1640,
280
],
"size": [
240,
280,
80
]
},
{
"id": "product-team-1",
"type": "frontend",
"label": "Product Management",
"sublabel": "Strategy, priorities and outcomes",
"pos": [
100,
480
],
"size": [
220,
80
]
},
{
"id": "product-team-2",
"type": "frontend",
"label": "Product Design",
"sublabel": "Research and experience design",
"pos": [
100,
620
],
"size": [
220,
80
]
},
{
"id": "technology-team-1",
"type": "frontend",
"label": "Product Engineering",
"sublabel": "Marketplace software delivery",
"pos": [
420,
480
],
"size": [
220,
80
]
},
{
"id": "technology-team-2",
"type": "frontend",
"label": "Platform & IT",
"sublabel": "Reliability and internal systems",
"pos": [
420,
620
],
"size": [
220,
80
]
},
{
"id": "technology-team-3",
"type": "frontend",
"label": "Architecture & Security",
"sublabel": "Technical standards and protection",
"pos": [
420,
760
],
"size": [
220,
80
]
},
{
"id": "technology-team-4",
"type": "frontend",
"label": "Quality Engineering",
"sublabel": "Testing and release quality",
"pos": [
420,
900
],
"size": [
220,
80
]
},
{
"id": "technology-team-5",
"type": "frontend",
"label": "Data & AI",
"sublabel": "Analytics, ML and AI enablement",
"pos": [
420,
1040
],
"size": [
220,
80
]
},
{
"id": "operations-team-1",
"type": "frontend",
"label": "Operations Squad",
"sublabel": "Service, resolution, risk and quality",
"pos": [
740,
480
],
"size": [
220,
80
]
},
{
"id": "marketing-team-1",
"type": "frontend",
"label": "Marketing Squad",
"sublabel": "Brand, acquisition and retention",
"pos": [
1060,
480
],
"size": [
220,
80
]
},
{
"id": "finance-team-1",
"type": "frontend",
"label": "Finance & Accounting Squad",
"sublabel": "Planning, controls and payments",
"pos": [
1380,
480
],
"size": [
220,
80
]
},
{
"id": "people-team-1",
"type": "frontend",
"label": "People & Administration Squad",
"sublabel": "Talent, people and workplace",
"pos": [
1700,
480
],
"size": [
220,
80
]
}
@@ -121,43 +275,137 @@
"id": "management-product",
"from": "management",
"to": "product",
"label": "Coordinates",
"variant": "default"
"variant": "default",
"fromSide": "bottom",
"toSide": "top"
},
{
"id": "management-technology",
"from": "management",
"to": "technology",
"label": "Coordinates",
"variant": "default"
"variant": "default",
"fromSide": "bottom",
"toSide": "top"
},
{
"id": "management-operations",
"from": "management",
"to": "operations",
"label": "Coordinates",
"variant": "default"
"variant": "default",
"fromSide": "bottom",
"toSide": "top"
},
{
"id": "management-marketing",
"from": "management",
"to": "marketing",
"label": "Coordinates",
"variant": "default"
"variant": "default",
"fromSide": "bottom",
"toSide": "top"
},
{
"id": "management-finance",
"from": "management",
"to": "finance",
"label": "Coordinates",
"variant": "default"
"variant": "default",
"fromSide": "bottom",
"toSide": "top"
},
{
"id": "management-people",
"from": "management",
"to": "people",
"label": "Coordinates",
"variant": "default"
"variant": "default",
"fromSide": "bottom",
"toSide": "top"
},
{
"id": "product-1",
"from": "product",
"to": "product-team-1",
"variant": "default",
"fromSide": "bottom",
"toSide": "left"
},
{
"id": "product-2",
"from": "product",
"to": "product-team-2",
"variant": "default",
"fromSide": "bottom",
"toSide": "left"
},
{
"id": "technology-1",
"from": "technology",
"to": "technology-team-1",
"variant": "default",
"fromSide": "bottom",
"toSide": "left"
},
{
"id": "technology-2",
"from": "technology",
"to": "technology-team-2",
"variant": "default",
"fromSide": "bottom",
"toSide": "left"
},
{
"id": "technology-3",
"from": "technology",
"to": "technology-team-3",
"variant": "default",
"fromSide": "bottom",
"toSide": "left"
},
{
"id": "technology-4",
"from": "technology",
"to": "technology-team-4",
"variant": "default",
"fromSide": "bottom",
"toSide": "left"
},
{
"id": "technology-5",
"from": "technology",
"to": "technology-team-5",
"variant": "default",
"fromSide": "bottom",
"toSide": "left"
},
{
"id": "operations-1",
"from": "operations",
"to": "operations-team-1",
"variant": "default",
"fromSide": "bottom",
"toSide": "left"
},
{
"id": "marketing-1",
"from": "marketing",
"to": "marketing-team-1",
"variant": "default",
"fromSide": "bottom",
"toSide": "left"
},
{
"id": "finance-1",
"from": "finance",
"to": "finance-team-1",
"variant": "default",
"fromSide": "bottom",
"toSide": "left"
},
{
"id": "people-1",
"from": "people",
"to": "people-team-1",
"variant": "default",
"fromSide": "bottom",
"toSide": "left"
}
],
"cards": [
@@ -165,24 +413,26 @@
"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"
]
},
{
"dot": "cyan",
"title": "Operations",
"items": [
"Operations Squad",
"Customer Support; Trust & Resolution",
"Risk & Fraud",
"Operational Quality"
@@ -192,6 +442,7 @@
"dot": "amber",
"title": "Marketing",
"items": [
"Marketing Squad",
"Brand & Community; Creative; SEO",
"PPC & Affiliate; Influencer",
"CRM"
@@ -201,6 +452,7 @@
"dot": "cyan",
"title": "Finance & Accounting",
"items": [
"Finance & Accounting Squad",
"Financial Planning & Analysis",
"Accounting, Tax & Controls",
"Treasury & Payment Operations"
@@ -210,6 +462,7 @@
"dot": "amber",
"title": "HR & Administration",
"items": [
"People & Administration Squad",
"Talent Acquisition",
"People Operations",
"Office & Administration"
+28 -22
View File
@@ -24,40 +24,40 @@ Functional leaders translate company priorities into departmental plans. Team le
## Departments and teams
Product has **two teams** and Technology has **five teams**. Operations, Marketing, Finance & Accounting, and HR & Administration each have **one squad** covering their departmental workstreams. 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
**Purpose:** keep marketplace trading dependable and resolve customer issues fairly and efficiently.
| Team | Responsibilities |
**Operations Squad** delivers the department’s responsibilities across the following workstreams.
| Workstream | Responsibilities |
| --- | --- |
| Customer Support | Buyer and seller assistance, knowledge management, self-service and support workflow automation. |
| Trust & Resolution | Disputes, appeals, refunds, warranties, chargebacks and complex customer cases. |
@@ -70,7 +70,9 @@ The COO coordinates Operations. Team leads manage specialists and daily service
**Purpose:** attract and retain customers, build the Eldorado brand and grow marketplace demand.
| Team / workstream | Responsibilities |
**Marketing Squad** delivers the department’s responsibilities across the following workstreams.
| Workstream | Responsibilities |
| --- | --- |
| Brand & Community | Brand positioning, campaigns, organic social, community and brand partnerships. |
| Creative | Campaign concepts, visual assets and performance creative. |
@@ -85,7 +87,9 @@ The CMO coordinates Marketing. The Brand Team Lead owns Brand & Community, with
**Purpose:** maintain financial control, support business decisions and keep marketplace money flows dependable.
| Team / function | Responsibilities |
**Finance & Accounting Squad** delivers the department’s responsibilities across the following workstreams.
| Workstream | Responsibilities |
| --- | --- |
| Financial Planning & Analysis | Budgets, forecasts, profitability, management reporting and investment analysis. |
| Accounting, Tax & Controls | Accounting, financial reporting, tax, audit coordination and internal controls. |
@@ -97,13 +101,15 @@ The CFO coordinates Finance & Accounting and works with executive leadership on
**Purpose:** help teams attract, develop and retain people and provide an effective working environment.
| Team | Responsibilities |
**People & Administration Squad** delivers the department’s responsibilities across the following workstreams.
| Workstream | Responsibilities |
| --- | --- |
| Talent Acquisition | Recruitment, candidate experience, hiring coordination and workforce demand support. |
| 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 +117,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.
+44
View File
@@ -59,6 +59,50 @@ 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('departments share one row and each has delivery teams below it', () => {
const spec = JSON.parse(read('diagrams/organization-structure.architecture.json'));
const page = read('docs/organization/structure.mdx');
const departments = ['product', 'technology', 'operations', 'marketing', 'finance', 'people'];
const nodes = new Map(spec.components.map(n => [n.id, n]));
assert.equal(new Set(departments.map(id => nodes.get(id).pos[1])).size, 1);
for (const [i, id] of departments.entries()) {
const department = nodes.get(id);
const teams = spec.connections.filter(e => e.from === id).map(e => nodes.get(e.to));
assert.equal(teams.length, i === 0 ? 2 : i === 1 ? 5 : 1);
for (const team of teams) {
assert(team.pos[1] > department.pos[1] + department.size[1]);
assert(team.size[0] < department.size[0]);
assert.equal(team.pos[0] + team.size[0], department.pos[0] + department.size[0]);
const edge = spec.connections.find(e => e.from === id && e.to === team.id);
assert.equal(edge.toSide, 'left');
assert.equal(edge.fromSide, 'bottom');
assert.equal(spec.connections.find(e => e.from === 'management' && e.to === id).toSide, 'top');
assert.deepEqual(spec.connections.filter(e => e.to === team.id).map(e => e.from), [id]);
assert(page.includes(team.label));
}
}
for (const [i, a] of spec.components.entries()) for (const b of spec.components.slice(i + 1)) {
assert(!(a.pos[0] < b.pos[0] + b.size[0] && a.pos[0] + a.size[0] > b.pos[0] && a.pos[1] < b.pos[1] + b.size[1] && a.pos[1] + a.size[1] > b.pos[1]), `${a.id} overlaps ${b.id}`);
}
});
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));