5 Commits

Author SHA1 Message Date
ccb62ab87c Add SAS
All checks were successful
Build and Release PDF / release (push) Successful in 2m52s
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2025-07-31 17:47:23 +01:00
dfcf90ed24 Update CI
All checks were successful
Build and Release PDF / release (push) Successful in 2m44s
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2025-07-31 15:41:32 +01:00
e47b98c4cd Turn WebHotelier europe-centric
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2024-07-16 19:44:04 +01:00
6b2d5f26d3 Rewrite template, improve wording
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2024-02-18 21:32:57 +00:00
9cf9dfb586 Add qrust
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2024-02-18 17:42:58 +00:00
12 changed files with 223 additions and 170 deletions

View File

@@ -0,0 +1,37 @@
name: Build and Release PDF
on:
push:
branches:
- "**"
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install LaTeX (XeLaTeX)
run: |
apt-get update
apt-get install -y texlive-xetex texlive-science texlive-fonts-extra
wget -P /usr/local/share/fonts https://github.com/CatharsisFonts/Cormorant/raw/refs/heads/master/fonts/ttf/CormorantGaramond-Regular.ttf
wget -P /usr/local/share/fonts https://github.com/CatharsisFonts/Cormorant/raw/refs/heads/master/fonts/ttf/CormorantGaramond-Bold.ttf
wget -P /usr/local/share/fonts https://github.com/CatharsisFonts/Cormorant/raw/refs/heads/master/fonts/ttf/CormorantGaramond-Italic.ttf
wget -P /usr/local/share/fonts https://github.com/CatharsisFonts/Cormorant/raw/refs/heads/master/fonts/ttf/CormorantGaramond-BoldItalic.ttf
wget -P /usr/local/share/fonts https://github.com/CatharsisFonts/Cormorant/raw/refs/heads/master/fonts/ttf/CormorantGaramond-Light.ttf
fc-cache -fv
- name: Compile PDF
run: |
xelatex main.tex
- name: Release
uses: https://github.com/akkuman/gitea-release-action@main
with:
name: "Release ${{github.sha}}"
tag_name: "release-${{github.sha}}"
files: |-
main.pdf

View File

@@ -1,42 +0,0 @@
variables:
GIT_SUBMODULE_STRATEGY: recursive
stages:
- build
- release
build:
image: texlive/texlive
stage: build
script:
- xelatex main.tex
after_script:
- echo "JOB_ID=$CI_JOB_ID" >> job.env
artifacts:
paths:
- "*.pdf"
expire_in: 1d
reports:
dotenv: job.env
except:
- tags
release:
image: registry.gitlab.com/gitlab-org/release-cli
stage: release
needs:
- job: build
artifacts: true
script:
- echo "Create Release $CI_COMMIT_SHA"
release:
name: "Release $CI_COMMIT_SHA"
tag_name: "release-$CI_COMMIT_SHA"
ref: "$CI_COMMIT_SHA"
description: "Release $CI_COMMIT_SHA"
assets:
links:
- name: "main.pdf"
url: "https://git.karaolidis.com/karaolidis/cv/-/jobs/$JOB_ID/artifacts/raw/main.pdf"
except:
- tags

3
.gitmodules vendored
View File

@@ -1,3 +0,0 @@
[submodule "prometheusCV"]
path = prometheusCV
url = https://github.com/chrisby/prometheusCV.git

9
education.tex Normal file
View File

@@ -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\%}

5
languages.tex Normal file
View File

@@ -0,0 +1,5 @@
\begin{itemize}
\item Native: Greek, Serbocroatian
\item Fluent/C2: English
\item Beginner/B1: German
\end{itemize}

130
main.tex
View File

@@ -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,135 +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 the \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{Lets 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{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 \textbf{International Conference on Architectural Support for Programming Languages and Operating Systems (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}

54
projects.tex Normal file
View File

@@ -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}
}

Submodule prometheusCV deleted from a7ba18d5fa

View File

@@ -1 +0,0 @@
prometheusCV/prometheus_cv.cls

42
template.cls Normal file
View File

@@ -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}
}

23
title.tex Normal file
View File

@@ -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}

46
work.tex Normal file
View File

@@ -0,0 +1,46 @@
\datedlocatedsubsection{Nov 2024 - Present}
{SAS Institute, Glasgow, UK}
{Senior Associate Software Developer}
{%
A global leader in analytics and AI software, SAS is empowering organizations across more than 145 countries.
%
\begin{itemize}
\item Spearheaded the design and development of a microservices-based platform (\textbf{Go}, \textbf{Python}, \textbf{Postgres}, \textbf{Redis}), enabling massively parallel task execution at accelerated rates compared to the legacy solution.
\item Architected distributed task scheduling with \textbf{Ray} and \textbf{KEDA}-powered autoscaling on \textbf{Kubernetes} clusters.
\item Authored and maintained the platform's \textbf{unit test} suite and \textbf{CI/CD} pipelines to guarantee reliability across all services.
\item Triaged and fixed Viya 4 UI (\textbf{TypeScript}) and backend (\textbf{Go}/\textbf{Java}) issues.
\item Prototyped a lightweight isolation platform for the SAS language executor using \textbf{Linux kernel} capabilities and system calls.
\end{itemize}
}
\datedlocatedsubsection{Jun 2023 - Sep 2023}
{WebHotelier | primalRES, Athens, Greece}
{Software Engineering Intern}
{%
With 9000+ customers in 38 countries, WebHotelier | primalRES stands as one of Europe's hospitality tech 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}
}