Compare commits

...
10 Commits
Author SHA1 Message Date
krosh 8a54ec4696 revert upload mechanism
Build resume PDFs / Build Russian and English resumes (push) Failing after 4m1s
2026-07-27 05:03:02 +03:00
krosh 09d7cd32a9 make resume in multiple files 2026-07-27 03:33:52 +03:00
krosh 2dfd0abe6d make resume in multiple files 2026-07-27 03:33:33 +03:00
krosh ea849df4ca Split resume PDF artifacts 2026-07-27 03:18:21 +03:00
krosh 62f9ced139 add github ci for resume.pdf 2026-07-27 02:37:39 +03:00
krosh 4e06308351 add en and ru resume 2026-07-27 00:52:51 +03:00
krosh 199dd3816f update readme 2026-07-26 23:50:27 +03:00
krosh fd878dd9d6 Revert "docs: update profile for current DevOps work"
This reverts commit 9e9cb01137.
2026-07-26 23:32:35 +03:00
krosh 9e9cb01137 docs: update profile for current DevOps work 2026-07-26 23:30:34 +03:00
kroshandGitHub 392d9430cf Add experience section to README
Added experience section with Yandex internship details.
2026-03-23 21:55:12 +03:00
9 changed files with 313 additions and 40 deletions
+51
View File
@@ -0,0 +1,51 @@
name: Build resume PDFs
on:
push:
paths:
- "resume/**/*.tex"
- ".github/workflows/build-resume.yml"
pull_request:
paths:
- "resume/**/*.tex"
- ".github/workflows/build-resume.yml"
workflow_dispatch:
permissions:
contents: read
concurrency:
group: resume-pdfs-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build Russian and English resumes
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Check out repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Compile PDFs with XeLaTeX
uses: xu-cheng/latex-action@6549dc21effb2730855a1281407ecfcececc6c1b # v4.1.0
with:
root_file: |
resume_ru.tex
resume_en.tex
working_directory: resume
latexmk_use_xelatex: true
texlive_version: 2026
os: debian
extra_system_packages: fonts-dejavu-core
- name: Upload PDF artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: resume-pdfs
path: |
resume/resume_ru.pdf
resume/resume_en.pdf
if-no-files-found: error
retention-days: 30
+1
View File
@@ -0,0 +1 @@
*.pdf
+45 -40
View File
@@ -1,48 +1,68 @@
# Hi there! 👋 I'm Dmitrii Gudov (kr0sh512) # Hi there! 👋 I'm Dmitrii Gudov (kr0sh512)
I'm a passionate developer and Computer Science student at [CMC MSU](https://cmc.msu.ru/). I enjoy creating projects that make everyday tasks simpler and learning new technologies to expand my skill set. Welcome to my GitHub, where you can explore my latest coding endeavors! I'm a DevOps-oriented developer and Computer Science student at [CMC MSU](https://cmc.msu.ru/). I build and operate Linux infrastructure, automate repeatable work, develop system and backend tools. My current focus is ALT Linux and RPM internals, Kubernetes, containers, CI/CD, and Python/C systems tooling.
--- ---
## 🚀 About Me ## 🚀 About Me
- 🎓 **Student at CMC MSU** - 🎓 **Computer Science student at CMC MSU**
- 💻 Interested in **System Programming and Bot Development** - 🐧 Interested in **DevOps, Linux infrastructure, system programming, and networking**
- 🌱 Currently exploring **Python, C++ and Shell Scripting** - 🛠️ Operating and troubleshooting multi-node infrastructure with **K3s/RKE2, Docker/OCI, Ansible, TLS automation and more**
- 🔬 Researching and optimizing **ALT Linux RPM `set:version` dependency processing**
- 📫 Reach me at **gudovdo@my.msu.ru** - 📫 Reach me at **gudovdo@my.msu.ru**
--- ---
## 💼 Experience
- **BaseALT** — Linux/RPM tooling and systems research — _Current_
- **Yandex Intern**, **DevTools Team, Autonomous Transport**_Fall 2025_
---
## 🔧 Skills ## 🔧 Skills
- **Languages**: Python, C++ - **Languages**: Python, C, C++, Shell, SQL
- **Frameworks/Tools**: Git, Linux, Docker - **Infrastructure & DevOps**: Linux, Docker/OCI, Kubernetes, K3s, RKE2, Helm, Ansible, Traefik, systemd, SSH
- **Database Management**: Postgres, MongoDB - **CI/CD**: GitHub Actions, GHCR, multi-architecture container builds, automated testing and packaging
- **Other**: Web Automation, Telegram Bot Development, Problem Solving - **Backend & Data**: FastAPI, SQLAlchemy, Pydantic, PostgreSQL, SQLite, MongoDB
- **Engineering Practices**: pytest, mypy, Black, sanitizers, differential testing, benchmarking, and reproducible build workflows
--- ---
## 🖥️ Projects ## 🖥️ Projects
### [ALT RPM Set Version Research](https://github.com/kr0sh512/alt-rpm-set-version)
Research into ALT Linux RPM's encoded symbol sets and dependency comparison. The project covers C implementation work, hashing, compatibility testing, sanitizer checks, and benchmarks against realistic RPM/APT workflows.
### [nexus-sync](https://github.com/kr0sh512/nexus-sync)
A client-server system for centrally managing computers and dispatching approved commands. Built with FastAPI and SQLAlchemy, with a CLI, YAML-configured clients, systemd units, standalone builds, tests, type checks, and CI packaging.
### Personal Infrastructure Automation
Ansible playbooks for automating Linux servers and repeatable administration. My broader infrastructure work includes multi-node K3s clusters, container deployment, ingress and ServiceLB networking, TLS lifecycle automation, and remote troubleshooting.
### [Pomodoro](https://github.com/kr0sh512/pomodoro)
A customizable browser-based Pomodoro timer and clock built with React, TypeScript, and Vite. GitHub Actions tests and packages it as an unprivileged multi-architecture container published to GHCR.
### [Network Diagrams Tool](https://github.com/kr0sh512/network-diagrams-tool)
A Python tool for building and visualizing network topologies, developed for networking and infrastructure coursework at CMC MSU.
### [Marzban Telegram VPN Bot](https://github.com/kr0sh512/profhome-vpn-bot)
A containerized Python Telegram bot that integrates with the Marzban API, manages one-time invitations and user lifecycle, and persists local state in SQLite.
### [Syncing Spotify with Telegram Bio](https://github.com/kr0sh512/spotify-to-tg-bio) ### [Syncing Spotify with Telegram Bio](https://github.com/kr0sh512/spotify-to-tg-bio)
**Description**: A script that syncs the playing track from spotify in the background with the Bio column in the user's telegram.
### [Random Coffe Bot](https://github.com/kr0sh512/rc-tgbot) A script that syncs the playing track from spotify in the background with the Bio column in the user's telegram.
**Description**: This Telegram bot was created for the cmc msu student union for a speed dating event.
### [Telegram Bot Schedule](https://github.com/kr0sh512/Telegram-bot-schedule)
**Description**: A Telegram bot that sends reminders about events a set time before they start.
### [Calendar of Life](https://github.com/kr0sh512/calendar-of-life)
**Description**: A PHP-based reminder tool to encourage users to make the most of their time.
### [Sudoku Solver](https://github.com/kr0sh512/sudoku-solver)
**Description**: A command-line tool to solve Sudoku puzzles using C++.
### [SimpleCountdownTimer](https://github.com/kr0sh512/SimpleCountdownTimer)
**Description**: A web timer with cookie support to retain settings across sessions.
--- ---
<!-- <!--
## 📈 GitHub Stats ## 📈 GitHub Stats
@@ -52,6 +72,7 @@ I'm a passionate developer and Computer Science student at [CMC MSU](https://cmc
--- ---
--> -->
## 🌐 Connect with Me ## 🌐 Connect with Me
[![Telegram](https://img.shields.io/badge/Telegram-Kr0sH_512-blue?style=flat&logo=telegram)](https://t.me/kr0sh_512) [![Telegram](https://img.shields.io/badge/Telegram-Kr0sH_512-blue?style=flat&logo=telegram)](https://t.me/kr0sh_512)
@@ -59,20 +80,4 @@ I'm a passionate developer and Computer Science student at [CMC MSU](https://cmc
--- ---
Thanks for visiting my profile! Feel free to reach out for collaboration or to discuss technology. Thanks for visiting my profile! Feel free to reach out for collaboration, Linux infrastructure, systems programming, or DevOps projects.
<!--
**kr0sh512/kr0sh512** is a ✨ _special_ ✨ repository because its `README.md` (this file) appears on your GitHub profile.
Here are some ideas to get you started:
- 🔭 Im currently working on ...
- 🌱 Im currently learning ...
- 👯 Im looking to collaborate on ...
- 🤔 Im looking for help with ...
- 💬 Ask me about ...
- 📫 How to reach me: ...
- 😄 Pronouns: ...
- ⚡ Fun fact: ...
-->
+25
View File
@@ -0,0 +1,25 @@
% Shared contact details, links, project names, and technology lists.
% Language-specific prose belongs in translations/*.tex.
\newcommand{\ResumeEmail}{gudovdo@my.msu.ru}
\newcommand{\ResumeGitHubHandle}{kr0sh512}
\newcommand{\ResumeTelegramHandle}{kr0sh\_512}
\newcommand{\ResumeGitHubUrl}{https://github.com/kr0sh512}
\newcommand{\ResumeTelegramUrl}{https://t.me/kr0sh_512}
\newcommand{\ResumeDevOpsStack}{Linux, Docker/OCI, Kubernetes, K3s, RKE2, Helm, Ansible, Traefik, systemd, SSH, Let's Encrypt}
\newcommand{\ResumeCiTools}{GitHub Actions, GHCR}
\newcommand{\ResumeDevelopmentStack}{Python, C, C++, TypeScript, Shell, SQL; FastAPI, SQLAlchemy, Pydantic, React, Vite}
\newcommand{\ResumeDataStores}{PostgreSQL, SQLite, MongoDB}
\newcommand{\ResumeQualityTools}{pytest, mypy, Black}
\newcommand{\ResumeAltRpmName}{ALT RPM Set Version Research}
\newcommand{\ResumeAltRpmUrl}{https://github.com/kr0sh512/alt-rpm-set-version}
\newcommand{\ResumeNexusSyncName}{nexus-sync}
\newcommand{\ResumeNexusSyncUrl}{https://github.com/kr0sh512/nexus-sync}
\newcommand{\ResumePomodoroName}{Pomodoro}
\newcommand{\ResumePomodoroUrl}{https://github.com/kr0sh512/pomodoro}
\newcommand{\ResumeNetworkDiagramsName}{Network Diagrams Tool}
\newcommand{\ResumeNetworkDiagramsUrl}{https://github.com/kr0sh512/network-diagrams-tool}
\newcommand{\ResumeVpnBotName}{Marzban Telegram VPN Bot}
\newcommand{\ResumeVpnBotUrl}{https://github.com/kr0sh512/profhome-vpn-bot}
+99
View File
@@ -0,0 +1,99 @@
% Shared resume layout. Compile resume_ru.tex or resume_en.tex instead.
\documentclass[10pt,a4paper]{article}
\usepackage[margin=1.35cm]{geometry}
\usepackage{fontspec}
\setmainfont{DejaVu Sans}
\usepackage[english,russian]{babel}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{enumitem}
\usepackage{titlesec}
\usepackage{tabularx}
\usepackage{microtype}
\input{resume-data.tex}
\input{translations/\ResumeLanguage.tex}
\pagestyle{empty}
\setlength{\parindent}{0pt}
\setlength{\parskip}{0pt}
\setlength{\emergencystretch}{2em}
\linespread{1.04}
\setlist[itemize]{
leftmargin=1.35em,
itemsep=2pt,
topsep=4pt,
partopsep=0pt,
parsep=0pt
}
\definecolor{accent}{HTML}{1F4E79}
\definecolor{muted}{HTML}{555555}
\hypersetup{
colorlinks=true,
urlcolor=accent,
linkcolor=accent,
pdfauthor={\ResumeName},
pdftitle={\ResumePdfTitle}
}
\titleformat{\section}
{\large\bfseries\color{accent}}
{}{0pt}{}
[\color{accent}\titlerule]
\titlespacing*{\section}{0pt}{10pt}{5pt}
\newcommand{\entry}[3]{%
\noindent\begin{tabularx}{\textwidth}{@{}Xr@{}}
\textbf{#1} & \textcolor{muted}{#2}
\end{tabularx}\par
\vspace{1pt}
#3\par\vspace{3pt}
}
\newcommand{\project}[2]{\textbf{#1} — #2\par\vspace{3pt}}
\begin{document}
\selectlanguage{\ResumeDocumentLanguage}
\raggedright
\begin{minipage}{\textwidth}
{\LARGE\bfseries \ResumeName}\par
\vspace{3pt}
{\large\color{accent} \ResumeHeadline}\par
\vspace{6pt}
\href{mailto:\ResumeEmail}{\ResumeEmail}
\quad·\quad
\href{\ResumeGitHubUrl}{github.com/\ResumeGitHubHandle}
\quad·\quad
\href{\ResumeTelegramUrl}{t.me/\ResumeTelegramHandle}
\end{minipage}\par
\section{\ResumeSummarySection}
\ResumeSummaryText
\section{\ResumeExperienceSection}
\entry{BaseALT}{\ResumeBaseAltDate}{\ResumeBaseAltDescription}
\entry{\ResumeYandexRole}{\ResumeYandexDate}{\ResumeYandexDescription}
\section{\ResumeEducationSection}
\entry{\ResumeUniversityName}{\ResumeEducationDate}{\ResumeEducationDescription}
\section{\ResumeSkillsSection}
\begin{itemize}
\item \textbf{\ResumeDevOpsSkillLabel:} \ResumeDevOpsSkillText.
\item \textbf{\ResumeCiSkillLabel:} \ResumeCiSkillText.
\item \textbf{\ResumeDevelopmentSkillLabel:} \ResumeDevelopmentSkillText.
\item \textbf{\ResumeDataSkillLabel:} \ResumeDataSkillText.
\end{itemize}
\section{\ResumeProjectsSection}
\project{\href{\ResumeAltRpmUrl}{\ResumeAltRpmName}}{\ResumeAltRpmDescription}
\project{\href{\ResumeNexusSyncUrl}{\ResumeNexusSyncName}}{\ResumeNexusSyncDescription}
\project{\ResumeInfrastructureName}{\ResumeInfrastructureDescription}
\project{\href{\ResumePomodoroUrl}{\ResumePomodoroName}}{\ResumePomodoroDescription}
\project{\href{\ResumeNetworkDiagramsUrl}{\ResumeNetworkDiagramsName}}{\ResumeNetworkDiagramsDescription}
\project{\href{\ResumeVpnBotUrl}{\ResumeVpnBotName}}{\ResumeVpnBotDescription}
\end{document}
+6
View File
@@ -0,0 +1,6 @@
% English resume build entry point.
\def\ResumeLanguage{en}
\makeatletter
\def\input@path{{resume/}}
\makeatother
\input{resume.tex}
+6
View File
@@ -0,0 +1,6 @@
% Russian resume build entry point.
\def\ResumeLanguage{ru}
\makeatletter
\def\input@path{{resume/}}
\makeatother
\input{resume.tex}
+40
View File
@@ -0,0 +1,40 @@
% English strings for resume.tex.
\newcommand{\ResumeDocumentLanguage}{english}
\newcommand{\ResumeName}{Dmitrii Gudov}
\newcommand{\ResumePdfTitle}{Resume — Dmitrii Gudov}
\newcommand{\ResumeHeadline}{DevOps / Linux Engineer · Systems and Backend Developer}
\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{\ResumeExperienceSection}{Experience}
\newcommand{\ResumeBaseAltDate}{Present}
\newcommand{\ResumeBaseAltDescription}{Linux/RPM tooling and systems research, including ALT Linux dependency mechanisms, RPM performance, and compatibility.}
\newcommand{\ResumeYandexRole}{Yandex — DevTools Intern, Autonomous Transport}
\newcommand{\ResumeYandexDate}{Fall 2025}
\newcommand{\ResumeYandexDescription}{Software development in a developer tooling team.}
\newcommand{\ResumeEducationSection}{Education}
\newcommand{\ResumeUniversityName}{Lomonosov Moscow State University}
\newcommand{\ResumeEducationDate}{Current}
\newcommand{\ResumeEducationDescription}{Faculty of Computational Mathematics and Cybernetics, Computer Science.}
\newcommand{\ResumeSkillsSection}{Core Skills}
\newcommand{\ResumeDevOpsSkillLabel}{DevOps and infrastructure}
\newcommand{\ResumeDevOpsSkillText}{\ResumeDevOpsStack}
\newcommand{\ResumeCiSkillLabel}{CI/CD}
\newcommand{\ResumeCiSkillText}{\ResumeCiTools, multi-architecture container builds, automated testing, packaging, and publishing}
\newcommand{\ResumeDevelopmentSkillLabel}{Development}
\newcommand{\ResumeDevelopmentSkillText}{\ResumeDevelopmentStack}
\newcommand{\ResumeDataSkillLabel}{Data and quality}
\newcommand{\ResumeDataSkillText}{\ResumeDataStores; \ResumeQualityTools, sanitizers, differential testing, benchmarking}
\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{\ResumeNexusSyncDescription}{a client-server system for centralized computer management and approved command dispatch. FastAPI, SQLAlchemy, CLI, YAML configuration, systemd, standalone builds, and CI.}
\newcommand{\ResumeInfrastructureName}{Personal infrastructure}
\newcommand{\ResumeInfrastructureDescription}{Linux server automation with Ansible, multi-node K3s/RKE2 operations, container deployment, ingress and ServiceLB networking, TLS automation, and remote troubleshooting.}
\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{\ResumeVpnBotDescription}{a containerized Python bot for managing invitations and user lifecycle through the Marzban API.}
+40
View File
@@ -0,0 +1,40 @@
% Russian strings for resume.tex.
\newcommand{\ResumeDocumentLanguage}{russian}
\newcommand{\ResumeName}{Дмитрий Гудов}
\newcommand{\ResumePdfTitle}{Резюме — Дмитрий Гудов}
\newcommand{\ResumeHeadline}{DevOps / Linux-инженер · системный и backend-разработчик}
\newcommand{\ResumeSummarySection}{Профессиональный профиль}
\newcommand{\ResumeSummaryText}{DevOps-ориентированный разработчик и студент ВМК МГУ. Разрабатываю и сопровождаю Linux-инфраструктуру, автоматизирую повторяемые операции и создаю системные и backend-инструменты. Основные направления: ALT Linux и внутреннее устройство RPM, Kubernetes, контейнеризация, CI/CD, Python и C.}
\newcommand{\ResumeExperienceSection}{Опыт}
\newcommand{\ResumeBaseAltDate}{по настоящее время}
\newcommand{\ResumeBaseAltDescription}{Инструменты для Linux/RPM и системные исследования: механизмы зависимостей ALT Linux, производительность и совместимость RPM.}
\newcommand{\ResumeYandexRole}{Яндекс — стажёр, команда DevTools автономного транспорта}
\newcommand{\ResumeYandexDate}{осень 2025}
\newcommand{\ResumeYandexDescription}{Разработка в команде инструментов для разработчиков.}
\newcommand{\ResumeEducationSection}{Образование}
\newcommand{\ResumeUniversityName}{Московский государственный университет имени М. В. Ломоносова}
\newcommand{\ResumeEducationDate}{обучаюсь}
\newcommand{\ResumeEducationDescription}{Факультет вычислительной математики и кибернетики, Computer Science.}
\newcommand{\ResumeSkillsSection}{Ключевые навыки}
\newcommand{\ResumeDevOpsSkillLabel}{DevOps и инфраструктура}
\newcommand{\ResumeDevOpsSkillText}{\ResumeDevOpsStack}
\newcommand{\ResumeCiSkillLabel}{CI/CD}
\newcommand{\ResumeCiSkillText}{\ResumeCiTools, мультиархитектурные сборки контейнеров, автоматизированное тестирование, упаковка и публикация}
\newcommand{\ResumeDevelopmentSkillLabel}{Разработка}
\newcommand{\ResumeDevelopmentSkillText}{\ResumeDevelopmentStack}
\newcommand{\ResumeDataSkillLabel}{Данные и качество}
\newcommand{\ResumeDataSkillText}{\ResumeDataStores; \ResumeQualityTools, санитайзеры, дифференциальное тестирование, бенчмаркинг}
\newcommand{\ResumeProjectsSection}{Избранные проекты}
\newcommand{\ResumeAltRpmDescription}{исследование кодированных множеств символов и сравнения зависимостей RPM: C-реализации, хеширование, совместимость, проверки с санитайзерами и APT/RPM-бенчмарки.}
\newcommand{\ResumeNexusSyncDescription}{клиент-серверная система централизованного управления компьютерами и запуска разрешённых команд. FastAPI, SQLAlchemy, CLI, YAML-конфигурация, systemd, автономные сборки и CI.}
\newcommand{\ResumeInfrastructureName}{Персональная инфраструктура}
\newcommand{\ResumeInfrastructureDescription}{автоматизация Linux-серверов через Ansible, эксплуатация многоузловых K3s/RKE2, контейнерные развёртывания, ingress/ServiceLB, автоматизация TLS и удалённая диагностика.}
\newcommand{\ResumePomodoroDescription}{браузерный таймер на React, TypeScript и Vite; тестируется и публикуется GitHub Actions как непривилегированный мультиархитектурный образ в GHCR.}
\newcommand{\ResumeNetworkDiagramsDescription}{Python-инструмент для построения и визуализации сетевых топологий.}
\newcommand{\ResumeVpnBotDescription}{контейнеризированный Python-бот для управления приглашениями и жизненным циклом пользователей через Marzban API.}