Skip to content

Commit 32a340c

Browse files
committed
refactor: rewrite about page for clarity and specificity
- Replace generic philosophy with grounded Statsbomb constraint (VAR, World Cup spec gaps) - Eliminate repetition: "building products for the humans" (3x → 0x), "illegal states" moved to case study only - Replace Technical Expertise list with Domains (Sports Data, Fintech, Developer Tools) - Reduce word count: 350 → 145 words (-59%) - Fix callout button: broken "#" link → "/portfolio" - Show pattern transferability (sports data → fintech editorial) - Stronger ending: ongoing exploration vs tech stack listing
1 parent 5c90ec1 commit 32a340c

File tree

1 file changed

+13
-37
lines changed

1 file changed

+13
-37
lines changed

src/pages/about.astro

Lines changed: 13 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -9,38 +9,18 @@ import ReadingMetadata from '../components/ReadingMetadata.astro';
99
import Callout from '../components/Callout.astro';
1010
import { FileText, Triangle } from '@lucide/astro';
1111
12-
const expertiseItems = [
12+
const domainsItems = [
1313
{
14-
term: "Functional Programming",
15-
definition: "Separation of concerns through pure functions, immutable data, and composable architectures"
14+
term: "Sports Data Collection",
15+
definition: "Real-time event processing at scale, DSL-driven validation, distributed collector coordination"
1616
},
1717
{
18-
term: "Distributed Systems",
19-
definition: "Building correct systems that handle millions of events while maintaining both velocity and correctness guarantees"
18+
term: "Fintech Content Systems",
19+
definition: "Editorial infrastructure for global→local complexity, regulatory content workflows"
2020
},
2121
{
22-
term: "Real-Time Processing",
23-
definition: "Event-driven architectures with Kafka, exactly-once semantics, and graceful degradation"
24-
},
25-
{
26-
term: "Content Architecture",
27-
definition: "Editorial infrastructure for global→local fintech content, handling regulatory and cultural complexity"
28-
},
29-
{
30-
term: "Global Scaling",
31-
definition: "Fintech regulations, internationalization, and localization across diverse markets"
32-
},
33-
{
34-
term: "Platform Engineering",
35-
definition: "Infrastructure that lets teams deploy confidently through observability, testing, and progressive delivery"
36-
},
37-
{
38-
term: "Architecture Patterns",
39-
definition: "Domain-Driven Design, CQRS, event sourcing, and microservice decomposition"
40-
},
41-
{
42-
term: "LLM Integration",
43-
definition: "Cognitive partners revealing architectural possibilities, not automation replacing judgment"
22+
term: "Developer Tools",
23+
definition: "SDK reliability, crash reporting systems, developer experience optimization"
4424
}
4525
];
4626
---
@@ -50,20 +30,16 @@ const expertiseItems = [
5030
<Heading level={1} as="h1" class="mb-16"><span>About</span></Heading>
5131

5232
<div>
53-
<Body size="lg" as="p" class="text-text-lighter mb-8 leading-normal">
54-
What if we asked <i>why</i> before <i>how</i>? Building products for the humans showed: when teams explore constraints first, architecture emerges from real problems people face.
55-
</Body>
56-
5733
<Body size="base" as="p" class="mb-6 leading-relaxed">
58-
Working with distributed teams editing shared content—regulations collide with cultural nuances, offerings vary by market. The problem space is architectural: how do we maintain coherence when constraints multiply? Building editorial infrastructure that handles global→local complexity through structural separation.
34+
Spec gaps emerged during live collection—VAR reviews in World Cup matches, new positioning requirements from clients. Updates couldn't wait for engineering sprints when the next match started in hours. This drove an approach: separate what changes (domain rules) from execution (validation), let domain experts express solutions without code, design structure that eliminates coordination overhead.
5935
</Body>
6036

6137
<Body size="base" as="p" class="mb-6 leading-relaxed">
62-
Functional programming principles emerged through production bugs. Traditional thinking treats velocity and correctness as opposing forces. Building products for the humans revealed they're complementary: when you separate behavior from state and make illegal states unrepresentable, both increase together. Still learning what's possible when architecture constrains failure.
38+
The pattern transfers. Fintech editorial teams hit the same wall: regulatory content updates outpace engineering deploys. When domain experts control rules through configuration rather than code changes, teams ship faster without compromising correctness.
6339
</Body>
6440

6541
<Body size="base" as="p" class="mb-8 leading-relaxed">
66-
How do systems adapt when human needs change unpredictably? Building products for the humans showed: when you make illegal states unrepresentable, systems handle surprises structurally. Exploring how LLMs fit—cognitive partners revealing possibilities for serving people better. Primarily TypeScript, Python, Go, and Clojure.
42+
Exploring how LLMs reveal design possibilities beyond code generation—architectural partnership, not just automation. Based in UK, working with distributed teams on fintech content systems. Still exploring what becomes possible when constraints shape architecture instead of fighting it.
6743
</Body>
6844

6945
<Callout variant="primary" size="compact">
@@ -72,14 +48,14 @@ const expertiseItems = [
7248
<Triangle class="w-5 h-5 inline mr-1" />
7349
Curious about the <strong>why</strong> first—it sometimes reveals the <strong>how,</strong> but always clarifies what we're building.
7450
</div>
75-
<Button variant="primary" size="sm" href="#" class="mt-3 md:mt-0">Full Background</Button>
51+
<Button variant="primary" size="sm" href="/portfolio" class="mt-3 md:mt-0">See Case Studies</Button>
7652
</div>
7753
</Callout>
7854

7955

8056

81-
<Heading level={1} as="h2" class="mt-12 mb-6"><span>Technical Expertise</span></Heading>
82-
<DefinitionList items={expertiseItems} />
57+
<Heading level={1} as="h2" class="mt-12 mb-6"><span>Domains</span></Heading>
58+
<DefinitionList items={domainsItems} />
8359

8460
</div>
8561
</Container>

0 commit comments

Comments
 (0)