\documentclass[11pt]{article}
% Basic setup
\usepackage{cmap}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
% Basic info
\newcommand\CvName{Egor Tensin}
\newcommand\CvEmail{Egor.Tensin@gmail.com}
% Page footer
\usepackage{fancyhdr}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
% \begin{comment}
\usepackage{verbatim}
% Sans serif by default
\renewcommand\familydefault{\sfdefault}
% Document margins
\usepackage[margin=2.5cm]{geometry}
% \includegraphics, used to include a picture of me
\usepackage{graphicx}
% Boxes
\usepackage{adjustbox}
\usepackage{calc}
\usepackage{tabularx}
% Colors
\usepackage[usenames,dvipsnames]{color}
\definecolor{CvRuleColor}{gray}{0.5}
\definecolor{CvWorkplaceHeaderColor}{gray}{0.97}
% URLs
\usepackage[pdfauthor={\CvName},
pdftitle={\CvName{} - CV},
colorlinks=true,
urlcolor=blue]{hyperref}
% Paragraphs
\usepackage{parskip}
\setlength\parindent{0cm}
\setlength\parskip{0cm}
% Lists
\usepackage{enumitem} % [noitemsep]
% Date formatting
\usepackage{datetime2}
\DTMsetdatestyle{iso}
% "C++", thanks to this guy: http://tex.stackexchange.com/a/4304/9088
\usepackage{relsize}
\newcommand\CXX{C\nolinebreak[4]\hspace{-.05em}\raisebox{.4ex}{\relsize{-3}{\textbf{++}}}}
% Whitespace
\newcommand\CvSmallSkipLength{0.5em}
\newcommand\CvBigSkipLength{1em}
\newcommand\CvSkip[1]{\vspace{#1}}
\newcommand\CvSmallSkip{\CvSkip{\CvSmallSkipLength}}
\newcommand\CvBigSkip{\CvSkip{\CvBigSkipLength}}
% Section headers ("Experience", "Education", etc.)
\newcommand\CvSectionHeader[1]{\CvBigSkip\textbf{#1}\CvBigSkip}
% Horizontal line/separator
\newcommand\CvRule{\begingroup\color{CvRuleColor}\hrule\endgroup}
% Workplace header
\newcommand\CvWorkplaceHeader[5]{\begingroup%
\CvRule\nopagebreak%
\fboxsep0pt%
\colorbox{CvWorkplaceHeaderColor}{%
\begin{minipage}{\linewidth-2\fboxsep}%
\CvSmallSkip%
#1 -- #2 \hfill \textit{#3} at #4 (\href{http://#5/}{#5})%
\CvSmallSkip%
\end{minipage}%
}%
\CvRule%
\endgroup%
}
% Workplace description
\newenvironment{CvWorkplaceDescription}{%
\begingroup\setlength\parskip{\CvSmallSkipLength}%
}{%
\CvSmallSkip\endgroup%
}
\pagestyle{empty}
\begin{document}
\newcommand\CvPictureWidth{3.5cm}
\adjustbox{valign=t}{%
\begin{minipage}{\CvPictureWidth}%
\includegraphics[width=\CvPictureWidth]{img/face2020_warm.jpg}
\end{minipage}%
}%
\hfill%
\adjustbox{valign=t}{%
\begin{minipage}{\linewidth-\CvPictureWidth-\CvBigSkipLength}%
{\bfseries\Large \CvName}
\CvBigSkip
\CvRule
\CvSmallSkip
\begin{tabularx}{\textwidth}{@{}lX}
Email: & \href{mailto:\CvEmail}{\CvEmail} \\
Web: & \href{https://egor-tensin.github.io/}{egor-tensin.github.io}\enspace{}\textopenbullet{}\enspace{}\href{https://github.com/egor-tensin}{github.com/egor-tensin} \\
Tel.: & \href{https://t.me/egor_tensin}{+7\,(911)\,982-06-81} \\
Location: & Montenegro \\
\end{tabularx}%
\CvSmallSkip
\CvRule
\end{minipage}%
}
\CvSectionHeader{Experience}
\CvWorkplaceHeader{December 2020}{present}{Senior {\CXX} Engineer}{CloudLinux, Inc.}{www.cloudlinux.com}
\begin{CvWorkplaceDescription}
I am a member of the \href{https://tuxcare.com/}{TuxCare} team.
It's a technology that allows live-patching userspace Linux processes without
restarting them (mainly to get rid of security vulnerabilities).
I am a key developer of \href{https://tuxcare.com/live-patching-services/databasecare/}{DBcare},
which extends the technology to cover mainstream database solutions.
\begin{itemize}[noitemsep]
\item C programming.
\item ELF file format.
\item Intricate Linux APIs.
\item x86-64 architecture.
\end{itemize}
\end{CvWorkplaceDescription}
\CvWorkplaceHeader{January 2020}{October 2020}{Senior {\CXX} Engineer}{Bercut Ltd.}{bercut.com}
\begin{CvWorkplaceDescription}
I was a member of the \href{https://bercut.com/products/in-voice/}{IN@Voice}
team.
IN@Voice is a billing system for telecom operators.
I was responsible for developing and maintaining key parts of the billing
logic.
\begin{itemize}[noitemsep]
\item Cross-platform (Windows, Linux \& Solaris) development.
\item {\CXX} programming.
\item Python/{\CXX} interop.
\end{itemize}
\end{CvWorkplaceDescription}
\CvWorkplaceHeader{September 2017}{July 2019}{Senior {\CXX} Engineer}{Flightradar24 AB}{www.flightradar24.com}
\begin{CvWorkplaceDescription}
Flightradar24 is an aircraft-tracking service.
I worked on the backend part, which was responsible for receiving, processing
and storing data from on-ground sources and satellites.
\begin{itemize}[noitemsep]
\item Native Linux development.
\item {\CXX} programming (inc. {\CXX}17 \& Boost).
\item Python programming.
\item Cloud: Docker \& AWS services.
\end{itemize}
\end{CvWorkplaceDescription}
\CvWorkplaceHeader{September 2014}{August 2017}{Software Engineer}{Netwrix Corp.}{www.netwrix.com}
\begin{CvWorkplaceDescription}
\href{https://www.netwrix.com/auditor.html}{Netwrix Auditor} is an IT
infrastructure security product.
It allows sysadmins to easily audit changes in AD domains, MS SQL Server
databases, file shares, etc.
I worked on the backend part, which collected and stored data; I was
responsible for a number of subsystems, including implementing an efficient and
modular RESTful API for our storage system.
\begin{itemize}[noitemsep]
\item Native Windows development (WinAPI, COM).
\item {\CXX} programming.
\item .NET programming using C\#.
\item Microsoft SQL Server \& related technologies (Reporting Services,
etc.).
\item XML \& related technologies (XSLT, XSD, etc.).
\end{itemize}
\end{CvWorkplaceDescription}
\CvWorkplaceHeader{April 2012}{May 2014}{Performance Engineer}{EMC Corp.}{russia.emc.com}
\begin{CvWorkplaceDescription}
I was a member of a internal performance team, responsible for revealing,
analyzing and solving storage system performance issues, with the focus on
process \& thread synchronization issues.
This included developing specialized tools, using profilers, benchmarking, etc.
\begin{itemize}[noitemsep]
\item Windows \& Linux kernel module development.
\item {\CXX} programming (inc. {\CXX}11 \& Boost).
\item C \& x86(-64) assembly language programming.
\item Performance profiling.
\item x86(-64) architecture.
\end{itemize}
\end{CvWorkplaceDescription}
\begin{comment}
% Wish I was a properly educated man :-(
\CvSectionHeader{Education}
\CvWorkplaceHeader{2009}{2013}{Bachelor of Computer Science}{SPbSU}{eng.spbu.ru}
\begin{CvWorkplaceDescription}
During my education, I've been focusing on the following topics:
\begin{itemize}[noitemsep]
\item x86(-64) architecture (including writing a term paper "Verification of
a x86-64 disassembler"),
\item x86(-64) microarchitecture (including working on my bachelor thesis
"Attacking AES in a cloud using CPU caches").
\end{itemize}
\end{CvWorkplaceDescription}
\end{comment}
\begin{minipage}[t]{.5\linewidth}
\CvSectionHeader{Programming Languages}
\begin{itemize}
\item C, x86(-64) assembly
\item \CXX\ (inc. {\CXX}17 \& Boost)
\item Python
\end{itemize}
\CvSectionHeader{Languages}
\begin{itemize}
\item Russian --- mother tongue.
\item English --- C1 (advanced).
\end{itemize}
\CvSectionHeader{Other Tools \& Technologies}
\begin{itemize}
\item LibreOffice, Microsoft Office
\item CygWin
\item \LaTeX
\end{itemize}
\end{minipage}%
\begin{minipage}[t]{.5\linewidth}
\CvSectionHeader{Development Tools \& Technologies}
\begin{itemize}
\item \textbf{Operating systems}: Linux, Windows
\item \textbf{IDEs}: Visual Studio, CLion
\item \textbf{Cloud}: Docker, AWS
\item \textbf{Build systems}: CMake, GNU Make
\item \textbf{CI}: GitHub Actions, Jenkins, Travis
\item \textbf{Scripting}: bash, PowerShell, cmd
\item \textbf{Version Control}: Git, Subversion, TFS
\item \textbf{Debugging}: GDB, WinDbg
\item \textbf{Performance}: perf, Xperf, Intel VTune Amplifier
\end{itemize}
\end{minipage}
\thispagestyle{fancy}
\rfoot{\color{CvRuleColor} Build: \today}
\end{document}