siriusdevops/index.html
sirius 39e926bb6c
Some checks failed
build-and-deploy / build (push) Failing after 30s
ci trigger
2026-07-07 14:42:44 -04:00

999 lines
28 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sirius DevOps — Cloud Infrastructure Engineering</title>
<meta name="description" content="Production cloud infrastructure engineering — Kubernetes clusters, AI/ML platforms, GitOps pipelines, and database fleets. I build and manage infrastructure so your team ships features.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
<style>
:root {
--bg: #09090b;
--surface: #0f0f12;
--surface-raised: #16161a;
--border: #1e1e24;
--border-light: rgba(255,255,255,0.06);
--text: #c8c8d0;
--text-heading: #e8e8ed;
--text-muted: #6b6b7b;
--text-faint: #44445a;
--accent: #d4882a;
--accent-dim: rgba(212,136,42,0.12);
--green: #3fb950;
--green-dim: rgba(63,185,80,0.12);
--red: #f85149;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html {
background: var(--bg);
color: var(--text);
font-family: 'Space Grotesk', system-ui, sans-serif;
-webkit-font-smoothing: antialiased;
scroll-behavior: smooth;
}
body {
max-width: 1120px;
margin: 0 auto;
padding: 0 32px;
}
/* ─── Header ─── */
header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 28px 0;
border-bottom: 1px solid var(--border);
}
.logo {
font-family: 'JetBrains Mono', monospace;
font-size: 14px;
font-weight: 500;
color: var(--text-heading);
letter-spacing: -0.2px;
display: flex;
align-items: center;
gap: 8px;
}
.logo .star {
color: var(--accent);
font-size: 16px;
line-height: 1;
}
header nav { display: flex; gap: 32px; }
header nav a {
color: var(--text-muted);
text-decoration: none;
font-size: 14px;
font-weight: 400;
transition: color 0.15s;
}
header nav a:hover { color: var(--text-heading); }
/* ─── Hero ─── */
.hero {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 48px;
padding: 80px 0 64px;
align-items: start;
}
.hero-left { padding-top: 8px; }
.hero-subtitle {
font-family: 'JetBrains Mono', monospace;
font-size: 11px;
color: var(--accent);
letter-spacing: 0.8px;
text-transform: uppercase;
margin-bottom: 14px;
}
.hero h1 {
font-size: clamp(28px, 4vw, 44px);
font-weight: 700;
line-height: 1.08;
letter-spacing: -1.2px;
color: var(--text-heading);
margin-bottom: 20px;
}
.hero h1 .accent-word {
color: var(--accent);
font-weight: 600;
}
.hero-description {
font-size: 16px;
line-height: 1.65;
color: var(--text-muted);
max-width: 480px;
margin-bottom: 28px;
}
.hero-description strong {
color: var(--text);
font-weight: 500;
}
.hero-cta {
display: flex;
gap: 12px;
align-items: center;
flex-wrap: wrap;
margin-bottom: 32px;
}
.btn-primary {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 10px 20px;
background: var(--accent);
color: #09090b;
font-size: 14px;
font-weight: 600;
border-radius: 6px;
text-decoration: none;
transition: background 0.15s, transform 0.1s;
}
.btn-primary:hover { background: #e0963a; transform: translateY(-1px); }
.btn-ghost {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 10px 20px;
background: rgba(255,255,255,0.03);
color: var(--text);
font-size: 14px;
font-weight: 500;
border-radius: 6px;
border: 1px solid var(--border);
text-decoration: none;
transition: background 0.15s, border-color 0.15s;
}
.btn-ghost:hover { background: rgba(255,255,255,0.05); border-color: var(--text-faint); }
/* Trust bar */
.trust-bar {
display: flex;
gap: 32px;
flex-wrap: wrap;
padding-top: 20px;
border-top: 1px solid var(--border-light);
}
.trust-item {
display: flex;
flex-direction: column;
gap: 2px;
}
.trust-value {
font-family: 'JetBrains Mono', monospace;
font-size: 16px;
font-weight: 500;
color: var(--text-heading);
letter-spacing: -0.3px;
}
.trust-label {
font-size: 11px;
color: var(--text-faint);
text-transform: uppercase;
letter-spacing: 0.5px;
}
/* ─── Terminal (hero right) ─── */
.terminal {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 8px;
overflow: hidden;
font-family: 'JetBrains Mono', monospace;
font-size: 12.5px;
line-height: 1.7;
}
.terminal-bar {
display: flex;
align-items: center;
gap: 6px;
padding: 10px 14px;
background: var(--surface-raised);
border-bottom: 1px solid var(--border);
}
.terminal-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--border);
}
.terminal-dot.red { background: #f85149; }
.terminal-dot.yellow { background: #d4882a; }
.terminal-dot.green { background: #3fb950; }
.terminal-title {
font-size: 11px;
color: var(--text-faint);
margin-left: 8px;
}
.terminal-body {
padding: 16px;
color: var(--text-muted);
}
.terminal-body .prompt { color: var(--accent); }
.terminal-body .cmd { color: var(--text-heading); }
.terminal-body .flag { color: var(--green); }
.terminal-body .value { color: var(--text); }
.terminal-body .dim { color: var(--text-faint); }
.terminal-body .status-ok { color: var(--green); }
/* Blinking cursor */
.cursor-blink {
display: inline-block;
width: 7px;
height: 14px;
background: var(--accent);
vertical-align: text-bottom;
animation: blink 1s step-end infinite;
margin-left: 2px;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
/* ─── Section dividers ─── */
.section-divider {
border-top: 1px solid var(--border);
margin: 0;
}
/* ─── Section headings ─── */
.section-overline {
font-family: 'JetBrains Mono', monospace;
font-size: 11px;
color: var(--accent);
letter-spacing: 1px;
text-transform: uppercase;
margin-bottom: 10px;
}
.section-title {
font-size: 24px;
font-weight: 600;
letter-spacing: -0.4px;
color: var(--text-heading);
margin-bottom: 48px;
}
/* ─── Tech Stack (numbered list) ─── */
.tech-stack {
padding: 80px 0;
}
.stack-list {
list-style: none;
counter-reset: stack;
}
.stack-item {
counter-increment: stack;
display: grid;
grid-template-columns: 32px 1fr;
gap: 0 24px;
padding: 24px 0;
border-bottom: 1px solid var(--border-light);
}
.stack-item:first-child { border-top: 1px solid var(--border-light); }
.stack-num {
font-family: 'JetBrains Mono', monospace;
font-size: 12px;
color: var(--text-faint);
padding-top: 2px;
}
.stack-content h3 {
font-size: 16px;
font-weight: 600;
color: var(--text-heading);
margin-bottom: 6px;
letter-spacing: -0.2px;
}
.stack-content p {
font-size: 14px;
line-height: 1.6;
color: var(--text-muted);
max-width: 640px;
margin-bottom: 10px;
}
.stack-content .tags {
display: flex;
gap: 6px;
flex-wrap: wrap;
}
.tag {
font-family: 'JetBrains Mono', monospace;
font-size: 11px;
color: var(--text-faint);
background: rgba(255,255,255,0.03);
padding: 3px 8px;
border-radius: 4px;
border: 1px solid rgba(255,255,255,0.04);
}
/* ─── Selected Work ─── */
.selected-work {
padding: 0 0 80px;
}
.work-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
}
.work-card {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 8px;
padding: 24px;
transition: border-color 0.2s;
text-decoration: none;
color: inherit;
display: block;
}
.work-card:hover { border-color: var(--text-faint); }
.work-card.featured {
grid-column: 1 / -1;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px;
align-items: start;
background: linear-gradient(135deg, var(--surface) 0%, rgba(212,136,42,0.03) 100%);
border-color: rgba(212,136,42,0.15);
}
.work-card.featured:hover { border-color: rgba(212,136,42,0.3); }
.work-card-header {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 12px;
}
.work-status {
width: 6px;
height: 6px;
border-radius: 50%;
background: var(--green);
box-shadow: 0 0 6px rgba(63,185,80,0.4);
}
.work-name {
font-family: 'JetBrains Mono', monospace;
font-size: 12px;
color: var(--text-heading);
font-weight: 500;
}
.work-env {
font-family: 'JetBrains Mono', monospace;
font-size: 10px;
color: var(--text-faint);
margin-left: auto;
background: var(--green-dim);
padding: 2px 6px;
border-radius: 3px;
}
.work-desc {
font-size: 13px;
line-height: 1.55;
color: var(--text-muted);
margin-bottom: 12px;
}
.work-meta {
font-family: 'JetBrains Mono', monospace;
font-size: 11px;
color: var(--text-faint);
display: flex;
gap: 16px;
}
.work-stages {
display: flex;
flex-direction: column;
gap: 8px;
}
.work-stage {
display: flex;
align-items: center;
gap: 8px;
font-family: 'JetBrains Mono', monospace;
font-size: 11px;
color: var(--text-muted);
}
.work-stage .stage-dot {
width: 5px;
height: 5px;
border-radius: 50%;
background: var(--green);
flex-shrink: 0;
}
/* ─── Services ─── */
.services {
padding: 0 0 80px;
}
.services-list {
list-style: none;
counter-reset: svc;
}
.svc-item {
counter-increment: svc;
display: grid;
grid-template-columns: 32px 1fr;
gap: 0 24px;
padding: 24px 0;
border-bottom: 1px solid var(--border-light);
}
.svc-item:first-child { border-top: 1px solid var(--border-light); }
.svc-num {
font-family: 'JetBrains Mono', monospace;
font-size: 12px;
color: var(--text-faint);
padding-top: 2px;
}
.svc-content h3 {
font-size: 16px;
font-weight: 600;
color: var(--text-heading);
margin-bottom: 6px;
letter-spacing: -0.2px;
}
.svc-content p {
font-size: 14px;
line-height: 1.6;
color: var(--text-muted);
max-width: 640px;
}
/* ─── Contact ─── */
.contact {
padding: 0 0 80px;
display: grid;
grid-template-columns: 1.2fr 1fr;
gap: 48px;
align-items: start;
}
.contact-text h2 {
font-size: 24px;
font-weight: 600;
letter-spacing: -0.4px;
color: var(--text-heading);
margin-bottom: 12px;
}
.contact-text p {
font-size: 15px;
line-height: 1.6;
color: var(--text-muted);
margin-bottom: 24px;
}
.contact-links {
display: flex;
gap: 12px;
flex-wrap: wrap;
}
.contact-panel {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 8px;
padding: 24px;
}
.contact-panel h3 {
font-size: 13px;
font-weight: 600;
color: var(--text-heading);
margin-bottom: 16px;
letter-spacing: -0.1px;
}
.contact-row {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 0;
border-bottom: 1px solid var(--border-light);
}
.contact-row:last-child { border-bottom: none; }
.contact-row .label {
font-size: 13px;
color: var(--text-muted);
}
.contact-row .value {
font-family: 'JetBrains Mono', monospace;
font-size: 12px;
color: var(--text);
text-decoration: none;
transition: color 0.15s;
}
.contact-row .value:hover { color: var(--accent); }
/* ─── Footer ─── */
footer {
padding: 24px 0;
border-top: 1px solid var(--border);
display: flex;
justify-content: space-between;
align-items: center;
}
footer .brand {
font-family: 'JetBrains Mono', monospace;
font-size: 12px;
color: var(--text-faint);
}
footer .links { display: flex; gap: 24px; }
footer .links a {
color: var(--text-faint);
text-decoration: none;
font-size: 13px;
transition: color 0.15s;
}
footer .links a:hover { color: var(--text-muted); }
/* ─── Responsive ─── */
@media (max-width: 800px) {
body { padding: 0 20px; }
header { padding: 20px 0; }
header nav { gap: 20px; }
.hero {
grid-template-columns: 1fr;
gap: 32px;
padding: 48px 0 40px;
}
.tech-stack, .services { padding: 48px 0; }
.work-grid { grid-template-columns: 1fr; }
.work-card.featured {
grid-template-columns: 1fr;
}
.contact {
grid-template-columns: 1fr;
gap: 24px;
padding: 0 0 48px;
}
.stack-item { grid-template-columns: 24px 1fr; gap: 0 16px; }
.svc-item { grid-template-columns: 24px 1fr; gap: 0 16px; }
.trust-bar { gap: 24px; }
}
@media (max-width: 520px) {
header { flex-direction: column; align-items: flex-start; gap: 12px; }
.hero h1 { letter-spacing: -0.8px; }
.hero-cta { flex-direction: column; align-items: flex-start; }
.btn-primary, .btn-ghost { width: 100%; justify-content: center; }
.work-meta { flex-direction: column; gap: 4px; }
footer { flex-direction: column; gap: 12px; align-items: flex-start; }
.trust-bar { gap: 20px; }
.trust-value { font-size: 14px; }
}
</style>
</head>
<body>
<!-- ─── Header ─── -->
<header>
<div class="logo"><span class="star">&#9733;</span> siriusdevops.com</div>
<nav>
<a href="#stack">Tech Stack</a>
<a href="#work">Selected Work</a>
<a href="#services">Services</a>
<a href="#contact">Contact</a>
</nav>
</header>
<!-- ─── Hero ─── -->
<section class="hero">
<div class="hero-left">
<div class="hero-subtitle">Cloud Infrastructure Engineering</div>
<h1>I build infrastructure<br>that <span class="accent-word">stays out of the way.</span></h1>
<p class="hero-description">
Solo infrastructure engineer for teams who'd rather ship features than debug cluster networking. <strong>Production clusters, AI inference platforms, GitOps pipelines, hardened databases.</strong> Everything versioned, everything automated.
</p>
<div class="hero-cta">
<a href="#contact" class="btn-primary">Get in touch</a>
<a href="#work" class="btn-ghost">See what's running</a>
</div>
<div class="trust-bar">
<div class="trust-item">
<span class="trust-value">100+ days</span>
<span class="trust-label">Continuous uptime</span>
</div>
<div class="trust-item">
<span class="trust-value">24/7</span>
<span class="trust-label">Always running</span>
</div>
<div class="trust-item">
<span class="trust-value">Multi-region</span>
<span class="trust-label">Cluster topology</span>
</div>
<div class="trust-item">
<span class="trust-value">GPU-accelerated</span>
<span class="trust-label">Inference ready</span>
</div>
</div>
</div>
<div class="terminal" aria-label="Terminal showing cluster status">
<div class="terminal-bar">
<span class="terminal-dot red"></span>
<span class="terminal-dot yellow"></span>
<span class="terminal-dot green"></span>
<span class="terminal-title">kubectl — production</span>
</div>
<div class="terminal-body">
<div><span class="prompt">%</span> <span class="cmd">kubectl</span> <span class="flag">get nodes</span></div>
<div><span class="value">NAME</span> <span class="dim">STATUS</span> <span class="dim">ROLES</span> <span class="dim">AGE</span></div>
<div><span class="value">prod-pool-1-7xk2</span> <span class="status-ok">Ready</span> <span class="dim">general</span> <span class="dim">142d</span></div>
<div><span class="value">prod-pool-2-m9z1</span> <span class="status-ok">Ready</span> <span class="dim">general</span> <span class="dim">142d</span></div>
<div><span class="value">gpu-pool-a3f8</span> <span class="status-ok">Ready</span> <span class="dim">gpu</span> <span class="dim">89d</span></div>
<div><span class="value">gpu-pool-b2k1</span> <span class="status-ok">Ready</span> <span class="dim">gpu</span> <span class="dim">89d</span></div>
<br>
<div><span class="prompt">%</span> <span class="cmd">flux</span> <span class="flag">get kustomizations</span></div>
<div><span class="value">NAME</span> <span class="dim">READY</span> <span class="dim">MESSAGE</span> <span class="dim">AGE</span></div>
<div><span class="value">infra</span> <span class="status-ok">True</span> <span class="dim">reconciled successfully</span> <span class="dim">2m</span></div>
<div><span class="value">apps</span> <span class="status-ok">True</span> <span class="dim">reconciled successfully</span> <span class="dim">2m</span></div>
<br>
<div><span class="prompt">%</span> <span class="cursor-blink"></span></div>
</div>
</div>
</section>
<div class="section-divider" role="separator"></div>
<!-- ─── Tech Stack ─── -->
<section class="tech-stack" id="stack">
<div class="section-overline">Tech Stack</div>
<h2 class="section-title">Technologies I work with daily</h2>
<ol class="stack-list">
<li class="stack-item">
<span class="stack-num">01</span>
<div class="stack-content">
<h3>Orchestration &amp; Clusters</h3>
<p>Multi-region Kubernetes, auto-provisioning node pools, workload identity federation. Clusters designed to run reliably from day one.</p>
<div class="tags">
<span class="tag">Kubernetes</span>
<span class="tag">GKE Autopilot</span>
<span class="tag">kubeadm</span>
<span class="tag">Multi-cluster</span>
</div>
</div>
</li>
<li class="stack-item">
<span class="stack-num">02</span>
<div class="stack-content">
<h3>CI/CD &amp; GitOps</h3>
<p>Every commit propagates to cluster — auditable, repeatable, fast. Automated dependency updates, zero-downtime rollouts, instant rollback if something breaks.</p>
<div class="tags">
<span class="tag">GitHub Actions</span>
<span class="tag">Flux CD</span>
<span class="tag">Zero-downtime</span>
<span class="tag">Auto-rollout</span>
</div>
</div>
</li>
<li class="stack-item">
<span class="stack-num">03</span>
<div class="stack-content">
<h3>AI/ML Infrastructure</h3>
<p>GPU-accelerated serving with scale-to-zero autoscaling, model routing, multi-tenant isolation, and cost tracking. From lightweight dispatch to heavy inference.</p>
<div class="tags">
<span class="tag">GPU Serving</span>
<span class="tag">vLLM</span>
<span class="tag">Model Routing</span>
<span class="tag">Scale-to-Zero</span>
</div>
</div>
</li>
<li class="stack-item">
<span class="stack-num">04</span>
<div class="stack-content">
<h3>Data &amp; Storage</h3>
<p>High-availability PostgreSQL with automated backups, point-in-time recovery, and connection pooling. Time-series databases and message queues for event-driven architectures.</p>
<div class="tags">
<span class="tag">PostgreSQL</span>
<span class="tag">CNPG</span>
<span class="tag">PgBouncer</span>
<span class="tag">Time-series</span>
<span class="tag">Message Queues</span>
</div>
</div>
</li>
<li class="stack-item">
<span class="stack-num">05</span>
<div class="stack-content">
<h3>Networking &amp; Security</h3>
<p>Network segmentation, mTLS, encrypted secrets with KMS unsealing, and CIS benchmark compliance. Defense in depth applied by default.</p>
<div class="tags">
<span class="tag">Cilium</span>
<span class="tag">Gateway API</span>
<span class="tag">mTLS</span>
<span class="tag">Encrypted Secrets</span>
<span class="tag">KMS</span>
</div>
</div>
</li>
<li class="stack-item">
<span class="stack-num">06</span>
<div class="stack-content">
<h3>Observability</h3>
<p>Prometheus metrics, Grafana dashboards, structured logging, and alerting pipelines that notify before you notice. Full traceability from symptom to root cause.</p>
<div class="tags">
<span class="tag">Prometheus</span>
<span class="tag">Grafana</span>
<span class="tag">Structured Logging</span>
<span class="tag">Alerting</span>
</div>
</div>
</li>
<li class="stack-item">
<span class="stack-num">07</span>
<div class="stack-content">
<h3>Infrastructure as Code</h3>
<p>Declarative configurations with strict separation between provisioning and application manifests. Two-repo discipline — infrastructure and apps never mix.</p>
<div class="tags">
<span class="tag">Terraform</span>
<span class="tag">Kustomize</span>
<span class="tag">Declarative</span>
<span class="tag">Two-repo discipline</span>
</div>
</div>
</li>
</ol>
</section>
<div class="section-divider" role="separator"></div>
<!-- ─── Selected Work ─── -->
<section class="selected-work" id="work">
<div class="section-overline">Selected Work</div>
<h2 class="section-title">Systems that are actually running</h2>
<p style="max-width: 680px; font-size: 14px; line-height: 1.6; color: var(--text-muted); margin-bottom: 32px;">
Not portfolio pieces or demos. Production systems processing real data, serving real workloads, running 24/7.
</p>
<!-- Featured: News Intelligence Pipeline -->
<div class="work-card featured" style="margin-bottom: 16px; cursor: default;">
<div>
<div class="work-card-header">
<span class="work-status"></span>
<span class="work-name">Autonomous news intelligence pipeline</span>
<span class="work-env">production</span>
</div>
<p class="work-desc">
Full autonomous pipeline: scrapes news sources continuously, runs LLM-based analysis on GPU, and pushes trading signals to messaging platforms in real time. Monitors financial markets with algorithmic strategies.
</p>
<div class="work-meta">
<span>100+ sources</span>
<span>LLM analysis</span>
<span>real-time alerts</span>
<span>4-stage pipeline</span>
</div>
</div>
<div class="work-stages">
<div class="work-stage"><span class="stage-dot"></span> Ingestion — Scraping + dedup</div>
<div class="work-stage"><span class="stage-dot"></span> Analysis — LLM on GPU</div>
<div class="work-stage"><span class="stage-dot"></span> Storage — PostgreSQL + API</div>
<div class="work-stage"><span class="stage-dot"></span> Delivery — Real-time alerts</div>
</div>
</div>
<div class="work-grid">
<div class="work-card" style="cursor: default;">
<div class="work-card-header">
<span class="work-status"></span>
<span class="work-name">Multi-agent AI orchestration platform</span>
<span class="work-env">production</span>
</div>
<p class="work-desc">Specialist agent teams coordinated through kanban-driven task decomposition. Persistent memory, autonomous coding, research, and operations — infrastructure managed by the very agents it runs.</p>
<div class="work-meta">
<span>multi-agent</span>
<span>kanban-driven</span>
<span>self-operating</span>
</div>
</div>
<div class="work-card" style="cursor: default;">
<div class="work-card-header">
<span class="work-status"></span>
<span class="work-name">Real-time financial data infrastructure</span>
<span class="work-env">production</span>
</div>
<p class="work-desc">Market data feeds, whale tracking, position scanners, and trading signal pipelines. Low-latency infrastructure running continuously on dedicated clusters with high-availability databases.</p>
<div class="work-meta">
<span>hundreds of feeds</span>
<span>24/7</span>
<span>low-latency</span>
</div>
</div>
<div class="work-card" style="cursor: default;">
<div class="work-card-header">
<span class="work-status"></span>
<span class="work-name">Managed cloud infrastructure</span>
<span class="work-env">multi-region</span>
</div>
<p class="work-desc">Production clusters, high-availability databases, and GitOps deployments across multiple workloads. Terraform provisioning, automated rollouts, and continuous monitoring.</p>
<div class="work-meta">
<span>multi-cluster</span>
<span>GitOps</span>
<span>100+ day uptime</span>
</div>
</div>
<div class="work-card" style="cursor: default;">
<div class="work-card-header">
<span class="work-status"></span>
<span class="work-name">Private AI inference platform</span>
<span class="work-env">production</span>
</div>
<p class="work-desc">GPU-accelerated serving with autoscaling, model routing, and cost tracking. Fully isolated environments with multi-tenant support and scale-to-zero for cost efficiency.</p>
<div class="work-meta">
<span>GPU-accelerated</span>
<span>scale-to-zero</span>
<span>multi-tenant</span>
</div>
</div>
</div>
</section>
<div class="section-divider" role="separator"></div>
<!-- ─── Services ─── -->
<section class="services" id="services">
<div class="section-overline">Services</div>
<h2 class="section-title">What I deliver</h2>
<ol class="services-list">
<li class="svc-item">
<span class="svc-num">01</span>
<div class="svc-content">
<h3>End-to-end infrastructure design and management</h3>
<p>Production clusters designed from scratch, provisioned with IaC, and managed with GitOps. Automated builds, zero-downtime updates, encrypted secrets, and monitoring that alerts before you notice. I operate what I build.</p>
</div>
</li>
<li class="svc-item">
<span class="svc-num">02</span>
<div class="svc-content">
<h3>AI/ML platform deployment and scaling</h3>
<p>GPU-accelerated inference platforms with autoscaling, model routing, multi-tenant isolation, and cost controls. From prototype to production — your models, your data, fully isolated.</p>
</div>
</li>
<li class="svc-item">
<span class="svc-num">03</span>
<div class="svc-content">
<h3>Autonomous agent system architecture</h3>
<p>Multi-agent systems with specialist teams, shared orchestration, persistent memory, and versioned operations. Agents that plan, research, code, review, and execute — with full traceability.</p>
</div>
</li>
<li class="svc-item">
<span class="svc-num">04</span>
<div class="svc-content">
<h3>CI/CD and GitOps implementation</h3>
<p>Automated pipelines from commit to cluster. Dependency updates, zero-downtime rollouts, instant rollback, and auditable history. No click-ops, no manual deployments.</p>
</div>
</li>
<li class="svc-item">
<span class="svc-num">05</span>
<div class="svc-content">
<h3>Security audits and hardening</h3>
<p>Network segmentation, non-root containers, encrypted secrets, mTLS, CIS benchmarks, and vulnerability scanning. Defense in depth applied systematically, not retrofitted after an incident.</p>
</div>
</li>
</ol>
</section>
<div class="section-divider" role="separator"></div>
<!-- ─── Contact ─── -->
<section class="contact" id="contact">
<div class="contact-text">
<h2>Available for consulting and contracts</h2>
<p>Whether you need a production cluster designed from scratch, an existing setup hardened for security, or an autonomous intelligence system built for your domain — reach out. I work remotely and communicate in code reviews and commit messages.</p>
<div class="contact-links">
<a href="mailto:sirius@siriusdevops.com" class="btn-primary">Email me</a>
<a href="https://github.com/sirius0xdev" target="_blank" rel="noopener" class="btn-ghost">GitHub</a>
</div>
</div>
<div class="contact-panel">
<h3>Quick reference</h3>
<div class="contact-row">
<span class="label">Email</span>
<a href="mailto:sirius@siriusdevops.com" class="value">sirius@siriusdevops.com</a>
</div>
<div class="contact-row">
<span class="label">GitHub</span>
<a href="https://github.com/sirius0xdev" target="_blank" rel="noopener" class="value">sirius0xdev</a>
</div>
<div class="contact-row">
<span class="label">Availability</span>
<span class="value">Available for new projects</span>
</div>
<div class="contact-row">
<span class="label">Location</span>
<span class="value">Remote / Async-first</span>
</div>
</div>
</section>
<!-- ─── Footer ─── -->
<footer>
<div class="brand">siriusdevops.com</div>
<div class="links">
<a href="https://github.com/sirius0xdev">GitHub</a>
<a href="mailto:sirius@siriusdevops.com">Email</a>
</div>
</footer>
</body>
</html>
<!-- ci trigger 1783449910 -->