diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 845003f..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "prometheusCV"] - path = prometheusCV - url = https://github.com/chrisby/prometheusCV.git diff --git a/education.tex b/education.tex new file mode 100644 index 0000000..56e626e --- /dev/null +++ b/education.tex @@ -0,0 +1,9 @@ +\datedlocatedsubsection{Sep 2020 -- Jul 2024} +{University of Manchester, UK} +{\textbf{M.Eng.} Computer Science} +{\textbf{First-Class} Honours} + +\datedlocatedsubsection{Sep 2014 -- Jun 2020} +{Varvakeio Public Model High School, Greece} +{High School Diploma} +{\textbf{\nth{12} Grade Average:} 96\%} diff --git a/languages.tex b/languages.tex new file mode 100644 index 0000000..912873a --- /dev/null +++ b/languages.tex @@ -0,0 +1,5 @@ +\begin{itemize} + \item Native: Greek, Serbocroatian + \item Fluent/C2: English + \item Beginner/B1: German +\end{itemize} diff --git a/main.tex b/main.tex index 0fed090..151db26 100644 --- a/main.tex +++ b/main.tex @@ -1,4 +1,4 @@ -\documentclass[]{prometheus_cv} +\documentclass{template} \usepackage[a4paper, total={5.3in, 10in}, top=2cm]{geometry} \usepackage{xcolor} @@ -19,6 +19,7 @@ ]{hyperref} \usepackage{fontspec} \usepackage{fancyhdr} +\usepackage{bookmark} \setmainfont[ BoldFont=Cormorant Garamond Bold, @@ -39,148 +40,18 @@ \pagestyle{fancy} \centering - -\begin{huge} - Nikolaos Karaolidis -\end{huge} - -\begin{footnotesize} - \begin{tiny}\faMobile*\end{tiny}~\href{tel:+447947145598}{+44 7947145598} - \quad - %\begin{tiny}\faMobile*\end{tiny}~\href{tel:+306979252518}{+30 6979252518} - %\quad - \begin{tiny}\faHome\end{tiny}~\href{www.karaolidis.com}{karaolidis.com} - \quad - \begin{tiny}\faEnvelope\end{tiny}~\href{mailto:nick@karaolidis.com}{nick@karaolidis.com} - \quad - \begin{tiny}\faLinkedinIn\end{tiny}~\href{https://www.linkedin.com/in/nikolaos-karaolidis/}{nikolaos-karaolidis} - \quad - \begin{tiny}\faGitlab\end{tiny}~\href{https://git.karaolidis.com/karaolidis}{karaolidis} - \quad - \begin{tiny}\faGithub\end{tiny}~\href{https://github.com/karaolidis}{karaolidis} - %\quad - %\begin{tiny}\faGitlab\end{tiny}~\href{https://gitlab.cs.man.ac.uk/k11980nk}{k11980} -\end{footnotesize} +\input{title.tex} \section{Education} - -\datedsubsection{Sep 2020 -- Jul 2024} -{University of Manchester, UK} -{\textbf{M.Eng.} in Computer Science} -{\textbf{First-Class} Honours} - -\datedsubsection{Sep 2014 -- Jun 2020} -{Varvakeio Public Model High School, Greece} -{High School Diploma} -{\textbf{\nth{12} Grade Average:} 96\%} +\input{education.tex} \section{Work Experience} - -\datedsubsection{Jun 2023 - Sep 2023} -{} -{WebHotelier | primalRES -- Athens, Greece -- Software Engineering Intern} -{ - With 9000+ customers in 38 countries, WebHotelier | primalRES stands as the leading travel tech group in Greece and one of the giants in Europe. - \begin{itemize} - \item Spearheaded a complete overhaul of the company's \textbf{Grafana} dashboards, slashing the time-to-load by approximately 80\% while also increasing the number of metrics shown. - \item Collaborated directly with the CTO to secure a year-long contract with \textbf{ClickHouse Cloud} and \textbf{AWS}. - \item Migrated the entire metrics stack from \textbf{InfluxDB} to \textbf{ClickHouse}. This shift amped up performance by over 50\% without inflating operational costs. - \item Engineered an open-source \textbf{Telegraf} ClickHouse plugin optimized for Terabyte-scale data outputs, outperforming the in-built plugin in terms of efficiency. - \item Deployed Telegraf across 12 \textbf{Amazon EC2} instances, a move which unveiled and subsequently led to rectifying several performance bottlenecks. - \item Modernized the logging approach by transitioning to \textbf{ClickHouse}, thereby ending the thread-related challenges of the erstwhile file-based system. - \item Teamed up with fellow developers to incorporate \textbf{DataDog} APM into \textbf{Java} applications, shedding light on intricate application operations and pinpointing areas of enhancement. - \end{itemize} -} - -\datedsubsection{Jun 2022 - Aug 2022} -{} -{Softwire -- Manchester, UK -- Software Engineering Intern} -{ - Working with some of the UK's leading brands, Softwire designs tailored software and delivers innovative digital engineering expertise. - \begin{itemize} - \item Co-developed a web app using \textbf{React Native}, \textbf{Typescript}, \textbf{AWS Lambda}, and \textbf{AWS DynamoDB} in a 6-person team. - \item Participated in daily stand-ups, retrospectives, sprint planning, and review meetings. - \item Authored clean and maintainable code which was tested using unit, integration, and end-to-end testing. - \end{itemize} -} - -\datedsubsection{Jul 2019} -{} -{InterSearch Worldwide -- Dubai, UAE -- Intern} -{ - Ranked among the 30 largest executive search firms in the world, InterSearch Worldwide has 90 offices in 50 different countries. - \begin{itemize} - \item Developed a \textbf{Python CLI Tool} to automate Candidate CV and Financial Documentation Entry, extracting information from .pdf, .doc, and .docx CVs to a \textbf{FileFinder} database. - \item Incorporated \textbf{XML parsing} techniques for data extraction from Microsoft Word documents. - \item Employed \textbf{Optical Character Recognition with OpenCV} to interpret non-editable PDFs. - \item Applied \textbf{Natural Language Processing using NLTK} to categorize text tokens such as names, addresses, and skills. - \item Navigated database interactions using \textbf{PyAutoGUI}, a workaround due to limited direct database access. - \item Refined the E-mail spam filter to improve internal communications. - \end{itemize} -} +\input{work.tex} \section{Projects} - -\datedsubsectionnarrow{Ongoing} -{} -{Personal Homelab} -{ - Adapted an old PC into a \textbf{Linux Server} for 40+ applications. Mainly used as a way to learn the latest technologies, practice new skills, and as a host for personal projects. - \begin{itemize} - \item \textbf{Arch Linux} as the base OS with \textbf{MergerFS} and \textbf{SnapRAID} as a storage and backup solution. - \item \textbf{Docker}, \textbf{Docker Compose}, and \textbf{Portainer} as a container engine and management system. - \item \textbf{Cloudflare Argo Tunnel}, \textbf{Nginx}, and \textbf{Let's Encrypt} for hosting, proxying, and SSL certificate automation. - \item \textbf{Grafana}, \textbf{InfluxDB}, and \textbf{Telegraf} for constant system monitoring, stats visualization, and email alerts. - \item \textbf{DevOps Stack} including a self-hosted \textbf{GitLab} instance and \textbf{VSCode server}. - \item Public and private \textbf{Wireguard} instances and a \textbf{Tor} relay for remote management and privacy. - \item Full-stack \textbf{media management server} including indexing, file downloading, metadata editing, and a personal streaming service. - \item Much more, including a \textbf{blog}, a \textbf{private cloud} service for family/friends, and a URL shortener. - \end{itemize} -} - -\datedsubsectionnarrow{Ongoing} -{} -{QRust} -{ - An \textbf{algorithmic trading library} written in \textbf{Rust}, designed to leverage cutting-edge technologies for financial analysis and trading. Short for ``Quantitative Rust''. - \begin{itemize} - \item Utilizes a compartmentalized architecture that mirrors the flexibility and scalability of \textbf{microservices}, facilitating robust and isolated development of individual components. - \item Integrates with the Alpaca \textbf{REST API} and \textbf{WebSockets} for real-time and historical market data acquisition. - \item Employs \textbf{ClickHouse} for efficient, fully-automated, high-speed storage and querying of trading data. - \item Conducts \textbf{sentiment analysis} on financial headlines using a custom model based on \textbf{FINBERT}, to gauge market sentiment and inform trading decisions. - \end{itemize} -} - -\datedsubsectionnarrow{Sep 2022 - Apr 2023} -{} -{Trailblazer} -{ - Third Year University Project. Collaborated with a research group from Lancaster University to develop an \textbf{OS performance evaluation platform}. Built using Go and Python. A paper was later submitted to the International Conference on Architectural Support for Programming Languages and Operating Systems \textbf{(ASPLOS) 2024}. - \begin{itemize} - \item Designed experiments to benchmark performance of network-based applications such as \textbf{Apache} and \textbf{Caddy}. - \item Implemented multiple-architecture support using the \textbf{QEMU} virtual machine emulator, focusing on \textbf{x86-64} and \textbf{RISC-V}. - \item Conducted testing and analysis to derive a memory-optimized \textbf{Linux} kernel configuration. - \item Performed maintenance and bug fixes on the \textbf{Go} codebase and reduced experiment runtime using \textbf{RAM-based filesystems}. - \end{itemize} -} - -\datedsubsectionnarrow{Sep 2020 - Jun 2021} -{} -{EazyShop} -{ - First Year University Project. Worked in a 6-person team to implement a \textbf{full-stack shopping list application}. Built using Python, Flask, HTML, Bootstrap, and MySQL. - \begin{itemize} - \item Configured and hosted a shared \textbf{MySQL} database using \textbf{Docker} for portability. - \item Implemented \textbf{web scrapers} using \textbf{Python} for the 6 largest UK grocery store chains. Used to extract, parse, and import stock, pricing, and descriptions from all available products. - \item Integrated the \textbf{MySQL} back-end with the \textbf{Flask} front-end and deployed the app using \textbf{Docker Compose}. - \end{itemize} -} +\input{projects.tex} \section{Languages} -\begin{itemize} - \item Native: Greek, Serbocroatian - \item Fluent/C2: English - \item Beginner/B1: German -\end{itemize} +\input{languages.tex} \end{document} diff --git a/projects.tex b/projects.tex new file mode 100644 index 0000000..fe8ef2a --- /dev/null +++ b/projects.tex @@ -0,0 +1,54 @@ +\datedsubsection{Ongoing} +{Personal Homelab} +{% + Adapted an old PC into a \textbf{Linux Server} for 40+ applications. Serves as a valuable platform for refining skills, learning the latest technologies, while also hosting other personal projects. + % + \begin{itemize} + \item \textbf{Arch Linux} as the base OS with \textbf{MergerFS} and \textbf{SnapRAID} as a storage and backup solution. + \item \textbf{Docker}, \textbf{Docker Compose}, and \textbf{Portainer} as a container engine and management system. + \item \textbf{Cloudflare Argo Tunnel}, \textbf{Nginx}, and \textbf{Let's Encrypt} for hosting, proxying, and SSL certificate automation. + \item \textbf{Grafana}, \textbf{InfluxDB}, and \textbf{Telegraf} for constant system monitoring, stats visualization, and email alerts. + \item \textbf{DevOps Stack} including a self-hosted \textbf{GitLab} instance and \textbf{VSCode server}. + \item Public and private \textbf{Wireguard} instances and a \textbf{Tor} relay for remote management and privacy. + \item Full-stack \textbf{media management server} including indexing, file downloading, metadata editing, and a personal streaming service. + \item Much more, including a \textbf{blog}, a \textbf{private cloud} service for family/friends, and a URL shortener. + \end{itemize} +} + +\datedsubsection{Ongoing} +{Qrust} +{% + An \textbf{algorithmic trading library} written in \textbf{Rust}, leveraging cutting-edge technologies for financial analysis and trading. Short for ``Quantitative Rust''. + % + \begin{itemize} + \item Uses a compartmentalized, \textbf{microservice}-like architecture, enabling flexible and scalable development of components in a robust and isolated manner. + \item Integrates with the Alpaca \textbf{REST API} and \textbf{WebSockets} for real-time and historical market data acquisition. + \item Employs \textbf{ClickHouse} for efficient, fully-automated, high-speed storage and querying of trading data. + \item Conducts \textbf{sentiment analysis} on financial headlines using a custom model based on \textbf{FINBERT}, to gauge market sentiment and inform trading decisions. + \end{itemize} +} + +\datedsubsection{Sep 2022 - Apr 2023} +{Trailblazer} +{% + Third Year University Project. Collaborated with a research group from Lancaster University to develop an \textbf{OS performance evaluation platform}. Built using Go and Python. A paper was later submitted to the International Conference on Architectural Support for Programming Languages and Operating Systems \textbf{(ASPLOS) 2024}. + % + \begin{itemize} + \item Designed experiments to benchmark performance of network-based applications such as \textbf{Apache} and \textbf{Caddy}. + \item Implemented multiple-architecture support using the \textbf{QEMU} virtual machine emulator, focusing on \textbf{x86-64} and \textbf{RISC-V}. + \item Conducted testing and analysis to derive a memory-optimized \textbf{Linux} kernel configuration. + \item Performed maintenance and bug fixes on the \textbf{Go} codebase and reduced experiment runtime using \textbf{RAM-based filesystems}. + \end{itemize} +} + +\datedsubsection{Sep 2020 - Jun 2021} +{EazyShop} +{% + First Year University Project. Worked in a 6-person team to implement a \textbf{full-stack shopping list application}. Built using Python, Flask, HTML, Bootstrap, and MySQL. + % + \begin{itemize} + \item Configured and hosted a shared \textbf{MySQL} database using \textbf{Docker} for portability. + \item Implemented \textbf{web scrapers} using \textbf{Python} for the 6 largest UK grocery store chains. Used to extract, parse, and import stock, pricing, and descriptions from all available products. + \item Integrated the \textbf{MySQL} back-end with the \textbf{Flask} front-end and deployed the app using \textbf{Docker Compose}. + \end{itemize} +} diff --git a/prometheusCV b/prometheusCV deleted file mode 160000 index a7ba18d..0000000 --- a/prometheusCV +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a7ba18d5fa57b3eb09fd5601d76b88c06fffd6af diff --git a/prometheus_cv.cls b/prometheus_cv.cls deleted file mode 120000 index 543caeb..0000000 --- a/prometheus_cv.cls +++ /dev/null @@ -1 +0,0 @@ -prometheusCV/prometheus_cv.cls \ No newline at end of file diff --git a/template.cls b/template.cls new file mode 100644 index 0000000..95e4f0e --- /dev/null +++ b/template.cls @@ -0,0 +1,42 @@ +\LoadClass{article} + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{template} + +\RequirePackage{titlesec} + +\titleformat{\section} +{\large\scshape\raggedright} +{}{0em} +{} +[\titlerule] + +\titleformat{\subsection} +{\raggedright} +{}{0em} +{} +\titlespacing*{\subsection}{0pt}{3.5ex plus 1ex minus .2ex}{-2.5ex} + +\newcommand{\datedlocatedsubsection}[4]{% + \subsection[#2]{#3 \hfill \small{\textlf{\scshape{#2}}}}% + \begin{minipage}{5cm} + \vspace*{-.7ex}\hspace*{-3cm}\footnotesize #1 + \end{minipage} + \raggedright + + \begin{small} + #4 + \end{small} +} + +\newcommand{\datedsubsection}[3]{% + \subsection[#2]{#2}% + \begin{minipage}{5cm} + \vspace*{-.7ex}\hspace*{-3cm}\footnotesize #1 + \end{minipage} + \raggedright + + \begin{small} + #3 + \end{small} +} diff --git a/title.tex b/title.tex new file mode 100644 index 0000000..f40a58a --- /dev/null +++ b/title.tex @@ -0,0 +1,23 @@ +\begin{huge} + Nikolaos Karaolidis +\end{huge} + +\vspace{0.5em} + +\begin{footnotesize} + \begin{scriptsize}\faMobile*\end{scriptsize}~~\href{tel:+447947145598}{+44 7947145598} + \quad + %\begin{scriptsize}\faMobile*\end{scriptsize}~~\href{tel:+306979252518}{+30 6979252518} + %\quad + \begin{scriptsize}\faLinkedinIn\end{scriptsize}~~\href{https://www.linkedin.com/in/nikolaos-karaolidis/}{nikolaos-karaolidis} + \quad + \begin{scriptsize}\faEnvelope\end{scriptsize}~~\href{mailto:nick@karaolidis.com}{nick@karaolidis.com} + \quad + \begin{scriptsize}\faHome\end{scriptsize}~~\href{www.karaolidis.com}{karaolidis.com} + \quad + \begin{scriptsize}\faCodeBranch\end{scriptsize}~~\href{https://git.karaolidis.com/karaolidis}{karaolidis} + %\quad + %\begin{scriptsize}\faGithub\end{scriptsize}~~\href{https://github.com/karaolidis}{karaolidis} + %\quad + %\begin{scriptsize}\faGitlab\end{scriptsize}~~\href{https://gitlab.cs.man.ac.uk/k11980nk}{k11980} +\end{footnotesize} diff --git a/work.tex b/work.tex new file mode 100644 index 0000000..88eeee7 --- /dev/null +++ b/work.tex @@ -0,0 +1,46 @@ +\datedlocatedsubsection{Jun 2023 - Sep 2023} +{WebHotelier | primalRES, Athens, Greece} +{Software Engineering Intern} +{% + With 9000+ customers in 38 countries, WebHotelier | primalRES stands as the leading hospitality tech group in Greece and one of Europe's giants. + % + \begin{itemize} + \item Spearheaded a complete overhaul of the company's \textbf{Grafana} dashboards, slashing the time-to-load by approximately 80\% while also increasing the number of metrics shown. + \item Collaborated directly with the CTO to secure a year-long contract with \textbf{ClickHouse Cloud} and \textbf{AWS}. + \item Migrated the entire metrics stack from \textbf{InfluxDB} to \textbf{ClickHouse}. This shift amped up performance by over 50\% without inflating operational costs. + \item Engineered an open-source \textbf{Telegraf} ClickHouse plugin optimized for Terabyte-scale data outputs, outperforming the in-built plugin in terms of efficiency. + \item Deployed Telegraf across 12 \textbf{Amazon EC2} instances, revealing and subsequently rectifying performance bottlenecks. + \item Modernized the logging approach by transitioning to \textbf{ClickHouse}, thereby ending the thread-related challenges of the previous file-based system. + \item Teamed up with fellow developers to incorporate \textbf{DataDog} performance monitoring into \textbf{Java} applications, improving understanding of app operations and pinpointing areas of enhancement. + \end{itemize} +} + +\datedlocatedsubsection{Jun 2022 - Aug 2022} +{Softwire, Manchester, UK} +{Software Engineering Intern} +{% + Working with some of the UK's leading brands, Softwire designs bespoke software and delivers innovative digital engineering expertise. + % + \begin{itemize} + \item Co-developed a pro bono web app using \textbf{React Native}, \textbf{Typescript}, \textbf{AWS Lambda}, and \textbf{AWS DynamoDB} in a 6-person team. + \item Played a key role in building the majority of the application's \textbf{REST} backend, ensuring efficient data handling and connectivity. + \item Participated in daily stand-ups, retrospectives, sprint planning, and review meetings. + \item Engaged in direct client interactions, presenting progress, receiving feedback, and iterating on the application in real-time. + \item Authored clean and maintainable code which was tested using unit, integration, and end-to-end testing. + \end{itemize} +} + +\datedlocatedsubsection{Jul 2019} +{InterSearch Worldwide, Dubai, UAE} +{Intern} +{% + Ranked among the 30 largest executive search firms in the world, InterSearch Worldwide has 90 offices in 50 different countries. + % + \begin{itemize} + \item Developed a \textbf{Python} CLI Tool to automate Candidate CV and Financial Documentation Entry, extracting information from .pdf, .doc, and .docx CVs to a \textbf{FileFinder} database. + \item Incorporated \textbf{XML} parsing techniques for data extraction from Microsoft Word documents, and \textbf{Optical Character Recognition} with OpenCV to interpret non-editable PDFs. + \item Applied \textbf{Natural Language Processing} using NLTK to categorize text tokens such as names, addresses, and skills. + \item Navigated database interactions using PyAutoGUI, a workaround due to limited direct database access. + \item Refined the E-mail spam filter to improve productivity and internal communications. + \end{itemize} +}