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
Blog post front matter fields: `title`, `author`, `date`, `lastmod`, `description`, `subtitle`, `image`, `images`, `tags`, `categories`, `draft`, `showpagemeta`, `showcomments`.
30
+
31
+
The About page uses minimal TOML front matter (`date`, `draft`, `title`) with free-form Markdown body. Link non-obvious terms to their Wikipedia articles.
32
+
33
+
## Pre-commit hooks
34
+
35
+
`.pre-commit-config.yaml` enforces: trailing whitespace removal, LF line endings, single trailing newline, YAML/TOML validity, no merge conflict markers, and **no direct commits to `main`**. Always work on a feature branch.
Copy file name to clipboardExpand all lines: content/about/index.md
+9-11Lines changed: 9 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,22 +5,20 @@ title = 'About'
5
5
+++
6
6
I’m Steve Moss — a scientist, technologist, and engineer.
7
7
8
-
I grew up in a small seaside town in the UK, spent years as a bouncer, became a Doctor of [Computational Genomics](https://en.wikipedia.org/wiki/Computational_genomics), and now work at the bleeding edge of [Site Reliability Engineering (SRE)](https://en.wikipedia.org/wiki/Site_reliability_engineering).
8
+
I grew up in a small seaside town on the Yorkshire coast, spent years working the doors as a bouncer, and eventually found my way into the world of science and technology. That path led me to a PhD in [Computational Genomics](https://en.wikipedia.org/wiki/Computational_genomics) — the discipline at the intersection of [computer science](https://en.wikipedia.org/wiki/Computer_science), [statistics](https://en.wikipedia.org/wiki/Statistics), and [molecular biology](https://en.wikipedia.org/wiki/Molecular_biology) — studying how life encodes and transmits information at scale. My research focused on [Bioinformatics](https://en.wikipedia.org/wiki/Bioinformatics) and [Molecular Evolution](https://en.wikipedia.org/wiki/Molecular_evolution) at the Universities of [Hull](https://www.hull.ac.uk/) and [York](https://www.york.ac.uk/).
9
9
10
-
For a long time, my goal was to collect Kubernetes certifications. But the landscape has shifted, and so have I.
10
+
That foundation in large-scale data, systems thinking, and scientific rigour led me naturally into [Site Reliability Engineering (SRE)](https://en.wikipedia.org/wiki/Site_reliability_engineering) — the discipline of applying software engineering to infrastructure and operations. SRE is about keeping complex [distributed systems](https://en.wikipedia.org/wiki/Distributed_computing) available, performant, and resilient; treating reliability not as an afterthought, but as a feature. I work at the bleeding edge of this field, building and operating the kind of secure, scalable systems that modern workloads demand.
11
11
12
-
I am now focused on [Agentic AI](https://en.wikipedia.org/wiki/AI_agent) and [Autonomous Systems](https://en.wikipedia.org/wiki/Autonomous_agent). I believe the future isn't just about managing infrastructure; it's about building expert systems that can manage themselves. I use tools like [Gemini](https://geminicli.com) and [Claude](https://claude.com/product/claude-code) to build autonomous agents that can reason, code, and solve complex problems.
12
+
I am now focused on [Agentic Engineering](https://en.wikipedia.org/wiki/Intelligent_agent) — the practice of building [AI agents](https://en.wikipedia.org/wiki/AI_agent) and [autonomous systems](https://en.wikipedia.org/wiki/Autonomous_agent) that can perceive their environment, reason about it, and take action with minimal human intervention. I believe the future isn’t just about managing infrastructure; it’s about building expert systems that can manage themselves. I use tools like [Gemini](https://geminicli.com) and [Claude](https://claude.com/product/claude-code) to build autonomous agents that can reason, code, and solve complex problems.
13
13
14
-
I still care deeply about reliability — you can't run stochastic models on fragile systems. My work sits at the intersection of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) and SRE:
14
+
I still care deeply about reliability — you can’t run [stochastic models](https://en.wikipedia.org/wiki/Stochastic_process) on fragile systems. My work sits at the intersection of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) and SRE:
15
15
16
-
1. Architecting Systems: Building the secure, scalable [distributed systems](https://en.wikipedia.org/wiki/Distributed_computing)required to run modern AI.
16
+
1. Architecting Systems: Designing secure, scalable [distributed systems](https://en.wikipedia.org/wiki/Distributed_computing) to run modern AI workloads — resilient by design, observable by default.
17
17
18
-
2. Engineering Agents: Using Polyglot engineering (Python, Go, Rust) to create digital agents that handle the toil.
18
+
2. Engineering Agents: Writing [polyglot](https://en.wikipedia.org/wiki/Polyglot_(computing)) software in [Python](https://en.wikipedia.org/wiki/Python_(programming_language)), [Go](https://en.wikipedia.org/wiki/Go_(programming_language)), and [Rust](https://en.wikipedia.org/wiki/Rust_(programming_language)) to create digital agents that handle the toil. Python for rapid prototyping and ML integrations, Go for performant concurrent services, and Rust where safety and raw speed are non-negotiable.
19
19
20
-
My background is in [Bioinformatics](https://en.wikipedia.org/wiki/Bioinformatics) and [Molecular Evolution](https://en.wikipedia.org/wiki/Molecular_evolution) (Universities of [Hull](https://www.hull.ac.uk/) and [York](https://www.york.ac.uk/)). I am passionate about closing the loop between my past and present by applying these autonomous agents to [Genomics](https://en.wikipedia.org/wiki/Genomics) and [Personalised Medicine](https://en.wikipedia.org/wiki/Personalized_medicine).
20
+
I am passionate about closing the loop between my past and present — applying autonomous agents to [Genomics](https://en.wikipedia.org/wiki/Genomics) and [Personalised Medicine](https://en.wikipedia.org/wiki/Personalized_medicine). I want to build systems that don’t just process biological data, but understand it.
21
21
22
-
I want to build systems that don't just process biological data, but understand it.
22
+
When I’m not arguing with an LLM or fixing a production outage, I’m a Dad, a husband, and a mental health advocate. I also enjoy boxing, films, and gaming.
23
23
24
-
When I'm not arguing with an LLM or fixing a production outage, I'm a Dad, a husband, and a mental health advocate. I also enjoy boxing, films, and gaming.
25
-
26
-
Reach out if you want to talk about the intersection of biological evolution and digital intelligence.
24
+
Reach out if you want to talk about the intersection of biological evolution and digital intelligence.
Copy file name to clipboardExpand all lines: content/posts/building-a-four-node-raspberry-pi-5-cluster.md
+27-27Lines changed: 27 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -122,28 +122,28 @@ Once I got downstairs, I plugged the switch into my router and connected the Ank
122
122
I went upstairs to my laptop and was able to ascertain the IPs of each Pi by checking my router’s client list, however, the ethernet ports didn’t show up. Once I had the IPs for all four Pis, I edited my SSH config on my laptop to include the name of each of the Pis as follows:
123
123
124
124
```text
125
-
Host eniac-node1
126
-
Hostname 192.168.50.129
127
-
Port 22
128
-
User gawbul
129
-
IdentityFile /Users/gawbul/.ssh/id_rsa
130
-
131
-
Host eniac-node2
132
-
Hostname 192.168.50.31
133
-
Port 22
134
-
User gawbul
135
-
IdentityFile /Users/gawbul/.ssh/id_rsa
136
-
137
-
Host eniac-node3
138
-
Hostname 192.168.50.167
139
-
Port 22
140
-
User gawbul
141
-
IdentityFile /Users/gawbul/.ssh/id_rsa
142
-
143
-
Host eniac-node4
144
-
Hostname 192.168.50.111
145
-
Port 22
146
-
User gawbul
125
+
Host eniac-node1
126
+
Hostname 192.168.50.129
127
+
Port 22
128
+
User gawbul
129
+
IdentityFile /Users/gawbul/.ssh/id_rsa
130
+
131
+
Host eniac-node2
132
+
Hostname 192.168.50.31
133
+
Port 22
134
+
User gawbul
135
+
IdentityFile /Users/gawbul/.ssh/id_rsa
136
+
137
+
Host eniac-node3
138
+
Hostname 192.168.50.167
139
+
Port 22
140
+
User gawbul
141
+
IdentityFile /Users/gawbul/.ssh/id_rsa
142
+
143
+
Host eniac-node4
144
+
Hostname 192.168.50.111
145
+
Port 22
146
+
User gawbul
147
147
IdentityFile /Users/gawbul/.ssh/id_rsa
148
148
```
149
149
@@ -194,9 +194,9 @@ One thing I noticed while trying out various commands on the Pi was that my term
194
194
I updated the terminfo as follows:
195
195
196
196
```bash
197
-
infocmp -x | ssh eniac-node1 -- tic -x -
198
-
infocmp -x | ssh eniac-node2 -- tic -x -
199
-
infocmp -x | ssh eniac-node3 -- tic -x -
197
+
infocmp -x | ssh eniac-node1 -- tic -x -
198
+
infocmp -x | ssh eniac-node2 -- tic -x -
199
+
infocmp -x | ssh eniac-node3 -- tic -x -
200
200
infocmp -x | ssh eniac-node4 -- tic -x -
201
201
```
202
202
@@ -1007,8 +1007,8 @@ I created a `/etc/modules-load.d/containerd.conf` file with the modules listed a
1007
1007
Additionally, I needed to add the following to `/etc/sysctl.d/kubernetes.conf` and run `sudo sysctl --system`:
<h6class="text-center copyright">This work is licensed under a <ahref="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a></h6>
0 commit comments