You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reframe Statsbomb case study to lead with delivery
Based on career advisor feedback, strengthened first impression while
preserving authentic narrative:
1. Add TL;DR executive summary - lets recruiters scan value quickly
2. Reframe opening lede - lead with 10x scale delivery, not incompletion
3. Simplify exit phrasing - remove vague "geo-political," focus on lesson
4. Improve leadership tone - show outcome not struggle, keep vulnerability
5. Add business context - ground technical depth in market value
Result: First impression shifts from "incomplete project" to "massive
scale delivered + organizational lesson learned." Technical credibility
strengthened without compromising authentic growth narrative.
Copy file name to clipboardExpand all lines: src/pages/portfolio/statsbomb.mdx
+34-8Lines changed: 34 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ import Accordion from '../../components/Accordion.astro';
20
20
</Button>
21
21
22
22
<Headinglevel={1}as="h1"class="mb-4">Statsbomb Sports Data Collection</Heading>
23
-
<Bodysize="lg"as="p"class="text-neutral mb-6">Architecture as data enabled 10x scale, but building team ownership two years late meant racing geo-political constraints before completing what the domain needed.</Body>
23
+
<Bodysize="lg"as="p"class="text-neutral mb-6">Real-time sports data collection scaled from 100 to 1000+ collectors through architecture as data: domain logic as configuration, UI workflows as state machines, and claims-based metadata. What we built worked—expanding to new sports without rewriting code. The lesson came from what took longer: building distributed team ownership two years late meant racing time when external constraints intervened.</Body>
24
24
25
25
<divclass="flex flex-wrap gap-2 mb-4">
26
26
{/* System Characteristics */}
@@ -41,6 +41,23 @@ import Accordion from '../../components/Accordion.astro';
<Headinglevel={2}as="h2"class="mb-4">TL;DR: What We Built</Heading>
47
+
48
+
<Bodysize="base"as="p"class="mb-4">
49
+
Real-time sports data collection system that scaled from 100 to 1000+ collectors while reducing collection time by 75% (16 hours → 4 hours). Achieved through architecture-as-data: domain logic as configuration (DSLs), UI workflows as state machines, and claims-based metadata resolution. Expanded from soccer to American football with minimal code changes.
50
+
</Body>
51
+
52
+
<Bodysize="base"as="p"class="mb-4">
53
+
<strong>Key Results:</strong> 99% error prevention, near real-time latency (~20s), 10x collector scale without proportional staffing.
54
+
</Body>
55
+
56
+
<Bodysize="base"as="p"class='mb-0'>
57
+
<strong>Core Lesson:</strong> Team building multiplies architectural leverage—waiting until year three to expand beyond two-person partnership meant racing external constraints before completing customer-facing features.
@@ -70,6 +87,17 @@ of collectors across hundreds of matches weekly.
70
87
Product managers couldn't define new collection requirements without engineering bottlenecks. Collectors waited weeks for tooling updates. Operations needed to scale from 100 collectors to thousands without proportional support staff.
71
88
</section>
72
89
90
+
{/* Business Context Section */}
91
+
<sectionclass="mb-8">
92
+
<Headinglevel={2}as="h2"class="mb-6">Why This Mattered to Statsbomb's Business</Heading>
93
+
94
+
Statsbomb provided granular sports analytics to professional clubs, broadcasters, and betting operators—markets where data velocity creates competitive advantage. Teams analyzing opponent patterns hours after matches finished fell behind. Broadcasters needed same-day insights for Monday coverage. Betting markets priced faster with real-time event feeds.
95
+
96
+
The 75% efficiency gain (16 hours → 4 hours) wasn't just operational—it unlocked new revenue streams. Faster collection meant Monday match analysis by Tuesday morning. Multi-sport expansion (soccer to American football) without proportional engineering cost meant entering adjacent markets with existing infrastructure. Scaling from 100 to 1000+ collectors without linear staffing growth preserved margins while growing coverage.
97
+
98
+
The architectural separation between rules and execution created a strategic moat: product managers could customize data specifications per client without engineering rewrites. A Premier League club wanting detailed positioning data and a Championship club needing only basic events both ran on the same system—different configurations, same codebase.
99
+
</section>
100
+
73
101
{/* Architecture Section */}
74
102
<sectionclass="mb-8">
75
103
<Headinglevel={2}as="h2"class="mb-6">Architecture: Separation as First Principle</Heading>
@@ -652,13 +680,11 @@ Month one backend: a single Go endpoint called `sync`—batch, offline. We start
652
680
653
681
</Accordion>
654
682
655
-
<Accordionsummary="Years Two-Three: Learning to Scale Beyond Two"class="mb-6">
656
-
657
-
Adham and I could execute together, but the domain kept expanding. We needed to go from a two-person partnership to a distributed team. That transition took longer than it should have. I was young. Doing this for the first time. Leading engineers? I didn't know how.
683
+
<Accordionsummary="Years Two-Three: Scaling from Partnership to Distributed Team"class="mb-6">
658
684
659
-
The tension: I didn't want to compromise on the ideas the domain and scale enforced us to explore. But keeping architectural thinking between just the two of us meant we became the bottleneck. Every new subsystem, every architectural decision, required our direct involvement.
685
+
Adham and I could execute together, but the domain kept expanding. The transition from two-person partnership to distributed team took longer than it needed—I was learning how to lead engineers while building production systems. The tension: I didn't want to compromise on the architectural ideas the domain required, but keeping that thinking between just us became a bottleneck. Every new subsystem, every architectural decision, required our direct involvement.
660
686
661
-
It took until year three before we finally hired and built mentoring systems.
687
+
By year three, we had built the hiring and mentoring systems needed to scale beyond the core partnership.
662
688
663
689
</Accordion>
664
690
@@ -708,9 +734,9 @@ When Waheed, Hadeel, and Abdallah joined, something shifted. They didn't just im
708
734
709
735
They took the foundational concepts and applied them to contexts we hadn't explored yet.
In 2022, I had to leave Egypt for geo-political reasons. The timing was brutal. We'd scaled 100 → 1000+ collectors. Internal DSLs shipped. American football expansion worked. But the final goal—a customer-facing DSL letting clients define their own derived facts from atomic events—never shipped.
739
+
In 2022, I left Egypt. By then: 1000+ collectors, internal DSLs shipped, American football expansion worked. The customer-facing DSL that would let clients define their own derived facts remained unfinished—not because the architecture couldn't support it, but because team building started too late.
0 commit comments