make resume in multiple files
This commit is contained in:
@@ -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}
|
||||||
@@ -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}
|
||||||
@@ -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.}
|
||||||
@@ -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.}
|
||||||
Reference in New Issue
Block a user