Compare commits

..
4 Commits
Author SHA1 Message Date
krosh 936d8d4e47 FIN. add en version
Build resume PDFs / Build Russian and English resumes (push) Failing after 11s
2026-08-06 23:19:30 +03:00
krosh 08f79026c0 WIP. add more info about myself 2026-08-06 23:13:12 +03:00
krosh 1b1d55a09e WIP. Refine resume skills and headline 2026-08-06 22:41:40 +03:00
krosh 3562955ce1 move paragraphs 2026-08-06 22:03:30 +03:00
4 changed files with 86 additions and 38 deletions
+8 -5
View File
@@ -3,15 +3,18 @@
\newcommand{\ResumeEmail}{gudovdo@my.msu.ru} \newcommand{\ResumeEmail}{gudovdo@my.msu.ru}
\newcommand{\ResumeGitHubHandle}{kr0sh512} \newcommand{\ResumeGitHubHandle}{kr0sh512}
\newcommand{\ResumeGiteaHandle}{self-hosted Gitea}
\newcommand{\ResumeTelegramHandle}{kr0sh\_512} \newcommand{\ResumeTelegramHandle}{kr0sh\_512}
\newcommand{\ResumeGitHubUrl}{https://github.com/kr0sh512} \newcommand{\ResumeGitHubUrl}{https://github.com/kr0sh512}
\newcommand{\ResumeGiteaUrl}{https://git.krosh.dev}
\newcommand{\ResumeTelegramUrl}{https://t.me/kr0sh_512} \newcommand{\ResumeTelegramUrl}{https://t.me/kr0sh_512}
\newcommand{\ResumeDevOpsStack}{Linux, Docker/OCI, Kubernetes, K3s, RKE2, Helm, Ansible, Traefik, systemd, SSH, Let's Encrypt} \newcommand{\ResumeLinuxStack}{ALT \& Arch Linux, systemd, SSH, Bash, TCP/IP, DNS, TLS}
\newcommand{\ResumeCiTools}{GitHub Actions, GHCR} \newcommand{\ResumeContainersStack}{Docker/OCI, Kubernetes, K3s, RKE2,
\newcommand{\ResumeDevelopmentStack}{Python, C, C++, TypeScript, Shell, SQL; FastAPI, SQLAlchemy, Pydantic, React, Vite} Helm, Traefik}
\newcommand{\ResumeDataStores}{PostgreSQL, SQLite, MongoDB} \newcommand{\ResumeCiTools}{Ansible, Git, GitHub Actions, GHCR}
\newcommand{\ResumeQualityTools}{pytest, mypy, Black} \newcommand{\ResumeDevelopmentStack}{Python, C, C++, SQL; FastAPI, SQLAlchemy, pytest}
\newcommand{\ResumeObservabilityTools}{Prometheus, Grafana, Alertmanager, Node Exporter}
\newcommand{\ResumeAltRpmName}{ALT RPM Set Version Research} \newcommand{\ResumeAltRpmName}{ALT RPM Set Version Research}
\newcommand{\ResumeAltRpmUrl}{https://github.com/kr0sh512/alt-rpm-set-version} \newcommand{\ResumeAltRpmUrl}{https://github.com/kr0sh512/alt-rpm-set-version}
+11 -5
View File
@@ -67,6 +67,8 @@
\quad·\quad \quad·\quad
\href{\ResumeGitHubUrl}{github.com/\ResumeGitHubHandle} \href{\ResumeGitHubUrl}{github.com/\ResumeGitHubHandle}
\quad·\quad \quad·\quad
\href{\ResumeGiteaUrl}{\ResumeGiteaHandle}
\quad·\quad
\href{\ResumeTelegramUrl}{t.me/\ResumeTelegramHandle} \href{\ResumeTelegramUrl}{t.me/\ResumeTelegramHandle}
\end{minipage}\par \end{minipage}\par
@@ -82,18 +84,22 @@
\section{\ResumeSkillsSection} \section{\ResumeSkillsSection}
\begin{itemize} \begin{itemize}
\item \textbf{\ResumeDevOpsSkillLabel:} \ResumeDevOpsSkillText. \item \textbf{\ResumeLinuxSkillLabel:} \ResumeLinuxSkillText.
\item \textbf{\ResumeContainersSkillLabel:} \ResumeContainersSkillText.
\item \textbf{\ResumeCiSkillLabel:} \ResumeCiSkillText. \item \textbf{\ResumeCiSkillLabel:} \ResumeCiSkillText.
\item \textbf{\ResumeObservabilitySkillLabel:} \ResumeObservabilitySkillText.
\item \textbf{\ResumeDevelopmentSkillLabel:} \ResumeDevelopmentSkillText. \item \textbf{\ResumeDevelopmentSkillLabel:} \ResumeDevelopmentSkillText.
\item \textbf{\ResumeDataSkillLabel:} \ResumeDataSkillText. \ifdefined\ResumeLanguagesSkillLabel
\item \textbf{\ResumeLanguagesSkillLabel:} \ResumeLanguagesSkillText.
\fi
\end{itemize} \end{itemize}
\section{\ResumeProjectsSection} \section{\ResumeProjectsSection}
\project{\href{\ResumeAltRpmUrl}{\ResumeAltRpmName}}{\ResumeAltRpmDescription}
\project{\ResumeInfrastructureName}{\ResumeInfrastructureDescription} \project{\ResumeInfrastructureName}{\ResumeInfrastructureDescription}
\project{\href{\ResumeAltRpmUrl}{\ResumeAltRpmName}}{\ResumeAltRpmDescription}
% \project{\href{\ResumeNetworkDiagramsUrl}{\ResumeNetworkDiagramsName}}{\ResumeNetworkDiagramsDescription}
\project{\href{\ResumeNexusSyncUrl}{\ResumeNexusSyncName}}{\ResumeNexusSyncDescription} \project{\href{\ResumeNexusSyncUrl}{\ResumeNexusSyncName}}{\ResumeNexusSyncDescription}
% \project{\href{\ResumeVpnBotUrl}{\ResumeVpnBotName}}{\ResumeVpnBotDescription}
\project{\href{\ResumePomodoroUrl}{\ResumePomodoroName}}{\ResumePomodoroDescription} \project{\href{\ResumePomodoroUrl}{\ResumePomodoroName}}{\ResumePomodoroDescription}
\project{\href{\ResumeNetworkDiagramsUrl}{\ResumeNetworkDiagramsName}}{\ResumeNetworkDiagramsDescription}
\project{\href{\ResumeVpnBotUrl}{\ResumeVpnBotName}}{\ResumeVpnBotDescription}
\end{document} \end{document}
+31 -15
View File
@@ -3,38 +3,54 @@
\newcommand{\ResumeDocumentLanguage}{english} \newcommand{\ResumeDocumentLanguage}{english}
\newcommand{\ResumeName}{Dmitrii Gudov} \newcommand{\ResumeName}{Dmitrii Gudov}
\newcommand{\ResumePdfTitle}{Resume — Dmitrii Gudov} \newcommand{\ResumePdfTitle}{Resume — Dmitrii Gudov}
\newcommand{\ResumeHeadline}{DevOps / Linux Engineer · Systems and Backend Developer} \newcommand{\ResumeHeadline}{DevOps / Linux Engineer · Infrastructure Automation}
\newcommand{\ResumeSummarySection}{Professional Summary} \newcommand{\ResumeSummarySection}{Professional Summary}
\newcommand{\ResumeSummaryText}{DevOps-oriented developer and Computer Science student at CMC MSU. I build and operate Linux infrastructure, automate repeatable work, and develop systems and backend tools. My primary interests are ALT Linux and RPM internals, Kubernetes, containers, CI/CD, Python, and C.} \newcommand{\ResumeSummaryText}{Fourth-year student at the Faculty of Computational Mathematics and Cybernetics, Lomonosov Moscow State University, with hands-on experience operating Linux servers, a multi-node K3s cluster, and infrastructure automation. I deploy containerized services, configure CI/CD, monitoring, TLS, and DNS, and automate server configuration with Ansible. I develop systems tools in Python and C and have worked on teams at BaseALT and Yandex. I am seeking a DevOps/Linux internship focused on automation, operations, and troubleshooting.}
\newcommand{\ResumeExperienceSection}{Experience} \newcommand{\ResumeExperienceSection}{Experience}
\newcommand{\ResumeBaseAltDate}{Present} \newcommand{\ResumeBaseAltDate}{Present}
\newcommand{\ResumeBaseAltDescription}{Linux/RPM tooling and systems research, including ALT Linux dependency mechanisms, RPM performance, and compatibility.} \newcommand{\ResumeBaseAltDescription}{%
\begin{itemize}
\item Researched the set:version mechanism in ALT RPM and developed an alternative implementation for comparing encoded dependency sets.
\item Built a test bench for A/B testing librpm variants against real APT scenarios: check, install, upgrade, autoremove, and dist-upgrade.
\item Validated compatibility with differential testing and sanitizers and analyzed performance using hasher and perf.
\end{itemize}}
\newcommand{\ResumeYandexRole}{Yandex — DevTools Intern, Autonomous Transport} \newcommand{\ResumeYandexRole}{Yandex — DevTools Intern, Autonomous Transport}
\newcommand{\ResumeYandexDate}{Fall 2025} \newcommand{\ResumeYandexDate}{Fall 2025}
\newcommand{\ResumeYandexDescription}{Software development in a developer tooling team.} \newcommand{\ResumeYandexDescription}{%
\begin{itemize}
\item Used Python multithreading to speed up builds of internal components.
\item Added block-level tests to CI to support retiring legacy code.
\item Refactored Go code to reduce the overall size of rover firmware.
\end{itemize}}
\newcommand{\ResumeEducationSection}{Education} \newcommand{\ResumeEducationSection}{Education}
\newcommand{\ResumeUniversityName}{Lomonosov Moscow State University} \newcommand{\ResumeUniversityName}{Lomonosov Moscow State University}
\newcommand{\ResumeEducationDate}{Current} \newcommand{\ResumeEducationDate}{2023--2027}
\newcommand{\ResumeEducationDescription}{Faculty of Computational Mathematics and Cybernetics, Computer Science.} \newcommand{\ResumeEducationDescription}{Faculty of Computational Mathematics and Cybernetics, Bachelor's degree program in Applied Mathematics and Computer Science. Department of Computer Systems Automation (ASVK).}
\newcommand{\ResumeSkillsSection}{Core Skills} \newcommand{\ResumeSkillsSection}{Core Skills}
\newcommand{\ResumeDevOpsSkillLabel}{DevOps and infrastructure} \newcommand{\ResumeLinuxSkillLabel}{Linux and networking}
\newcommand{\ResumeDevOpsSkillText}{\ResumeDevOpsStack} \newcommand{\ResumeLinuxSkillText}{\ResumeLinuxStack}
\newcommand{\ResumeCiSkillLabel}{CI/CD} \newcommand{\ResumeContainersSkillLabel}{Containers and orchestration}
\newcommand{\ResumeCiSkillText}{\ResumeCiTools, multi-architecture container builds, automated testing, packaging, and publishing} \newcommand{\ResumeContainersSkillText}{\ResumeContainersStack}
\newcommand{\ResumeCiSkillLabel}{Automation and CI/CD}
\newcommand{\ResumeCiSkillText}{\ResumeCiTools, multi-architecture container builds, testing, packaging, and publishing}
\newcommand{\ResumeObservabilitySkillLabel}{Observability}
\newcommand{\ResumeObservabilitySkillText}{\ResumeObservabilityTools}
\newcommand{\ResumeDevelopmentSkillLabel}{Development} \newcommand{\ResumeDevelopmentSkillLabel}{Development}
\newcommand{\ResumeDevelopmentSkillText}{\ResumeDevelopmentStack} \newcommand{\ResumeDevelopmentSkillText}{\ResumeDevelopmentStack}
\newcommand{\ResumeDataSkillLabel}{Data and quality} \newcommand{\ResumeDataSkillLabel}{Data and quality}
\newcommand{\ResumeDataSkillText}{\ResumeDataStores; \ResumeQualityTools, sanitizers, differential testing, benchmarking} \newcommand{\ResumeDataSkillText}{\ResumeDataStores; \ResumeQualityTools, sanitizers, differential testing, benchmarking}
\newcommand{\ResumeLanguagesSkillLabel}{Languages}
\newcommand{\ResumeLanguagesSkillText}{English — B2}
\newcommand{\ResumeProjectsSection}{Selected Projects} \newcommand{\ResumeProjectsSection}{Selected Projects}
\newcommand{\ResumeAltRpmDescription}{research into encoded symbol sets and RPM dependency comparison, covering C implementations, hashing, compatibility, sanitizer checks, and APT/RPM benchmarks.} \newcommand{\ResumeAltRpmDescription}{research into encoded symbol sets and RPM dependency comparison in ALT Linux, covering C implementations, hashing, compatibility, sanitizer checks, and APT/RPM benchmarks.}
\newcommand{\ResumeNexusSyncDescription}{a client-server system for centralized computer management and approved command dispatch. FastAPI, SQLAlchemy, CLI, YAML configuration, systemd, standalone builds, and CI.} \newcommand{\ResumeNexusSyncDescription}{a client-server system for centralized computer management and approved command execution. FastAPI, SQLAlchemy, CLI, YAML configuration, systemd, standalone builds, and CI.}
\newcommand{\ResumeInfrastructureName}{Homelab} \newcommand{\ResumeInfrastructureName}{Seven-node K3s homelab}
\newcommand{\ResumeInfrastructureDescription}{Linux server automation with Ansible, multi-node K3s/RKE2 operations, container deployment, ingress and ServiceLB networking, TLS automation, and remote troubleshooting.} \newcommand{\ResumeInfrastructureDescription}{operating containerized services; configuring Traefik ingress, ServiceLB, TLS certificates, and DNS; monitoring with Prometheus, Grafana, and Node Exporter; alerting with Alertmanager; automating Linux server configuration with Ansible; and troubleshooting network and system issues.}
\newcommand{\ResumePomodoroDescription}{a browser timer built with React, TypeScript, and Vite; tested and published by GitHub Actions as an unprivileged multi-architecture image in GHCR.}
\newcommand{\ResumeNetworkDiagramsDescription}{a Python tool for building and visualizing network topologies.} \newcommand{\ResumeNetworkDiagramsDescription}{a Python tool for building and visualizing network topologies.}
\newcommand{\ResumeVpnBotDescription}{a containerized Python bot for managing invitations and user lifecycle through the Marzban API.} \newcommand{\ResumeVpnBotDescription}{a containerized Python bot for managing invitations and user lifecycle through the Marzban API.}
\newcommand{\ResumePomodoroDescription}{a browser timer built with React, TypeScript, and Vite; tested and published by GitHub Actions as an unprivileged multi-architecture image in GHCR.}
+36 -13
View File
@@ -3,38 +3,61 @@
\newcommand{\ResumeDocumentLanguage}{russian} \newcommand{\ResumeDocumentLanguage}{russian}
\newcommand{\ResumeName}{Дмитрий Гудов} \newcommand{\ResumeName}{Дмитрий Гудов}
\newcommand{\ResumePdfTitle}{Резюме — Дмитрий Гудов} \newcommand{\ResumePdfTitle}{Резюме — Дмитрий Гудов}
\newcommand{\ResumeHeadline}{DevOps / Linux-инженер · системный и backend-разработчик} \newcommand{\ResumeHeadline}{DevOps / Linux-инженер · Автоматизация инфраструктуры}
\newcommand{\ResumeSummarySection}{Профессиональный профиль} \newcommand{\ResumeSummarySection}{Профессиональный профиль}
\newcommand{\ResumeSummaryText}{DevOps-ориентированный разработчик и студент ВМК МГУ. Разрабатываю и сопровождаю Linux-инфраструктуру, автоматизирую повторяемые операции и создаю системные и backend-инструменты. Основные направления: ALT Linux и внутреннее устройство RPM, Kubernetes, контейнеризация, CI/CD, Python и C.} \newcommand{\ResumeSummaryText}{Студент 4 курса ВМК МГУ с практическим опытом эксплуатации Linux-серверов,
многоузлового K3s-кластера и автоматизации инфраструктуры. Разворачиваю
контейнерные сервисы, настраиваю CI/CD, мониторинг, TLS и DNS, автоматизирую
конфигурацию серверов с помощью Ansible. Разрабатываю системные инструменты
на Python и C; работал в командах BaseALT и Яндекса. Ищу стажировку в области
DevOps/Linux с задачами автоматизации, эксплуатации и диагностики.}
\newcommand{\ResumeExperienceSection}{Опыт} \newcommand{\ResumeExperienceSection}{Опыт}
\newcommand{\ResumeBaseAltDate}{по настоящее время} \newcommand{\ResumeBaseAltDate}{по настоящее время}
\newcommand{\ResumeBaseAltDescription}{Инструменты для Linux/RPM и системные исследования: механизмы зависимостей ALT Linux, производительность и совместимость RPM.} \newcommand{\ResumeBaseAltDescription}{%
\begin{itemize}
\item Исследовал механизм set:version в ALT RPM и разработал альтернативную реализацию сравнения кодированных множеств зависимостей.
\item Создал стенд для A/B-тестирования вариантов librpm на реальных сценариях APT: check, install, upgrade, autoremove и dist-upgrade.
\item Проверял совместимость дифференциальными тестами и санитайзерами, анализировал производительность с помощью hasher и perf.
\end{itemize}}
\newcommand{\ResumeYandexRole}{Яндекс — стажёр, команда DevTools автономного транспорта} \newcommand{\ResumeYandexRole}{Яндекс — стажёр, команда DevTools автономного транспорта}
\newcommand{\ResumeYandexDate}{осень 2025} \newcommand{\ResumeYandexDate}{осень 2025}
\newcommand{\ResumeYandexDescription}{Разработка в команде инструментов для разработчиков.} \newcommand{\ResumeYandexDescription}{%
\begin{itemize}
\item С помощью MultiThreading в python ускорил сборку внутренних компонент.
\item Добавление в CI блок-тестов для отказа от legacy-кода.
\item Рефактор golang кода для уменьшения общего размера прошивки роверов.
\end{itemize}}
\newcommand{\ResumeEducationSection}{Образование} \newcommand{\ResumeEducationSection}{Образование}
\newcommand{\ResumeUniversityName}{Московский государственный университет имени М. В. Ломоносова} \newcommand{\ResumeUniversityName}{Московский государственный университет имени М. В. Ломоносова}
\newcommand{\ResumeEducationDate}{обучаюсь} \newcommand{\ResumeEducationDate}{2023--2027}
\newcommand{\ResumeEducationDescription}{Факультет вычислительной математики и кибернетики, Computer Science.} \newcommand{\ResumeEducationDescription}{Факультет вычислительной математики и кибернетики, бакалавриат, направление «Прикладная математика и информатика» (ПМИ). Кафедра автоматизации систем вычислительных комплексов (АСВК).}
\newcommand{\ResumeSkillsSection}{Ключевые навыки} \newcommand{\ResumeSkillsSection}{Ключевые навыки}
\newcommand{\ResumeDevOpsSkillLabel}{DevOps и инфраструктура} \newcommand{\ResumeLinuxSkillLabel}{Linux и сети}
\newcommand{\ResumeDevOpsSkillText}{\ResumeDevOpsStack} \newcommand{\ResumeLinuxSkillText}{\ResumeLinuxStack}
\newcommand{\ResumeCiSkillLabel}{CI/CD} \newcommand{\ResumeContainersSkillLabel}{Контейнеры и оркестрация}
\newcommand{\ResumeCiSkillText}{\ResumeCiTools, мультиархитектурные сборки контейнеров, автоматизированное тестирование, упаковка и публикация} \newcommand{\ResumeContainersSkillText}{\ResumeContainersStack}
\newcommand{\ResumeCiSkillLabel}{Автоматизация и CI/CD}
\newcommand{\ResumeCiSkillText}{\ResumeCiTools, мультиархитектурные сборки контейнеров, тестирование, упаковка и публикация}
\newcommand{\ResumeObservabilitySkillLabel}{Наблюдаемость}
\newcommand{\ResumeObservabilitySkillText}{\ResumeObservabilityTools}
\newcommand{\ResumeDevelopmentSkillLabel}{Разработка} \newcommand{\ResumeDevelopmentSkillLabel}{Разработка}
\newcommand{\ResumeDevelopmentSkillText}{\ResumeDevelopmentStack} \newcommand{\ResumeDevelopmentSkillText}{\ResumeDevelopmentStack}
\newcommand{\ResumeDataSkillLabel}{Данные и качество} \newcommand{\ResumeDataSkillLabel}{Данные и качество}
\newcommand{\ResumeDataSkillText}{\ResumeDataStores; \ResumeQualityTools, санитайзеры, дифференциальное тестирование, бенчмаркинг} \newcommand{\ResumeDataSkillText}{\ResumeDataStores; \ResumeQualityTools, санитайзеры, дифференциальное тестирование, бенчмаркинг}
\newcommand{\ResumeLanguagesSkillLabel}{Языки}
\newcommand{\ResumeLanguagesSkillText}{английский B2}
\newcommand{\ResumeProjectsSection}{Избранные проекты} \newcommand{\ResumeProjectsSection}{Избранные проекты}
\newcommand{\ResumeAltRpmDescription}{исследование кодированных множеств символов и сравнения зависимостей RPM: C-реализации, хеширование, совместимость, проверки с санитайзерами и APT/RPM-бенчмарки.} \newcommand{\ResumeAltRpmDescription}{исследование кодированных множеств символов и сравнения зависимостей RPM в ALT Linux: C-реализации, хеширование, совместимость, проверки с санитайзерами и APT/RPM-бенчмарки.}
\newcommand{\ResumeNexusSyncDescription}{клиент-серверная система централизованного управления компьютерами и запуска разрешённых команд. FastAPI, SQLAlchemy, CLI, YAML-конфигурация, systemd, автономные сборки и CI.} \newcommand{\ResumeNexusSyncDescription}{клиент-серверная система централизованного управления компьютерами и запуска разрешённых команд. FastAPI, SQLAlchemy, CLI, YAML-конфигурация, systemd, автономные сборки и CI.}
\newcommand{\ResumeInfrastructureName}{"Домашний" кластер} \newcommand{\ResumeInfrastructureName}{"Домашний" кластер}
\newcommand{\ResumeInfrastructureDescription}{homelab, автоматизация Linux-серверов через Ansible, эксплуатация многоузловых K3s/RKE2, контейнерные развёртывания, ingress/ServiceLB, автоматизация TLS и удалённая диагностика.} \newcommand{\ResumeInfrastructureDescription}{Homelab: семи-узловой K3s-кластер — эксплуатация контейнерных сервисов,
\newcommand{\ResumePomodoroDescription}{браузерный таймер на React, TypeScript и Vite; тестируется и публикуется GitHub Actions как непривилегированный мультиархитектурный образ в GHCR.} настройка Traefik ingress и ServiceLB, TLS-сертификатов и DNS. Мониторинг через Prometheus, Grafana и Node Exporter, алертинг через Alertmanager.
Автоматизация конфигурации Linux-серверов с помощью Ansible; диагностика сетевых и системных неисправностей.}
\newcommand{\ResumeNetworkDiagramsDescription}{Python-инструмент для построения и визуализации сетевых топологий.} \newcommand{\ResumeNetworkDiagramsDescription}{Python-инструмент для построения и визуализации сетевых топологий.}
\newcommand{\ResumeVpnBotDescription}{контейнеризированный Python-бот для управления приглашениями и жизненным циклом пользователей через Marzban API.} \newcommand{\ResumeVpnBotDescription}{контейнеризированный Python-бот для управления приглашениями и жизненным циклом пользователей через Marzban API.}
\newcommand{\ResumePomodoroDescription}{браузерный таймер на React, TypeScript и Vite; тестируется и публикуется GitHub Actions как непривилегированный мультиархитектурный образ в GHCR.}