Skip to content

Commit 799eb0f

Browse files
authored
Merge pull request #15 from MrGuato/claude/update-about-links-avatar-VFlo6
feat: update links, rewrite about page, swap avatar to photo
2 parents 850417b + 72cb95e commit 799eb0f

4 files changed

Lines changed: 85 additions & 46 deletions

File tree

src/pages/about.astro

Lines changed: 72 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,93 @@
11
---
22
import BaseLayout from "../layouts/BaseLayout.astro";
3-
const description = "Security engineer, GitOps practitioner, and lifelong learner based in Boston, MA.";
3+
const description = "Infrastructure & Security Engineer based in Massachusetts. Building, breaking, and automating since 2016.";
44
---
55

66
<BaseLayout title="About" description={description}>
7-
<h1 class="post-title">About</h1>
7+
<h1 class="post-title">Hey, I'm Jonathan 👋</h1>
88
<div class="prose">
99
<p>
10-
Hey, I'm <strong>Jonathan DeLeon</strong> — a security engineer based in <strong>Boston, MA</strong>,
11-
fighting evil one commit at a time. I specialize in cloud security, Kubernetes, and building
12-
production-minded infrastructure with a security-first mindset.
10+
Infrastructure &amp; Security Engineer based out of Massachusetts. I've been in IT since 2016 —
11+
started pulling cable and troubleshooting end-users at a nonprofit, worked through sysadmin and
12+
cloud security roles, and gradually shifted my focus toward platform engineering, automation, and
13+
security architecture. The through-line has always been the same: <strong>make it more reliable,
14+
more secure, and more automated than I found it.</strong>
1315
</p>
16+
17+
<hr />
18+
19+
<h2>What I'm building</h2>
20+
21+
<h3>🖥️ <a href="https://github.com/MrGuato/pi-cluster" target="_blank" rel="noopener"><code>pi-cluster</code></a> — GitOps Homelab (Active)</h3>
1422
<p>
15-
This blog is my build log: raw notes from the trenches of learning GitOps, k3s, FluxCD, and
16-
everything in between. If it's not committed, it doesn't exist.
23+
A production-minded bare-metal ARM64 k3s cluster on a Raspberry Pi 4, managed entirely with
24+
<strong>FluxCD</strong>. Git is the only source of truth — if it's not in the repo, it doesn't exist.
1725
</p>
18-
26+
<ul>
27+
<li><strong>Secrets:</strong> SOPS + age encryption, never plaintext in Git</li>
28+
<li><strong>Ingress:</strong> Cloudflare Tunnel for zero-trust external access</li>
29+
<li><strong>Apps:</strong> linkding, Ghost blog, Obsidian LiveSync (CouchDB) — all declarative, all reconciled</li>
30+
<li><strong>Learned the hard way:</strong> recovered from a force-push that triggered Flux pruning and wiped my cloudflared deployment. <code>git reflog</code> is a skill.</li>
31+
</ul>
1932
<div class="callout">
20-
<strong>Currently working on</strong>
21-
Preparing for Azure Security Engineer and KCNA/KCSA certifications, while deepening my GitOps
22-
practice with k3s and FluxCD.
33+
This is where I experiment before I deploy at work. The tooling here maps directly to what production platform engineering looks like.
2334
</div>
2435

25-
<h2>Certifications & Education</h2>
36+
<h3>☁️ <a href="https://github.com/MrGuato" target="_blank" rel="noopener"><code>serverless-api</code></a> — AWS Serverless + Security</h3>
37+
<p>
38+
Hardened serverless API on AWS using least-privilege IAM, CORS controls, secrets management,
39+
and fully automated deployment via CI/CD. No manual steps post-deploy.
40+
</p>
41+
42+
<h3>🎮 <a href="https://github.com/MrGuato/enshrouded-docker" target="_blank" rel="noopener"><code>enshrouded-docker</code></a> — Containerized Game Server (DevOps)</h3>
43+
<p>
44+
Immutable container infrastructure with runtime auto-update logic, semantic versioning, CI/CD
45+
publishing via GitHub Actions, and non-root execution with minimal attack surface. Built through
46+
real CI/CD failures — Wine + Docker on Ubuntu 22.04 with WineHQ and Xvfb.
47+
</p>
48+
49+
<h3>🔐 SOAR + EDR Integration — Security Automation</h3>
50+
<p>
51+
Automated security orchestration workflows integrating EDR with alerting pipelines — custom
52+
detection rules, response playbooks, and hardened cloud VMs for telemetry analysis.
53+
</p>
54+
55+
<hr />
56+
57+
<h2>On the roadmap</h2>
58+
<p>Talos Linux · Cilium CNI · Kube-VIP · kube-prometheus-stack</p>
59+
<p>Moving from "it works" to "it's observable, resilient, and enterprise-grade."</p>
60+
61+
<hr />
62+
63+
<h2>The journey (2016 → now)</h2>
64+
<pre><code>2016 → IT Support / Helpdesk
65+
Cabling, AV, break-fix, networking fundamentals
66+
67+
2020 → Systems Administrator
68+
M365 migrations, HIPAA security program, MDM at scale
69+
70+
2022 → IT Support + Security
71+
Vuln management, network config, L1 incident response
72+
73+
2023 → Cloud Admin / Security
74+
XDR rollout, CASB, IAM/Conditional Access, hybrid cloud
75+
76+
2024 → Infrastructure Security Eng.
77+
IaC, GitOps, DevSecOps, compliance frameworks</code></pre>
78+
<p>The homelab is where the theory meets the metal.</p>
79+
80+
<hr />
81+
82+
<h2>Certifications &amp; Education</h2>
2683
<div class="badges">
2784
<span class="badge">CISM®</span>
2885
<span class="badge">CompTIA CCAP</span>
2986
<span class="badge">CSIS</span>
30-
<span class="badge">WGU — Network Engineering & Cybersecurity</span>
87+
<span class="badge">WGU — Network Engineering &amp; Cybersecurity</span>
3188
</div>
3289

33-
<h2>Tools & Stack</h2>
90+
<h2>Tools &amp; Stack</h2>
3491
<div class="badges">
3592
<span class="badge">Kubernetes / k3s</span>
3693
<span class="badge">FluxCD</span>
@@ -48,7 +105,7 @@ const description = "Security engineer, GitOps practitioner, and lifelong learne
48105
<ul>
49106
<li><a href="https://github.com/MrGuato" target="_blank" rel="noopener">GitHub — MrGuato</a></li>
50107
<li><a href="https://www.linkedin.com/in/jonathan-deleon-cism/" target="_blank" rel="noopener">LinkedIn — jonathan-deleon-cism</a></li>
51-
<li><a href="https://hashnode.com/@mrcyberleon" target="_blank" rel="noopener">Hashnode — @mrcyberleon</a></li>
108+
<li><a href="https://cloud.mrcyberleon.org" target="_blank" rel="noopener">Cloud Site — cloud.mrcyberleon.org</a></li>
52109
</ul>
53110
</div>
54111
</BaseLayout>

src/pages/index.astro

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const recent = posts.slice(1, 4);
1111
<BaseLayout title="GitOps Notes">
1212
<!-- Profile / README-style header -->
1313
<section class="profile-header">
14-
<div class="profile-avatar">JD</div>
14+
<img class="profile-avatar" src={`${base}/avatar.png`} alt="Jonathan DeLeon" />
1515
<div class="profile-info">
1616
<h1 class="profile-name">Jonathan DeLeon <span class="profile-handle">@MrGuato</span></h1>
1717
<p class="profile-bio">
@@ -31,9 +31,9 @@ const recent = posts.slice(1, 4);
3131
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M0 1.146C0 .514.53 0 1.183 0h13.634C15.47 0 16 .514 16 1.146v13.708c0 .632-.53 1.146-1.183 1.146H1.183C.53 16 0 15.486 0 14.854V1.146zm4.943 12.248V6.169H2.542v7.225h2.401zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248-.822 0-1.359.54-1.359 1.248 0 .694.521 1.248 1.327 1.248h.016zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016a5.54 5.54 0 0 1 .016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225h2.4z"/></svg>
3232
LinkedIn
3333
</a>
34-
<a class="profile-link" href="https://hashnode.com/@mrcyberleon" target="_blank" rel="noopener">
35-
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><circle cx="8" cy="8" r="8"/></svg>
36-
Hashnode
34+
<a class="profile-link" href="https://cloud.mrcyberleon.org" target="_blank" rel="noopener">
35+
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm3.5 7.5h-2v-2a.5.5 0 0 0-1 0v2h-2a.5.5 0 0 0 0 1h2v2a.5.5 0 0 0 1 0v-2h2a.5.5 0 0 0 0-1z"/></svg>
36+
Cloud Site
3737
</a>
3838
</div>
3939
</div>

src/pages/writing/[slug].astro

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ const readingTime = Math.max(1, Math.ceil(wordCount / 200));
3434
<!-- Meta bar -->
3535
<div class="post-meta-bar">
3636
<div class="post-meta-author">
37-
<div class="author-avatar">JD</div>
37+
<img class="author-avatar" src={`${base}/avatar.png`} alt="Jonathan DeLeon" style="object-fit:cover;" />
3838
<div>
3939
<div class="author-name">Jonathan DeLeon</div>
4040
<div class="author-sub">
@@ -53,14 +53,14 @@ const readingTime = Math.max(1, Math.ceil(wordCount / 200));
5353

5454
<!-- Author card at bottom -->
5555
<div class="author-card">
56-
<div class="author-card-avatar">JD</div>
56+
<img class="author-card-avatar" src={`${base}/avatar.png`} alt="Jonathan DeLeon" style="object-fit:cover;" />
5757
<div class="author-card-info">
5858
<div class="author-card-name">Jonathan DeLeon <span class="author-card-handle">@MrGuato</span></div>
5959
<p class="author-card-bio">Security Engineer based in Boston, MA. Building production-minded infrastructure with a security-first mindset. If it's not committed, it doesn't exist.</p>
6060
<div class="author-card-links">
6161
<a href="https://github.com/MrGuato" target="_blank" rel="noopener">GitHub</a>
6262
<a href="https://www.linkedin.com/in/jonathan-deleon-cism/" target="_blank" rel="noopener">LinkedIn</a>
63-
<a href="https://hashnode.com/@mrcyberleon" target="_blank" rel="noopener">Hashnode</a>
63+
<a href="https://cloud.mrcyberleon.org" target="_blank" rel="noopener">Cloud Site</a>
6464
</div>
6565
</div>
6666
</div>

src/styles/global.css

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -131,15 +131,9 @@ a:hover{ text-decoration:underline; text-underline-offset:4px; }
131131
width: 72px;
132132
height: 72px;
133133
border-radius: 50%;
134-
background: linear-gradient(135deg, #2563eb 0%, #7c3aed 100%);
135-
color: #fff;
136-
font-size: 22px;
137-
font-weight: 700;
138-
display: flex;
139-
align-items: center;
140-
justify-content: center;
134+
object-fit: cover;
141135
flex: none;
142-
letter-spacing: -0.02em;
136+
border: 2px solid var(--border);
143137
}
144138
.profile-name {
145139
margin: 0 0 6px;
@@ -477,15 +471,9 @@ a:hover{ text-decoration:underline; text-underline-offset:4px; }
477471
width: 40px;
478472
height: 40px;
479473
border-radius: 50%;
480-
background: linear-gradient(135deg, #2563eb 0%, #7c3aed 100%);
481-
color: #fff;
482-
font-size: 13px;
483-
font-weight: 700;
484-
display: flex;
485-
align-items: center;
486-
justify-content: center;
474+
object-fit: cover;
487475
flex: none;
488-
letter-spacing: -0.02em;
476+
border: 1px solid var(--border);
489477
}
490478
.author-name {
491479
font-size: 14px;
@@ -512,15 +500,9 @@ a:hover{ text-decoration:underline; text-underline-offset:4px; }
512500
width: 56px;
513501
height: 56px;
514502
border-radius: 50%;
515-
background: linear-gradient(135deg, #2563eb 0%, #7c3aed 100%);
516-
color: #fff;
517-
font-size: 17px;
518-
font-weight: 700;
519-
display: flex;
520-
align-items: center;
521-
justify-content: center;
503+
object-fit: cover;
522504
flex: none;
523-
letter-spacing: -0.02em;
505+
border: 1px solid var(--border);
524506
}
525507
.author-card-name {
526508
font-size: 16px;

0 commit comments

Comments
 (0)