sweep the last typographic punctuation out of the components and data files
build-and-deploy / build (push) Failing after 14m21s

This commit is contained in:
2026-08-17 23:21:38 +10:00
parent 3cfd59a464
commit 43188589ab
35 changed files with 159 additions and 159 deletions
+11 -11
View File
@@ -13,33 +13,33 @@ export const experience: Role[] = [
{
title: "Infrastructure / DevOps Engineer",
org: "Woolworths",
period: "Aug 2025 Present",
period: "Aug 2025 - Present",
summary:
"Core DevOps infrastructure engineer for store-edge solutions turning high-level designs into single-press deployments and CD pipelines.",
"Core DevOps infrastructure engineer for store-edge solutions - turning high-level designs into single-press deployments and CD pipelines.",
highlights: [
"Single-touch deployment of an edge AI solution running on Kubernetes at the store edge",
"GPU brought online as code passthrough via ESXi, end-state manifests / Helm charts",
"GPU brought online as code - passthrough via ESXi, end-state manifests / Helm charts",
"Ansible playbook builds wired through a single source-of-truth pipeline with per-store vars",
"Removed manual practices across infra and ops IaC throughout, spec-driven and documented as code",
"Removed manual practices across infra and ops - IaC throughout, spec-driven and documented as code",
],
},
{
title: "Infrastructure Systems Engineer",
org: "Virtus Health",
period: "Aug 2022 Aug 2025",
period: "Aug 2022 - Aug 2025",
summary:
"Global IT optimisation, implementation and projects across an enterprise estate.",
"Global IT - optimisation, implementation and projects across an enterprise estate.",
highlights: [
"Managed ~1,000 VMs across a global VMware estate",
"Re-segmented flat sites into isolated VLAN ranges; SD-WAN and Aruba ClearPass onboarding",
"Migrated workloads to Azure (Blob, AVS); upgraded Palo Alto / FortiGate firewalls",
"Led a new major-site build end-to-end services implementation",
"Led a new major-site build - end-to-end services implementation",
],
},
{
title: "Global IT Infrastructure Engineer",
org: "Linde Asia Pacific",
period: "Sep 2019 Aug 2022",
period: "Sep 2019 - Aug 2022",
summary:
"Maintained and modernised global infrastructure to enterprise standards across the region.",
highlights: [
@@ -51,7 +51,7 @@ export const experience: Role[] = [
{
title: "Web Developer / Tech Admin",
org: "ELGAS",
period: "Aug 2018 Sep 2019",
period: "Aug 2018 - Sep 2019",
summary:
"Development, optimisation and escalation for the IT service-desk team.",
highlights: [
@@ -62,12 +62,12 @@ export const experience: Role[] = [
{
title: "IT Technician",
org: "Darktime Computer Services",
period: "Nov 2010 Jun 2013",
period: "Nov 2010 - Jun 2013",
summary:
"Field and workshop IT across legal firms, schools, real estate and small business.",
highlights: [
"SBS 2008 server installs, Exchange, backups and RAID storage for small business",
"Solo on-site support diagnose, fix, move on",
"Solo on-site support - diagnose, fix, move on",
],
},
];
+5 -5
View File
@@ -1,14 +1,14 @@
// The fleet, as data drives the hero constellation + typing facts.
// The fleet, as data - drives the hero constellation + typing facts.
// REAL numbers, captured 2026-07-03; refresh from the fleet at rebuild
// (kubectl get applications -n argocd | wc -l · kubectl get cnp -A | wc -l per cluster).
// Facts the hero typing bar cycles through. Real, verbatim no invented numbers.
// Facts the hero typing bar cycles through. Real, verbatim - no invented numbers.
export const fleetFacts = [
"6 single-node Talos clusters · 0 SSH daemons · every machine is a document",
"139 ArgoCD Applications reconciled from one hub",
"170+ CiliumNetworkPolicies fleet-wide every namespace starts at default-deny",
"zero open inbound ports the origin dials out",
"*.bztmon.org a Let's Encrypt wildcard per cluster · DNS-01 · auto-renewed",
"170+ CiliumNetworkPolicies fleet-wide - every namespace starts at default-deny",
"zero open inbound ports - the origin dials out",
"*.bztmon.org - a Let's Encrypt wildcard per cluster · DNS-01 · auto-renewed",
"~140 pods running right now, reconciled by git",
] as const;
+2 -2
View File
@@ -1,4 +1,4 @@
// Central site config single source of truth for identity + metadata.
// Central site config - single source of truth for identity + metadata.
// Edit here, not in components.
export const site = {
@@ -20,7 +20,7 @@ export const site = {
"Edge AI",
],
// One-paragraph elevator pitch for the About section.
bio: "I'm an infrastructure and DevOps engineer who turns high-level designs into single-press deployments. My day job is store-edge Kubernetes running GPU-backed AI; my craft is the automation, GitOps and network policy that make a fleet behave the same way every time. I've run global infrastructure at enterprise scale a thousand VMs, multi-region migrations, segmented networks and I bring that same rigour to the smallest edge node. I'm an IaC enthusiast: if it's a manual step, I want it gone.",
bio: "I'm an infrastructure and DevOps engineer who turns high-level designs into single-press deployments. My day job is store-edge Kubernetes running GPU-backed AI; my craft is the automation, GitOps and network policy that make a fleet behave the same way every time. I've run global infrastructure at enterprise scale - a thousand VMs, multi-region migrations, segmented networks - and I bring that same rigour to the smallest edge node. I'm an IaC enthusiast: if it's a manual step, I want it gone.",
// Canonical URL (used for OG/sitemap/RSS).
url: "https://www.bztmon.com",
+12 -12
View File
@@ -1,17 +1,17 @@
// Grouped capability matrix NO percentage bars / ratings / logo walls.
// Grouped capability matrix - NO percentage bars / ratings / logo walls.
// Driven entirely by this file; the Skills section renders whatever is here.
export type SkillGroup = {
title: string;
// Short framing line for the group.
blurb: string;
/** Proof-point lines rendered between the blurb and the chips fills the
/** Proof-point lines rendered between the blurb and the chips - fills the
* tall tiles (hero / full) so the tile reads as substance, not whitespace. */
points?: string[];
items: string[];
/** Bento tile size "hero" = 2×2 flagship · "wide" = 2×1 · "full" = whole row · default 1×1. */
/** Bento tile size - "hero" = 2×2 flagship · "wide" = 2×1 · "full" = whole row · default 1×1. */
span?: "hero" | "wide" | "full";
/** Accent flavour "magenta" marks security-flavoured tiles. */
/** Accent flavour - "magenta" marks security-flavoured tiles. */
flavor?: "magenta";
/** Eyebrow label rendered on the hero tile. */
flag?: string;
@@ -24,10 +24,10 @@ export const skills: SkillGroup[] = [
flag: "FLAGSHIP",
blurb: "Serving vision and language models on real hardware at the edge.",
points: [
"Fail-closed computer vision on single-node OpenShift probes that catch a silently dead model, not just a dead pod.",
"One GPU, two jobs a single card time-sliced between LLM serving and video transcode, with neither noticing.",
"Fail-closed computer vision on single-node OpenShift - probes that catch a silently dead model, not just a dead pod.",
"One GPU, two jobs - a single card time-sliced between LLM serving and video transcode, with neither noticing.",
"Vendor video-analytics stacks re-platformed as first-class Kubernetes workloads, not appliances.",
"Local models behind an OpenAI-compatible gateway swap the backend, keep every client.",
"Local models behind an OpenAI-compatible gateway - swap the backend, keep every client.",
],
items: [
"NVIDIA GPU Operator",
@@ -56,7 +56,7 @@ export const skills: SkillGroup[] = [
},
{
title: "Automation & IaC",
blurb: "Single-touch deployments removing the manual step, not documenting it.",
blurb: "Single-touch deployments - removing the manual step, not documenting it.",
items: [
"Ansible / AWX",
"PowerShell (PowerCLI)",
@@ -97,11 +97,11 @@ export const skills: SkillGroup[] = [
{
title: "Observability & Ops",
span: "full",
blurb: "Knowing the system is healthy and the GPUs with it.",
blurb: "Knowing the system is healthy - and the GPUs with it.",
points: [
"Fleet metrics by remote-write every cluster ships to one Prometheus, GPUs included (DCGM / Intel Xe).",
"Alerts that reach a phone and mean it tuned until silence means healthy, not unmonitored.",
"A backup is a rumour until a restore drill proves it drills are scheduled, not aspirational.",
"Fleet metrics by remote-write - every cluster ships to one Prometheus, GPUs included (DCGM / Intel Xe).",
"Alerts that reach a phone and mean it - tuned until silence means healthy, not unmonitored.",
"A backup is a rumour until a restore drill proves it - drills are scheduled, not aspirational.",
],
items: [
"Prometheus",
+1 -1
View File
@@ -11,7 +11,7 @@ export type Social = {
export const socials: Social[] = [
{
// Self-hosted public git his code, on his own infrastructure (goes live with git.bztmon.com).
// Self-hosted public git - his code, on his own infrastructure (goes live with git.bztmon.com).
label: "Source",
href: "https://git.bztmon.com/jwright",
external: true,