\documentclass[11pt]{article}

% Basic setup
\usepackage{cmap}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}

% \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[colorlinks=true,urlcolor=blue]{hyperref}

% Paragraphs
\usepackage{parskip}
\setlength\parindent{0cm}
\setlength\parskip{0cm}

% Lists
\usepackage{enumitem} % [noitemsep]

% "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}

\adjustbox{valign=t}{%
  \begin{minipage}{3.5cm}%
    \includegraphics[width=3.5cm]{img/face2020_warm.jpg}
  \end{minipage}%
}%
\hfill%
\adjustbox{valign=t}{%
  \begin{minipage}{\linewidth-3.5cm-\CvBigSkipLength}%
{\bfseries\large Egor Tensin}\\*
{\color{CvRuleColor} Last updated on: \today}
    \CvBigSkip
    \CvRule
    \CvSmallSkip
    \begin{tabularx}{\textwidth}{@{}lX}
Email: & \href{mailto:Egor.Tensin@gmail.com}{Egor.Tensin@gmail.com} \\
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.: & +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}

\end{document}
