\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/selfie_face.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}
E-mail: & \href{mailto:Egor.Tensin@gmail.com}{Egor.Tensin@gmail.com} \\
Web: & \href{https://egor-tensin.github.io/}{https://egor-tensin.github.io/} \\
& \href{https://github.com/egor-tensin}{https://github.com/egor-tensin} \\
Tel.: & +7\,(911)\,982-06-81 \\
Address: & 3 Ushakovskaya Naberezhnaya, bldg. 2, apt. 409 \\
& Saint Petersburg, Russia, 197342 \\
\end{tabularx}%
\CvSmallSkip
\CvRule
\end{minipage}%
}
\CvSectionHeader{Experience}
\CvWorkplaceHeader{December 2020}{present}{Senior {\CXX} Engineer}{CloudLinux, Inc.}{www.cloudlinux.com}
\begin{CvWorkplaceDescription}
\textit{Work in progress\ldots}
\end{CvWorkplaceDescription}
\CvWorkplaceHeader{January 2020}{October 2020}{Senior {\CXX} Engineer}{Bercut Ltd.}{www.bercut.com}
\begin{CvWorkplaceDescription}
I was a member of a backend team responsible for developing key parts of a
billing system used by various telecom operators.
\begin{itemize}[noitemsep]
\item Cross-platform (Windows, Linux \& Solaris) development.
\item {\CXX} programming.
\item Python/{\CXX} interop using Boost.Python.
\item Some containerization work using Docker.
\end{itemize}
\end{CvWorkplaceDescription}
\CvWorkplaceHeader{September 2017}{July 2019}{Senior {\CXX} Engineer}{Flightradar24 AB}{www.flightradar24.com}
\begin{CvWorkplaceDescription}
I took part in the development and support of the backend part of the
Flightradar24 project.
I was responsible for how various parts of the backend received, processed and
stored third-party data in an efficient \& robust manner.
\begin{itemize}[noitemsep]
\item Native Linux development.
\item {\CXX} programming (inc. {\CXX}17 \& Boost).
\item Python programming.
\item Containerization and orchestration using Docker.
\item AWS (EC2, Lambda, DynamoDB, S3).
\end{itemize}
\end{CvWorkplaceDescription}
\CvWorkplaceHeader{September 2014}{August 2017}{Software Engineer}{Netwrix Corp.}{www.netwrix.com}
\begin{CvWorkplaceDescription}
I took part in the development of an enterprise-scale product as a member of a
core R\&D team.
I was responsible for developing various low-level components (among others):
\begin{enumerate}[noitemsep]
\item a "task scheduler" to provide means of asynchronous execution for
other components,
\item a modular RESTful API implementation.
\end{enumerate}
\begin{itemize}[noitemsep]
\item Native Microsoft Windows development (WinAPI, COM, ATL).
\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 developed and maintained a tool for revealing, analyzing and solving storage
system performance issues, specifically process \& thread synchronization
issues.
I also troubleshooted general performance issues within enterprise storage
systems, including profiling, benchmarking, etc.
\begin{itemize}[noitemsep]
\item Native Microsoft Windows \& Linux development.
\item Microsoft Windows \& Linux kernel module development.
\item {\CXX} programming (inc. {\CXX}11 \& Boost).
\item C \& x86(-64) assembly language programming.
\item Microsoft Windows kernel debugging.
\item Performance profiling.
\end{itemize}
\end{CvWorkplaceDescription}
\CvWorkplaceHeader{May 2012}{September 2013}{Software Engineer}{Lanit-Tercom, Inc.}{www.lanit-tercom.ru}
\begin{CvWorkplaceDescription}
I took part in a R\&D on the impact introduced to the performance of a storage
system by process \& thread synchronization issues.
A prototype of a tool for revealing, analyzing and solving specific storage
system performance issues was developed.
\begin{itemize}[noitemsep]
\item Native Microsoft Windows development.
\item Microsoft Windows kernel module development.
\item C \& x86(-64) assembly language programming.
\item Python programming.
\item Microsoft Windows kernel debugging.
\item x86(-64) architecture.
\item undocumented Microsoft Windows features.
\end{itemize}
\end{CvWorkplaceDescription}
\CvRule
\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}
\CvRule
\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}: Microsoft Windows, Linux
\item \textbf{IDEs}: Microsoft Visual Studio, CLion
\item \textbf{Cloud}: Docker, AWS
\item \textbf{Build systems}: CMake, GNU Make
\item \textbf{CI}: Jenkins
\item \textbf{Scripting}: CMD, GNU Bash, PowerShell
\item \textbf{Version Control}: Git, Apache Subversion, TFS, AccuRev
\item \textbf{Debugging}: GDB, WinDbg
\item \textbf{Performance}: perf, Xperf, Intel VTune Amplifier
\end{itemize}
\end{minipage}
\end{document}