Repository navigation
Expand file tree
/
Copy pathresume.html
More file actions
220 lines (209 loc) · 11 KB
/
Copy pathresume.html
File metadata and controls
220 lines (209 loc) · 11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Anton Krylov</title>
<meta
name="description"
content="Profile for Anton Krylov: agentic AI, infrastructure, Kubernetes, security tooling, and IngressLabs."
/>
<link rel="canonical" href="https://avkcode.github.io/resume.html" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Anton Krylov" />
<meta
property="og:description"
content="Profile across AI systems, infrastructure, security tooling, operator-focused product engineering, and IngressLabs."
/>
<meta property="og:url" content="https://avkcode.github.io/resume.html" />
<meta property="og:site_name" content="Anton Krylov" />
<link rel="stylesheet" href="/assets/blog-post-minimal.css?v=plain-black-20260501" />
</head>
<body class="resume-page" data-resume-lang="en">
<main class="resume-wrap">
<article class="resume-document" aria-label="Anton Krylov profile">
<header class="resume-header">
<div class="resume-identity">
<div class="resume-title-lockup">
<div class="resume-mark" aria-hidden="true">
<img src="./assets/ingresslabs/ingresslabs-icon.svg" alt="" />
</div>
<div class="resume-name-block">
<h1>Anton Krylov</h1>
<p class="resume-role" data-lang="en">Agentic AI infrastructure, Kubernetes systems, secure runtimes.</p>
<p class="resume-role" data-lang="ru">
Agentic AI-инфраструктура, Kubernetes-системы, безопасные runtimes.
</p>
</div>
</div>
</div>
<div class="resume-actions" aria-label="Resume actions">
<div class="resume-action-row">
<div class="resume-lang-switch" aria-label="Language">
<button class="is-active" type="button" data-lang-button="en" aria-pressed="true">EN</button>
<button type="button" data-lang-button="ru" aria-pressed="false">RU</button>
</div>
<button class="resume-pdf-button" type="button" onclick="window.print()">
<span>PDF</span>
<svg width="18" height="18" viewBox="0 0 24 24" aria-hidden="true">
<path
d="M12 3v12m0 0 5-5m-5 5-5-5"
fill="none"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
/>
<path d="M5 20h14" fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="2" />
</svg>
</button>
</div>
<nav class="resume-links" aria-label="Site">
<a href="./index.html">Home</a>
<a href="./blog/index.html">Blog</a>
<a href="mailto:antonvkrylov@gmail.com">Email</a>
</nav>
</div>
</header>
<div class="resume-contact-line" aria-label="Contact">
<a href="mailto:antonvkrylov@gmail.com">antonvkrylov@gmail.com</a>
<a href="https://ingresslabs.net/">ingresslabs.net</a>
</div>
<div class="resume-grid">
<div class="resume-main">
<section class="resume-block">
<h2>
<span data-lang="en">Profile</span>
<span data-lang="ru">Профиль</span>
</h2>
<p data-lang="en">
I turn infrastructure and AI workflows into inspectable products: systems that can be repeated,
deployed, audited, and operated under real constraints. The work sits between model capability,
runtime boundaries, evidence, and production control surfaces.
</p>
<p data-lang="ru">
Я превращаю инфраструктурные и AI-процессы в проверяемые продукты: системы, которые можно
повторять, разворачивать, аудитировать и сопровождать в реальных условиях. Работа находится
на стыке возможностей моделей, границ выполнения, доказательности и production control surfaces.
</p>
</section>
<section class="resume-block" aria-label="IngressLabs">
<div class="resume-current-card">
<a href="https://ingresslabs.net/">ingresslabs.net</a>
<p data-lang="en">
Secure infrastructure for AI agents: private deployment, runtime isolation, Kubernetes
workflows, operator control planes, and audit-ready execution.
</p>
<p data-lang="ru">
Безопасная инфраструктура для AI-агентов: приватное развертывание, изоляция runtime,
Kubernetes workflows, operator control planes и исполнение, готовое к аудиту.
</p>
</div>
</section>
<section class="resume-block">
<h2>
<span data-lang="en">Writing</span>
<span data-lang="ru">Публикации</span>
</h2>
<div class="resume-writing">
<a href="./blog/us-winning-ai-race.html">The US Is Winning the AI Race</a>
<a href="./blog/self-healing-platform-agent-store.html">The Self Healing Platform and the Agent Store</a>
<a href="./blog/hormuz-shock.html">Hormuz Shock</a>
<a href="./blog/creative-widgets-should-produce-files.html">Creativity Harness</a>
<a href="./blog/security-agents-need-memory.html">Security Agents Need Memory</a>
<a href="./blog/do-not-default-to-a-vpn.html">Do Not Default to a VPN</a>
<a href="./blog/codex-dicom-benchmark.html">Can a General LLM Diagnose a DICOM Slice?</a>
<a href="./blog/portal-browser-tmux.html">Portal Browser Tmux at Web Scale</a>
<a href="./blog/vibin-is-easy-its-all-about-data-and-design-now.html">Vibin' Is Easy</a>
<a href="./blog/portal-long-term-memory.html">Portal Long-Term Memory</a>
<a href="./blog/ai-tools-stuck-on-localhost.html">Why AI Coding Tools Still Feel Stuck on Localhost</a>
</div>
</section>
</div>
<aside class="resume-side" aria-label="Focus areas">
<section class="resume-block">
<h2>
<span data-lang="en">Focus</span>
<span data-lang="ru">Фокус</span>
</h2>
<ul class="resume-tags">
<li>Agentic AI</li>
</ul>
</section>
<section class="resume-block">
<h2>
<span data-lang="en">Strengths</span>
<span data-lang="ru">Сильные стороны</span>
</h2>
<ul class="resume-list" data-lang="en">
<li>Designing complex distributed systems, Kubernetes platforms, and production workflows.</li>
<li>Turning ambiguous AI and operator workflows into inspectable systems.</li>
<li>Building interfaces around logs, state, artifacts, and runtime boundaries.</li>
</ul>
<ul class="resume-list" data-lang="ru">
<li>Проектирование сложных распределенных систем, Kubernetes-платформ и production-процессов.</li>
<li>Преобразование неоднозначных AI и operator workflows в проверяемые системы.</li>
<li>Создание интерфейсов вокруг логов, состояния, артефактов и runtime boundaries.</li>
</ul>
</section>
<section class="resume-block">
<h2>
<span data-lang="en">Projects</span>
<span data-lang="ru">Проекты</span>
</h2>
<div class="resume-project-links">
<a href="https://github.com/avkcode/foundry">
<span>foundry</span>
<small data-lang="en">Scalable platform for AI agents.</small>
<small data-lang="ru">Масштабируемая платформа для AI-агентов.</small>
</a>
<a href="https://github.com/ingresslabs/torque">
<span>torque</span>
<small data-lang="en">
Agent-first Kubernetes delivery CLI for Docker builds, Helm HTML plan reports, sandboxed
execution, verifier gates, and portable SQLite evidence.
</small>
<small data-lang="ru">
Agent-first Kubernetes delivery CLI для Docker builds, Helm HTML plan reports, sandboxed
execution, verifier gates и portable SQLite evidence.
</small>
</a>
<a href="https://github.com/ingresslabs/k8s-release">
<span>k8s-release</span>
<small data-lang="en">Release tooling for Kubernetes-oriented delivery.</small>
<small data-lang="ru">Release-инструменты для Kubernetes delivery.</small>
</a>
<a href="https://github.com/ingresslabs/container-tools">
<span>container-tools</span>
<small data-lang="en">Base image and container build tooling.</small>
<small data-lang="ru">Инструменты для base images и container builds.</small>
</a>
</div>
</section>
</aside>
</div>
</article>
</main>
<script>
const resumeRoot = document.body;
const langButtons = document.querySelectorAll("[data-lang-button]");
const requestedLang = new URLSearchParams(window.location.search).get("lang");
const supportedLangs = new Set(["en", "ru"]);
function setResumeLang(lang) {
resumeRoot.dataset.resumeLang = lang;
document.documentElement.lang = lang;
langButtons.forEach((item) => {
const active = item.dataset.langButton === lang;
item.classList.toggle("is-active", active);
item.setAttribute("aria-pressed", String(active));
});
}
setResumeLang(supportedLangs.has(requestedLang) ? requestedLang : "en");
langButtons.forEach((button) => {
button.addEventListener("click", () => {
setResumeLang(button.dataset.langButton);
});
});
</script>
</body>
</html>