Skip to content

Commit 4d1c7c0

Browse files
committed
Refine Statsbomb narrative and navigation styling
- Update portfolio card to emphasize Electron app, team building, and constraints - Change badges to highlight system characteristics over tech stack - Switch navigation from rounded-full to rounded-lg for cleaner look
1 parent c65fefa commit 4d1c7c0

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

src/layouts/Layout.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ const ogImageURL = new URL(ogImage, Astro.site);
136136
{showScrollProgress && <ScrollProgress />}
137137

138138
<!-- Responsive Navigation: Mobile circular badge → Desktop bar -->
139-
<nav id="desktop-nav" class="headroom md:fixed md:mt-0 mt-8 top-2 left-2 right-2 max-w-6xl mx-auto z-50 rounded-full md:bg-surface/80 md:backdrop-blur-lg flex items-center justify-center border border-neutral-lighter" data-disable-auto-hide={disableAutoHideNav}>
139+
<nav id="desktop-nav" class="headroom md:fixed md:mt-0 mt-8 top-2 left-2 right-2 max-w-6xl mx-auto z-50 rounded-lg md:bg-surface/80 md:backdrop-blur-lg flex items-center justify-center border border-neutral-lighter" data-disable-auto-hide={disableAutoHideNav}>
140140
<div class="flex items-center justify-center md:justify-between w-full px-4">
141141
<a href="/" class="hover:opacity-80 transition-opacity">
142142
<SSLogo />

src/pages/portfolio.astro

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,11 @@ import Body from '../components/typography/Body.astro';
1818
<div class="p-8">
1919
<Heading level={3} as="h2" class="mb-4">Statsbomb Collection</Heading>
2020
<Body size="base" as="p" class="text-neutral mb-6 leading-relaxed">
21-
How do you collect 90-minute matches without choosing between velocity and correctness?
22-
We reduced collection from 16 man-hours to 4 concurrent collectors by building a DSL that let PMs define sports rules without engineering involvement.
23-
The architecture separated collection rules from execution logic—new sports became configuration, not code.
24-
Lesson learned: architectural separation eliminates trade-offs that feel inevitable.
21+
How do you scale real-time sports data collection without sacrificing correctness?
22+
Started with an Electron app (XState state machines, 30+ contextual keyboard shortcuts) that reduced 16 sequential hours to 4 concurrent collectors.
23+
Then built backend DSLs so product managers could define sports rules as configuration—new sports became data, not code.
24+
But architecture alone isn't enough: learning to build team ownership took until year three, and geo-political constraints meant the final piece—customer-facing DSLs—never shipped.
25+
Lessons: Architectural separation eliminates false trade-offs. Team building shapes what's sustainable. Context determines what works.
2526
</Body>
2627
<div class="flex flex-wrap gap-2 mb-4">
2728
<Badge variant="skill">JavaScript</Badge>

src/pages/portfolio/statsbomb.mdx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,14 @@ import Accordion from '../../components/Accordion.astro';
2323
<Body size="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>
2424

2525
<div class="flex flex-wrap gap-2 mb-4">
26+
{/* System Characteristics */}
27+
<Badge variant="category">Real-Time Data Collection</Badge>
28+
<Badge variant="category">Collaborative Workflows</Badge>
29+
<Badge variant="category">Contextual UI Adaptation</Badge>
30+
31+
{/* Key Technologies */}
2632
<Badge variant="skill">XState</Badge>
27-
<Badge variant="skill">Electron</Badge>
28-
<Badge variant="skill">Ramda</Badge>
2933
<Badge variant="skill">Kafka</Badge>
30-
<Badge variant="skill">DSL Design</Badge>
3134
<Badge variant="skill">ANTLR</Badge>
3235
</div>
3336

0 commit comments

Comments
 (0)