update codebase from upstream + add cv content

This commit is contained in:
Ionut Adrian Ciolan 2026-01-18 22:05:50 +02:00
parent 8fe498cd98
commit 989077b327
7 changed files with 512 additions and 139 deletions

241
NETCONNECT_RESUME.md Normal file
View File

@ -0,0 +1,241 @@
# NetConnect Experience Summary (Mar 2024 - Present)
## Position: System/Network Administrator & DevOps Engineer
**Company:** NetConnect Group
**Period:** Martie 2024 - Prezent (aprox. 22 luni)
**Location:** Remote
---
## Major Projects & Achievements
### 1. PowerDNS High Availability Cluster (pdns, pdns2-6) 🎯
**Timeline:** Nov 2023 - Dec 2025 (ongoing)
**Current Version:** v2.4.0-stable → v2.5.0 (in development)
**Architecture:**
- Master-Slave MySQL replication cluster
- Keepalived VIP failover (automatic failback)
- PowerDNS Authoritative servers (NS1: .214, NS2: .215)
- Cloudflare API integration (20 zones, 581 records sync)
- Custom CF-Sync v2.4.0 (Docker-based)
**Key Achievements:**
- Designed and deployed production HA DNS infrastructure
- Implemented automatic failover/failback mechanism
- Created comprehensive automation scripts (Bash, Python)
- Cloud-init deployment automation
- Extreme load testing and optimization
- Production endpoint: `pdns.infra.netconnect.ro`
**Technologies:** PowerDNS, MySQL/MariaDB, Keepalived, Docker, Bash, Python, Cloud-init, Ansible
---
### 2. InfraManager - Dynamic Infrastructure Management Tool
**Timeline:** Ongoing development
**Purpose:** Lightweight infrastructure orchestration
**Features:**
- Dynamic service/node management via CLI
- YAML-based state tracking
- Template generation for configs
- Future integrations: Ansible, Terraform, Proxmox API
**Technologies:** Python, YAML, CLI development
---
### 3. ncTesseract - Nextcloud OCR & Elasticsearch Indexing
**Timeline:** Dec 2024
**Problem:** Traditional Nextcloud indexing was extremely slow (350k files = 77 days!)
**Solution:**
- Custom Python parallel indexer with 48+ workers
- Tesseract OCR integration
- Direct Elasticsearch indexing in Nextcloud-compatible format
- Massive performance improvement (single-threaded PHP → multiprocessing)
**Technologies:** Python, Multiprocessing, Tesseract OCR, Elasticsearch, Nextcloud
---
### 4. Certificate Management Automation (certbotAuto)
**Timeline:** Sep 2024 - Dec 2024
**Features:**
- Automated SSL/TLS certificate management
- Multi-server deployment via Ansible
- Let's Encrypt integration (certbot)
- Centralized secrets management
- Automated renewal and deployment
**Technologies:** Bash, Certbot, Ansible, YAML
---
### 5. CDR Processing System (cdr2sql)
**Timeline:** Feb 2024 - Jul 2025
**Purpose:** Call Detail Records processing and SQL integration
**Components:**
- PHP backend for CDR parsing
- Node.js/Gulp build system
- Database integration for telecom billing
**Technologies:** PHP, Node.js, Gulp, MySQL
---
### 6. Xen to KVM/Proxmox Migration Tools (xen2lxc, xenserver_to_xen)
**Timeline:** Sep-Nov 2024
**Purpose:** Automated VM migration from legacy Xen infrastructure
**Features:**
- XVA image extraction and conversion
- Disk preparation for QEMU/KVM
- Automated boot scripts
- Proxmox integration
**Technologies:** Python, Bash, QEMU, Proxmox, Xen
---
### 7. Cataleya Integration (cataleya2db)
**Timeline:** Oct 2024
**Purpose:** Telecom data integration with Cataleya platform
**Technologies:** PHP, Database integration
---
### 8. Laravel Development Environment with SQL Anywhere
**Timeline:** Aug-Sep 2024
**Purpose:** Custom Docker-based development environment
**Features:**
- Laravel + SQL Anywhere integration
- Nginx + PHP-FPM stack
- Docker Compose orchestration
**Technologies:** Docker, Laravel, PHP, Nginx, SQL Anywhere
---
### 9. Portability System - Czech Republic (portabilitateCehia.org)
**Timeline:** Ongoing maintenance
**Purpose:** Automated portability data download from Czech telecom portal
**Challenges Solved:**
- SSL certificate renewal for client authentication
- Wildcard certificate management (*.netconnect.ro)
- HTTPS client certificate authentication
**Technologies:** OpenSSL, wget, SSL/TLS, Bash
---
### 10. Infrastructure Services
**Timeline:** Ongoing
**Deployed/Maintained:**
- **Zabbix Monitoring:** Docker-based monitoring stack
- **FreeSWITCH:** VoIP infrastructure (Docker)
- **Traefik:** Reverse proxy and load balancer
- **Infrastructure automation:** Various supporting services
---
## Core Competencies Demonstrated
### DevOps & Automation
- CI/CD pipeline development
- Infrastructure as Code (Ansible, Terraform concepts)
- Docker containerization
- Cloud-init automation
- Custom automation tooling (Bash, Python, Perl)
### System Administration
- High Availability cluster design and deployment
- MySQL/MariaDB replication and failover
- DNS infrastructure (PowerDNS)
- Load balancing (Keepalived)
- SSL/TLS certificate management
### Development
- Python (multiprocessing, CLI tools, automation)
- Bash scripting (complex automation)
- PHP (backend services, integrations)
- Perl (legacy support, migration)
- JavaScript/Node.js (build systems)
### Networking
- DNS management and troubleshooting
- VIP failover mechanisms
- Firewall configuration
- VPN integration concepts
- Network troubleshooting (tcpdump, netstat, ss)
### Virtualization & Cloud
- Proxmox management
- Xen → KVM migration
- Docker (multi-service orchestration)
- Cloud-init deployment
- VM provisioning and management
### Databases
- MySQL Master-Slave replication
- Elasticsearch integration
- SQL Anywhere (legacy support)
- Database optimization and monitoring
---
## Key Technologies Used
**Operating Systems:** Debian, Ubuntu, CentOS, Alpine Linux
**Scripting:** Bash, Python, Perl, PHP
**Orchestration:** Docker, Docker Compose, Ansible (planned)
**Databases:** MySQL/MariaDB, PostgreSQL, Elasticsearch, SQL Anywhere
**Web Stack:** Nginx, Apache, PHP-FPM, Tomcat (limited)
**Monitoring:** Zabbix, Systemd journaling
**Version Control:** Git
**Networking:** PowerDNS, Keepalived, Cloudflare API, OpenSSL
**Other:** Tesseract OCR, FreeSWITCH, Traefik
---
## Soft Skills Demonstrated
- **Problem Solving:** Reduced Nextcloud indexing from 77 days to hours
- **Architecture Design:** Built production HA DNS from scratch
- **Documentation:** Comprehensive guides for all major projects
- **Automation Focus:** Consistently automated manual processes
- **Tool Development:** Created custom tools when needed (InfraManager, CF-Sync)
- **Migration Expertise:** Successfully migrated legacy Xen infrastructure
---
## For CV Update
**Replace RnD Software Group entry (Apr 2021 - Present) with:**
### NetConnect Group | Bucharest, Romania (Remote)
**SYSTEM/NETWORK ADMINISTRATOR & DEVOPS ENGINEER**
*Mar 2024 - Present*
- Designed and deployed production High Availability DNS infrastructure using PowerDNS, MySQL Master-Slave replication, and Keepalived VIP failover serving 20+ zones with automatic failover/failback
- Developed custom automation tools including parallel OCR indexing system (48+ workers) reducing Nextcloud indexing time from 77 days to hours, and infrastructure management CLI tool (Python)
- Automated SSL/TLS certificate management across multiple servers using certbot, Ansible, and custom bash orchestration
- Migrated legacy Xen virtual infrastructure to Proxmox/KVM using custom Python/Bash tooling
- Maintained and integrated telecom services including CDR processing, portability systems, and FreeSWITCH VoIP infrastructure
- Technologies: PowerDNS, MySQL/MariaDB, Keepalived, Docker, Python, Bash, Ansible, Elasticsearch, Proxmox, Zabbix
---
**Note:** Această experiență arată o evoluție clară de la sysadmin tradițional (RnD) către DevOps modern cu focus pe automation, HA, și custom tooling development.

BIN
cv.pdf

Binary file not shown.

BIN
cv.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 539 KiB

After

Width:  |  Height:  |  Size: 67 KiB

View File

@ -48,13 +48,14 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Needed to make fixed length table % Needed to make fixed length table
\RequirePackage{array} \RequirePackage{array}
\RequirePackage{tabularx}
% Needed to handle list environment % Needed to handle list environment
\RequirePackage{enumitem} \RequirePackage{enumitem}
% Needed to handle text alignment % Needed to handle text alignment
\RequirePackage{ragged2e} \RequirePackage{ragged2e}
% Needed to configure page layout % Needed to configure page layout
\RequirePackage{geometry} \RequirePackage{geometry}
% Needed to make header & footer effeciently % Needed to make header & footer efficiently
\RequirePackage{fancyhdr} \RequirePackage{fancyhdr}
% Needed to manage colors % Needed to manage colors
\RequirePackage{xcolor} \RequirePackage{xcolor}
@ -62,6 +63,8 @@
\RequirePackage{ifxetex} \RequirePackage{ifxetex}
% Needed to use \if-\then-\else statement % Needed to use \if-\then-\else statement
\RequirePackage{xifthen} \RequirePackage{xifthen}
% Needed to strip chars from telephone number
\RequirePackage{xstring}
% Needed to use a toolbox of programming tools % Needed to use a toolbox of programming tools
\RequirePackage{etoolbox} \RequirePackage{etoolbox}
% Needed to change line spacing in specific environment % Needed to change line spacing in specific environment
@ -76,27 +79,54 @@
% (https://github.com/posquit0/latex-fontawesome) % (https://github.com/posquit0/latex-fontawesome)
\RequirePackage{fontawesome} \RequirePackage{fontawesome}
\RequirePackage[default,opentype]{sourcesanspro} \RequirePackage[default,opentype]{sourcesanspro}
% Needed for the photo ID
\RequirePackage[skins]{tcolorbox}
% Needed to deal a paragraphs
\RequirePackage{parskip}
% Needed to deal hyperlink
\RequirePackage[hidelinks,unicode]{hyperref}
\hypersetup{%
pdftitle={},
pdfauthor={},
pdfsubject={},
pdfkeywords={}
}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Configuration for directory locations % Configuration for directory locations
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Configure a directory location for fonts(default: 'fonts/') % Configure an optional directory location for fonts(default: 'fonts/')
% Not required anymore but left in place for backward compatability.
\newcommand*{\fontdir}[1][fonts/]{\def\@fontdir{#1}} \newcommand*{\fontdir}[1][fonts/]{\def\@fontdir{#1}}
\fontdir
%-------------------------------------------------------------------------------
% Configuration for fonts
%-------------------------------------------------------------------------------
% Set the FontAwesome font to be up-to-date.
\newfontfamily\FA[
Path=\@fontdir
]{FontAwesome.ttf}
% Set font for header (default is Roboto)
\newfontfamily\headerfont[
Path=\@fontdir,
UprightFont=*-Regular,
ItalicFont=*-Italic,
BoldFont=*-Bold,
BoldItalicFont=*-BoldItalic,
]{Roboto}
\newfontfamily\headerfontlight[
Path=\@fontdir,
UprightFont=*-Thin,
ItalicFont=*-ThinItalic,
BoldFont=*-Medium,
BoldItalicFont=*-MediumItalic,
]{Roboto}
\newfontfamily\roboto{Roboto}[
Path=\@fontdir,
UprightFont=*-Regular,
ItalicFont=*-Italic,
BoldFont=*-Bold,
BoldItalicFont=*-BoldItalic,
FontFace={l}{n}{Font=*-Light},
FontFace={l}{it}{Font=*-LightItalic},
]
\newcommand*{\footerfont}{\sourcesanspro}
\newcommand*{\bodyfont}{\sourcesanspro}
\newcommand*{\bodyfontlight}{\sourcesansprolight}
% Compatibility shim for faAlt (fontawesome6 feature)
\newcommand*{\faAlt}[3]{#2\acvHeaderIconSep#3}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Configuration for layout % Configuration for layout
@ -136,6 +166,7 @@
\colorlet{text}{darkgray} \colorlet{text}{darkgray}
\colorlet{graytext}{gray} \colorlet{graytext}{gray}
\colorlet{lighttext}{lightgray} \colorlet{lighttext}{lightgray}
\colorlet{sectiondivider}{gray}
% Awesome colors % Awesome colors
\definecolor{awesome-emerald}{HTML}{00A388} \definecolor{awesome-emerald}{HTML}{00A388}
\definecolor{awesome-skyblue}{HTML}{0395DE} \definecolor{awesome-skyblue}{HTML}{0395DE}
@ -151,39 +182,12 @@
\newbool{acvSectionColorHighlight} \newbool{acvSectionColorHighlight}
\setbool{acvSectionColorHighlight}{true} \setbool{acvSectionColorHighlight}{true}
% Awesome section color
\def\@sectioncolor#1#2#3{%
\ifbool{acvSectionColorHighlight}{{\color{awesome}#1#2#3}}{#1#2#3}%
}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Configuration for fonts % Configuration for fonts
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Set the FontAwesome font to be up-to-date. \newcommand*{\headerfont}{\roboto\selectfont}
\newfontfamily\FA[ \newcommand*{\headerfontlight}{\roboto\fontseries{l}\selectfont}
Path=\@fontdir \newcommand*{\footerfont}{\sffamily}
]{FontAwesome.ttf}
% Set font for header (default is Roboto)
\newfontfamily\headerfont[
Path=\@fontdir,
UprightFont=*-Regular,
ItalicFont=*-Italic,
BoldFont=*-Bold,
BoldItalicFont=*-BoldItalic,
]{Roboto}
\newfontfamily\headerfontlight[
Path=\@fontdir,
UprightFont=*-Thin,
ItalicFont=*-ThinItalic,
BoldFont=*-Medium,
BoldItalicFont=*-MediumItalic,
]{Roboto}
\newcommand*{\footerfont}{\sourcesanspro}
\newcommand*{\bodyfont}{\sourcesanspro}
\newcommand*{\bodyfontlight}{\sourcesansprolight}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Configuration for styles % Configuration for styles
@ -197,7 +201,14 @@
\newcommand*{\headersocialstyle}[1]{{\fontsize{6.8pt}{1em}\headerfont\color{text} #1}} \newcommand*{\headersocialstyle}[1]{{\fontsize{6.8pt}{1em}\headerfont\color{text} #1}}
\newcommand*{\headerquotestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\itshape\color{darktext} #1}} \newcommand*{\headerquotestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\itshape\color{darktext} #1}}
\newcommand*{\footerstyle}[1]{{\fontsize{8pt}{1em}\footerfont\scshape\color{lighttext} #1}} \newcommand*{\footerstyle}[1]{{\fontsize{8pt}{1em}\footerfont\scshape\color{lighttext} #1}}
\newcommand*{\sectionstyle}[1]{{\fontsize{16pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}} \newcommand*{\sectionstyleface}[1]{{\fontsize{16pt}{1em}\bodyfont\bfseries #1}}
\newcommand*{\sectionstyle}[1]{%
\def\@acvSectionTmp{#1}
\ifthenelse{\boolean{acvSectionColorHighlight}}{%
\StrSplit{\@acvSectionTmp}{3}{\acvSectionStringAwesome}{\acvSectionStringPlain}%
\color{awesome}\sectionstyleface{\acvSectionStringAwesome%
\color{text}{\acvSectionStringPlain}}}%
{\color{text}\sectionstyleface{\@acvSectionTmp}}}
\newcommand*{\subsectionstyle}[1]{{\fontsize{12pt}{1em}\bodyfont\scshape\textcolor{text}{#1}}} \newcommand*{\subsectionstyle}[1]{{\fontsize{12pt}{1em}\bodyfont\scshape\textcolor{text}{#1}}}
\newcommand*{\paragraphstyle}{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text}} \newcommand*{\paragraphstyle}{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text}}
@ -226,7 +237,14 @@
\newcommand*{\skillsetstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\color{text} #1}} \newcommand*{\skillsetstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\color{text} #1}}
% For elements of the cover letter % For elements of the cover letter
\newcommand*{\lettersectionstyle}[1]{{\fontsize{14pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}} \newcommand*{\lettersectionstyleface}[1]{{\fontsize{14pt}{1em}\bodyfont\bfseries #1}}
\newcommand*{\lettersectionstyle}[1]{%
\def\@acvLetterSectionTmp{#1}
\ifthenelse{\boolean{acvSectionColorHighlight}}{%
\StrSplit{\@acvLetterSectionTmp}{3}{\acvLetterSectionStringAwesome}{\acvLetterSectionStringPlain}%
\color{awesome}\sectionstyleface{\acvLetterSectionStringAwesome%
\color{text}{\acvLetterSectionStringPlain}}}%
{\color{text}\lettersectionstyleface{\@acvLetterSectionTmp}}}
\newcommand*{\recipientaddressstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\scshape\color{graytext} #1}} \newcommand*{\recipientaddressstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\scshape\color{graytext} #1}}
\newcommand*{\recipienttitlestyle}[1]{{\fontsize{11pt}{1em}\bodyfont\bfseries\color{darktext} #1}} \newcommand*{\recipienttitlestyle}[1]{{\fontsize{11pt}{1em}\bodyfont\bfseries\color{darktext} #1}}
\newcommand*{\lettertitlestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\bfseries\color{darktext} \underline{#1}}} \newcommand*{\lettertitlestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\bfseries\color{darktext} \underline{#1}}}
@ -277,12 +295,25 @@
% Defines writer's mobile (optional) % Defines writer's mobile (optional)
% Usage: \mobile{<mobile number>} % Usage: \mobile{<mobile number>}
\newcommand*{\mobile}[1]{\def\@mobile{#1}} \newcommand*{\mobile}[1]
{
\def\@mobile{#1}
\def\@teluri{tel:\@mobile}
% Strip unwanted characters
\StrDel{\@teluri}{ }[\@teluri]%
\StrDel{\@teluri}{-}[\@teluri]%
\StrDel{\@teluri}{(}[\@teluri]%
\StrDel{\@teluri}{)}[\@teluri]%
}
% Defines writer's email (optional) % Defines writer's email (optional)
% Usage: \email{<email address>} % Usage: \email{<email address>}
\newcommand*{\email}[1]{\def\@email{#1}} \newcommand*{\email}[1]{\def\@email{#1}}
% Defines writer's date of birth (optional)
% Usage: \dateofbirth{<date>}
\newcommand*{\dateofbirth}[1]{\def\@dateofbirth{#1}}
% Defines writer's homepage (optional) % Defines writer's homepage (optional)
% Usage: \homepage{<url>} % Usage: \homepage{<url>}
\newcommand*{\homepage}[1]{\def\@homepage{#1}} \newcommand*{\homepage}[1]{\def\@homepage{#1}}
@ -299,6 +330,10 @@
% Usage: \gitlab{<gitlab-nick>} % Usage: \gitlab{<gitlab-nick>}
\newcommand*{\gitlab}[1]{\def\@gitlab{#1}} \newcommand*{\gitlab}[1]{\def\@gitlab{#1}}
% Defines writer's bitbucket (optional)
% Usage: \bitbucket{<bitbucket-nick>}
\newcommand*{\bitbucket}[1]{\def\@bitbucket{#1}}
% Defines writer's stackoverflow profile (optional) % Defines writer's stackoverflow profile (optional)
% Usage: \stackoverflow{<so userid>}{<so username>} % Usage: \stackoverflow{<so userid>}{<so username>}
% e.g.https://stackoverflow.com/users/123456/sam-smith % e.g.https://stackoverflow.com/users/123456/sam-smith
@ -309,10 +344,26 @@
% Usage: \linkedin{<linked-in-nick>} % Usage: \linkedin{<linked-in-nick>}
\newcommand*{\linkedin}[1]{\def\@linkedin{#1}} \newcommand*{\linkedin}[1]{\def\@linkedin{#1}}
% Defines writer's orcid (optional)
% Usage: \orcid{<orcid-num>}
\newcommand*{\orcid}[1]{\def\@orcid{#1}}
% Defines writer's twitter (optional) % Defines writer's twitter (optional)
% Usage: \twitter{<twitter handle>} % Usage: \twitter{<twitter handle>}
\newcommand*{\twitter}[1]{\def\@twitter{#1}} \newcommand*{\twitter}[1]{\def\@twitter{#1}}
% Defines writer's x (formerly twitter) (optional)
% Usage: \x{<x account>}
\newcommand*{\x}[1]{\def\@x{#1}}
% Defines writer's Mastodon (optional)
% Usage: \mastodon{<instance>}{<mastodon-nick>}
\newcommand*{\mastodon}[2]{\def\@mastodoninstance{#1}\def\@mastodonname{#2}}
% Defines writer's resarchgate (optional)
% Usage: \researchgate{<researchgate-account>}
\newcommand*{\researchgate}[1]{\def\@researchgate{#1}}
% Defines writer's skype (optional) % Defines writer's skype (optional)
% Usage: \skype{<skype account>} % Usage: \skype{<skype account>}
\newcommand*{\skype}[1]{\def\@skype{#1}} \newcommand*{\skype}[1]{\def\@skype{#1}}
@ -329,6 +380,18 @@
% Usage: \medium{<medium account>} % Usage: \medium{<medium account>}
\newcommand*{\medium}[1]{\def\@medium{#1}} \newcommand*{\medium}[1]{\def\@medium{#1}}
% Defines writer's kaggle (optional)
% Usage: \kaggle{<kaggle handle>}
\newcommand*{\kaggle}[1]{\def\@kaggle{#1}}
% Defines writer's Hackerrank (optional)
% Usage: \hackerrank{<Hackerrank profile name>}
\newcommand*{\hackerrank}[1]{\def\@hackerrank{#1}}
% Defines writer's Telegram (optional)
% Usage: \telegram{<Telegram username>}
\newcommand*{\telegram}[1]{\def\@telegram{#1}}
% Defines writer's google scholar profile (optional) % Defines writer's google scholar profile (optional)
% Usage: \googlescholar{<googlescholar userid>}{<googlescholar username>} % Usage: \googlescholar{<googlescholar userid>}{<googlescholar username>}
% e.g.https://scholar.google.co.uk/citations?user=wpZDx1cAAAAJ % e.g.https://scholar.google.co.uk/citations?user=wpZDx1cAAAAJ
@ -344,8 +407,8 @@
}% }%
} }
% Defines writer's extra informations (optional) % Defines writer's extra information (optional)
% Usage: \extrainfo{<extra informations>} % Usage: \extrainfo{<extra information>}
\newcommand*{\extrainfo}[1]{\def\@extrainfo{#1}} \newcommand*{\extrainfo}[1]{\def\@extrainfo{#1}}
% Defines writer's quote (optional) % Defines writer's quote (optional)
@ -396,7 +459,7 @@
\newcommand{\acvHeaderAfterPositionSkip}{.4mm} \newcommand{\acvHeaderAfterPositionSkip}{.4mm}
\newcommand{\acvHeaderAfterAddressSkip}{-.5mm} \newcommand{\acvHeaderAfterAddressSkip}{-.5mm}
\newcommand{\acvHeaderIconSep}{\space} \newcommand{\acvHeaderIconSep}{\space}
\newcommand{\acvHeaderSocialSep}{\quad\textbar\quad} \newcommand{\acvHeaderSocialSep}{\BeginAccSupp{ActualText={}}\quad\textbar\quad\EndAccSupp{}}
\newcommand{\acvHeaderAfterSocialSkip}{6mm} \newcommand{\acvHeaderAfterSocialSkip}{6mm}
\newcommand{\acvHeaderAfterQuoteSkip}{5mm} \newcommand{\acvHeaderAfterQuoteSkip}{5mm}
@ -409,6 +472,7 @@
% Commands for utilities % Commands for utilities
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Use to align an element of tabular table % Use to align an element of tabular table
\renewcommand{\tabularxcolumn}{p}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
@ -419,6 +483,11 @@
% Use to execute conditional statements by checking empty string % Use to execute conditional statements by checking empty string
\newcommand*{\ifempty}[3]{\ifthenelse{\isempty{#1}}{#2}{#3}} \newcommand*{\ifempty}[3]{\ifthenelse{\isempty{#1}}{#2}{#3}}
\newcommand{\faAlt}[3]{%
\BeginAccSupp{ActualText={#1}}%
\mbox{#2\acvHeaderIconSep#3}%
\EndAccSupp{}%
}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Commands for elements of CV structure % Commands for elements of CV structure
@ -464,86 +533,140 @@
\ifthenelse{\isundefined{\@mobile}}% \ifthenelse{\isundefined{\@mobile}}%
{}% {}%
{% {%
\faMobile\acvHeaderIconSep\@mobile% \href{\@teluri}{\faAlt{tel:\@mobile}{\faMobile}{\@mobile}}%
\setbool{isstart}{false}% \setbool{isstart}{false}%
}% }%
\ifthenelse{\isundefined{\@email}}% \ifthenelse{\isundefined{\@email}}%
{}% {}%
{% {%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{mailto:\@email}{\faEnvelope\acvHeaderIconSep\@email}% \href{mailto:\@email}{\faAlt{mailto:\@email}{\faEnvelope}{\@email}}%
}%
\ifthenelse{\isundefined{\@dateofbirth}}%
{}%
{%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\faAlt{DoB: \@dateofbirth}{\faCakeCandles}{\@dateofbirth}%
}% }%
\ifthenelse{\isundefined{\@homepage}}% \ifthenelse{\isundefined{\@homepage}}%
{}% {}%
{% {%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{http://\@homepage}{\faHome\acvHeaderIconSep\@homepage}% \href{\@homepage}{\faAlt{homepage: \@homepage}{\faHouseChimney}{\@homepage}}%
}% }%
\ifthenelse{\isundefined{\@ciolagit}}% \ifthenelse{\isundefined{\@ciolagit}}%
{}% {}%
{% {%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://git.ciolan.net/\@ciolagit}{\faGit\acvHeaderIconSep\@ciolagit}% \href{https://git.ciolan.net/\@ciolagit}{\faAlt{Git: \@ciolagit}{\faGit}{\@ciolagit}}%
}% }%
\ifthenelse{\isundefined{\@github}}% \ifthenelse{\isundefined{\@github}}%
{}% {}%
{% {%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://github.com/\@github}{\faGithubSquare\acvHeaderIconSep\@github}% \href{https://github.com/\@github}{\faAlt{GitHub: @\@github}{\faSquareGithub}{\@github}}%
}% }%
\ifthenelse{\isundefined{\@gitlab}}% \ifthenelse{\isundefined{\@gitlab}}%
{}% {}%
{% {%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://gitlab.com/\@gitlab}{\faGitlab\acvHeaderIconSep\@gitlab}% \href{https://gitlab.com/\@gitlab}{\faAlt{GitLab: @\@gitlab}{\faGitlab}{\@gitlab}}%
}%
\ifthenelse{\isundefined{\@bitbucket}}%
{}%
{%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://bitbucket.com/\@bitbucket}{\faAlt{BitBucket: @\@bitbucket}{\faBitbucket}{\@bitbucket}}%
}% }%
\ifthenelse{\isundefined{\@stackoverflowid}}% \ifthenelse{\isundefined{\@stackoverflowid}}%
{}% {}%
{% {%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://stackoverflow.com/users/\@stackoverflowid}{\faStackOverflow\acvHeaderIconSep\@stackoverflowname}% \href{https://stackoverflow.com/users/\@stackoverflowid}{\faAlt{StackOverflow: @\@stackoverflowname}{\faStackOverflow}{\@stackoverflowname}}%
}% }%
\ifthenelse{\isundefined{\@linkedin}}% \ifthenelse{\isundefined{\@linkedin}}%
{}% {}%
{% {%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://www.linkedin.com/in/\@linkedin}{\faLinkedinSquare\acvHeaderIconSep\@linkedin}% \href{https://www.linkedin.com/in/\@linkedin}{\faAlt{LinkedIn: /in/\@linkedin}{\faLinkedin}{\@linkedin}}%
}%
\ifthenelse{\isundefined{\@orcid}}%
{}%
{%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://orcid.org/\@orcid}{\faAlt{OrcID: \@orcid}{\faOrcid}{\@orcid}}%
}% }%
\ifthenelse{\isundefined{\@twitter}}% \ifthenelse{\isundefined{\@twitter}}%
{}% {}%
{% {%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://twitter.com/\@twitter}{\faTwitter\acvHeaderIconSep\@twitter}% \href{https://twitter.com/\@twitter}{\faAlt{Twitter: @\@twitter}{\faTwitter}{\@twitter}}%
}%
\ifthenelse{\isundefined{\@x}}%
{}%
{%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://x.com/\@x}{\faAlt{X: @\@x}{\faXTwitter}{\@x}}%
}%
\ifthenelse{\isundefined{\@mastodonname}}%
{}%
{%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://\@mastodoninstance/@\@mastodonname}{\faAlt{Mastodon: \@mastodonname{}@\@mastodoninstance}{\faMastodon}{\@mastodonname}}%
}% }%
\ifthenelse{\isundefined{\@skype}}% \ifthenelse{\isundefined{\@skype}}%
{}% {}%
{% {%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\faSkype\acvHeaderIconSep\@skype% \faAlt{Skype: \@skype}{\faSkype}{\@skype}%
}% }%
\ifthenelse{\isundefined{\@reddit}}% \ifthenelse{\isundefined{\@reddit}}%
{}% {}%
{% {%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://www.reddit.com/user/\@reddit}{\faReddit\acvHeaderIconSep\@reddit}% \href{https://www.reddit.com/user/\@reddit}{\faAlt{Reddit: /u/\@reddit}{\faReddit}{\@reddit}}%
}%
\ifthenelse{\isundefined{\@researchgate}}%
{}%
{%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://www.researchgate.net/profile/\@researchgate}{\faAlt{ResearchGate: \@researchgate}{\faResearchgate}{\@researchgate}}%
}% }%
\ifthenelse{\isundefined{\@xing}}% \ifthenelse{\isundefined{\@xing}}%
{}% {}%
{% {%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://www.xing.com/profile/\@xing}{\faXingSquare\acvHeaderIconSep\@xing} \href{https://www.xing.com/profile/\@xing}{\faAlt{Xing: \@xing}{\faSquareXing}{\@xing}}
}% }%
\ifthenelse{\isundefined{\@medium}}% \ifthenelse{\isundefined{\@medium}}%
{}% {}%
{% {%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://medium.com/@\@medium}{\faMedium\acvHeaderIconSep\@medium}% \href{https://medium.com/@\@medium}{\faAlt{Medium: @\@medium}{\faMedium}{\@medium}}%
}%
\ifthenelse{\isundefined{\@kaggle}}%
{}%
{%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://kaggle.com/\@kaggle}{\faAlt{Kaggle: \@kaggle}{\faKaggle}{\@kaggle}}%
}%
\ifthenelse{\isundefined{\@hackerrank}}%
{}%
{%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://www.hackerrank.com/\@hackerrank}{\faAlt{HackerRank: \@hackerrank}{\faHackerrank}{\@hackerrank}}%
}%
\ifthenelse{\isundefined{\@telegram}}%
{}%
{%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://t.me/\@telegram}{\faAlt{Telegram: \@telegram}{\faTelegram}{\@telegram}}%
}% }%
\ifthenelse{\isundefined{\@googlescholarid}}% \ifthenelse{\isundefined{\@googlescholarid}}%
{}% {}%
{% {%
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
\href{https://scholar.google.com/citations?user=\@googlescholarid}{\faGraduationCap\acvHeaderIconSep\@googlescholarname}% \href{https://scholar.google.com/citations?user=\@googlescholarid}{\faAlt{Google Scholar: \@googlescholarid}{\faGraduationCap}{\@googlescholarname}}%
}% }%
\ifthenelse{\isundefined{\@extrainfo}}% \ifthenelse{\isundefined{\@extrainfo}}%
{}% {}%
@ -576,7 +699,7 @@
\vspace{\acvSectionTopSkip} \vspace{\acvSectionTopSkip}
\sectionstyle{#1} \sectionstyle{#1}
\phantomsection \phantomsection
\color{gray}\vhrulefill{0.9pt} \color{sectiondivider}\vhrulefill{0.9pt}
} }
% Define a subsection for CV % Define a subsection for CV
@ -616,7 +739,9 @@
{\entrypositionstyle{#1} & \entrydatestyle{#4} \\} {\entrypositionstyle{#1} & \entrydatestyle{#4} \\}
{\entrytitlestyle{#2} & \entrylocationstyle{#3} \\ {\entrytitlestyle{#2} & \entrylocationstyle{#3} \\
\entrypositionstyle{#1} & \entrydatestyle{#4} \\} \entrypositionstyle{#1} & \entrydatestyle{#4} \\}
\multicolumn{2}{L{\textwidth}}{\descriptionstyle{#5}} \ifstrempty{#5}
{}
{\multicolumn{2}{L{\textwidth}}{\descriptionstyle{#5}} \\}
\end{tabular*}% \end{tabular*}%
} }
@ -659,25 +784,24 @@
% Define a line of cv information(honor, award or something else) % Define a line of cv information(honor, award or something else)
% Usage: \cvhonor{<position>}{<title>}{<location>}{<date>} % Usage: \cvhonor{<position>}{<title>}{<location>}{<date>}
\newcommand*{\cvhonor}[4]{% \newcommand*{\cvhonor}[4]{%
\honordatestyle{#4} & \honorpositionstyle{#1}, \honortitlestyle{#2} & \honorlocationstyle{#3} \\ \honordatestyle{#4} & \honorpositionstyle{#1}\ifempty{#2}{}{,} \honortitlestyle{#2} & \honorlocationstyle{#3} \\
} }
% Define an environment for cvskill % Define an environment for cvskill
\newenvironment{cvskills}{% \newenvironment{cvskills}{%
\vspace{\acvSectionContentTopSkip} \vspace{\acvSectionContentTopSkip}
\vspace{-2.0mm} \vspace{-2.0mm}
\begin{center}
\setlength\tabcolsep{1ex} \setlength\tabcolsep{1ex}
\setlength{\extrarowheight}{0pt} \setlength{\extrarowheight}{0pt}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} r L{\textwidth * \real{0.9}}} \tabularx{\textwidth}{r>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}X}
}{% }{%
\end{tabular*} \endtabularx\par
\end{center}
} }
% Define a line of cv information(skill) % Define a line of cv information(skill)
% Usage: \cvskill{<type>}{<skillset>} % Usage: \cvskill{<type>}{<skillset>}
\newcommand*{\cvskill}[2]{% \newcommand*{\cvskill}[2]{%
\skilltypestyle{#1} & \skillsetstyle{#2} \\ \skilltypestyle{#1} & \leavevmode\skillsetstyle{#2} \\
} }
% Define an environment for cvitems(for cventry) % Define an environment for cvitems(for cventry)
@ -690,7 +814,7 @@
}{% }{%
\end{itemize} \end{itemize}
\end{justify} \end{justify}
\vspace{-4.0mm} \vspace{1.0mm}
} }
@ -709,8 +833,9 @@
\par\addvspace{2.5ex} \par\addvspace{2.5ex}
\phantomsection{} \phantomsection{}
\lettersectionstyle{#1} \lettersectionstyle{#1}
\color{gray}\vhrulefill{0.9pt} \color{sectiondivider}\vhrulefill{0.9pt}
\par\nobreak\addvspace{0.4ex} \par\nobreak\addvspace{0.4ex}
\lettertextstyle
} }
% Define a title of the cover letter % Define a title of the cover letter

View File

@ -13,7 +13,7 @@
{Master Studies in Cyber Security} % Degree {Master Studies in Cyber Security} % Degree
{„Titu Maiorescu” University} % Institution {„Titu Maiorescu” University} % Institution
{Bucharest, Romania} % Location {Bucharest, Romania} % Location
{In progress...} % Date(s) {Jul. 2025} % Date(s)
{} % Description(s) of tasks/responsibilities {} % Description(s) of tasks/responsibilities
%--------------------------------------------------------- %---------------------------------------------------------
%--------------------------------------------------------- %---------------------------------------------------------

View File

@ -30,18 +30,56 @@
% %
%%--------------------------------------------------------- %%---------------------------------------------------------
%---------------------------------------------------------
\cventry
{System/Network Administrator \& DevOps Engineer} % Job title
{NetConnect Group} % Organization
{Bucharest, Romania (Remote)} % Location
{Mar. 2024 - Present} % Period
{\begin{cvitems} % Description(s) of tasks/responsibilities
\item{Infrastructure \& Automation
\begin{itemize}
\item{Designed and deployed production High Availability DNS infrastructure using PowerDNS, MySQL Master-Slave replication, and Keepalived VIP failover serving 20+ zones with automatic failover/failback mechanism}
\item{Developed custom automation tools including parallel OCR indexing system (48+ workers) reducing Nextcloud indexing time from 77 days to hours using Python multiprocessing and Tesseract OCR}
\item{Built infrastructure management CLI tool (InfraManager) for dynamic service/node orchestration with YAML-based state tracking}
\item{Automated SSL/TLS certificate management across multiple servers using certbot, Ansible, and custom bash orchestration}
\end{itemize}
}
\item{Migration \& Integration
\begin{itemize}
\item{Migrated legacy Xen virtual infrastructure to Proxmox/KVM using custom Python/Bash tooling}
\item{Maintained and integrated telecom services: CDR processing, portability systems, FreeSWITCH VoIP infrastructure}
\item{Implemented Elasticsearch indexing with Nextcloud-compatible format for full-text search}
\end{itemize}
}
\item{\textbf{Technologies:} PowerDNS, MySQL/MariaDB, Keepalived, Docker, Python, Bash, Ansible, Elasticsearch, Proxmox, Zabbix}
\end{cvitems}}
%---------------------------------------------------------
%--------------------------------------------------------- %---------------------------------------------------------
\cventry \cventry
{System / Network Administrator} % Job title {System / Network Administrator} % Job title
{RnD Software Group} % Organization {RnD Software Group} % Organization
{Bucharest, Romania} % Location {Bucharest, Romania} % Location
{Apr. 2021 - Present} % Period {Apr. 2021 - Mar. 2024} % Period
{\begin{cvitems} % Description(s) of tasks/responsibilities {\begin{cvitems} % Description(s) of tasks/responsibilities
\item{System \ Network Administration \item{Infrastructure \& Virtualization
\begin{itemize} \begin{itemize}
\item{The same kind of job as with mySMTP, only using maybe slightly different tools - Zabbix instead of Nagios / monit, mostly KVM / Proxmox for virtualization, but overall the same System Administrator job} \item{Deployed and managed Proxmox KVM clusters on Hetzner bare-metal infrastructure with ZFS RAID1 storage}
\item{Designed multi-tier networking: VLANs (10.249.0.0/16), NAT networks (10.248.x.x/24), centralized DHCP}
\item{Built Debian VM templates with automated provisioning (LVM, qemu-agent, Docker pre-installed)}
\item{Migrated legacy virtual infrastructure to newer Proxmox clusters with minimal downtime}
\end{itemize} \end{itemize}
} }
\item{Monitoring \& Automation
\begin{itemize}
\item{Deployed Zabbix monitoring infrastructure with Ansible automation (agent deployment, configuration management)}
\item{Created custom automation scripts: PostgreSQL backups, integrity checks, system maintenance}
\item{Managed multi-site VPN infrastructure: OpenVPN (multi-port routing), Tinc VPN for site-to-site connectivity}
\end{itemize}
}
\item{\textbf{Technologies:} Proxmox, KVM, ZFS, Ansible, Zabbix, OpenVPN, Tinc, Docker, PostgreSQL, Debian Linux, Hetzner Cloud}
\end{cvitems}} \end{cvitems}}
%--------------------------------------------------------- %---------------------------------------------------------
@ -89,7 +127,7 @@
{Software Implementation and Support Specialist} % Job title {Software Implementation and Support Specialist} % Job title
{UTI GRUP} % Organization {UTI GRUP} % Organization
{Bucharest, Romania} % Location {Bucharest, Romania} % Location
{Apr. 2014 - Jul. 2014} % Period {Apr. 2014 - Apr. 2015} % Period
{\begin{cvitems} % Description(s) of tasks/responsibilities {\begin{cvitems} % Description(s) of tasks/responsibilities
\item{Installing and maintaining software on UTI equipments for RATB (now STB - Bucharest Transport Company). \item{Installing and maintaining software on UTI equipments for RATB (now STB - Bucharest Transport Company).
\begin{itemize} \begin{itemize}
@ -106,25 +144,18 @@
%--------------------------------------------------------- %---------------------------------------------------------
\cventry \cventry
{Freelancer during studies on Spiru Haret Music University and 2 years after} % Job title {Freelancer} % Job title
{Self-employed} % Organization {Self-employed} % Organization
{Bucharest, Romania} % Location {Bucharest, Romania} % Location
{Jan. 2010 - Apr. 2014} % Period {Jan. 2010 - Apr. 2014} % Period
{\begin{cvitems} % Description(s) of tasks/responsibilities {\begin{cvitems} % Description(s) of tasks/responsibilities
\item{Projects for personal usage and small businesses (real estate firms, computer shops, etc) including: \item{Linux system and network administration for small businesses
\begin{itemize} \begin{itemize}
\item{Linux desktop configurations (DE, WM installation / configuration) for clients wanting to migrate on linux but keep a traditional interface look to make the transition smoother} \item{Server configurations: apache, postfix, bind, ftp, openvpn, firewall, sshd}
\item{Linux server configurations (apache, postfix, bind, ftp, openvpn, firewall, sshd)} \item{NAS configurations and network infrastructure setups}
\item{NAS configurations based on linux and/or embedded linux} \item{Web development and system integration projects}
\item{Network setups (cabling, routers setup, switches installations)}
\item{Web Development}
\end{itemize} \end{itemize}
} }
\item{DTP work for various small advertising firms (most relevant: Complete Image, Brasov)}
\begin{itemize}
\item{graphics for: business cards, flyers, meshes /banners, logos, catalogs / brochures, posters, etc}
\end{itemize}
\item{Music transcription for various projects including the "LearnToPlay" app (not available on AppStore anymore)}
\end{cvitems}} \end{cvitems}}
%--------------------------------------------------------- %---------------------------------------------------------
@ -136,19 +167,7 @@
{Bucharest, Romania} % Location {Bucharest, Romania} % Location
{Jun. 2008 - Sep. 2009} % Period {Jun. 2008 - Sep. 2009} % Period
{\begin{cvitems} % Description(s) of tasks/responsibilities {\begin{cvitems} % Description(s) of tasks/responsibilities
\item{System Administration for Windows server 2008 \item{Windows Server 2008 administration (Domain/User Management), workstation support, VoIP equipment setup and maintenance}
\begin{itemize}
\item{Domain Management}
\item{User Management}
\end{itemize}
}
\item{System Administration for Windows workstation}
\begin{itemize}
\item{users setup on client side (user deploy enrollment)}
\item{data backup, restore and recovery}
\end{itemize}
\item{Computers and other office equipment repair and maintainance (printers, print servers, copy machines)}
\item{VoIP equipment setup and maintenance for internal communication}
\end{cvitems}} \end{cvitems}}
%--------------------------------------------------------- %---------------------------------------------------------
@ -160,26 +179,8 @@
{Bucharest, Romania} % Location {Bucharest, Romania} % Location
{Oct. 2005 - May. 2008} % Period {Oct. 2005 - May. 2008} % Period
{\begin{cvitems} % Description(s) of tasks/responsibilities {\begin{cvitems} % Description(s) of tasks/responsibilities
\item{Managing network infrastructure teams on projects for UPC (Astral Telecom) \item{Led network infrastructure teams for UPC (Astral Telecom) projects: task organization, workflow management, quality control, and technical escalation}
\begin{itemize} \item{Hands-on network deployment: Optical Fiber soldering, CATV/UTP cabling, multi-OS client setups, Linux server configuration (DHCP, iptables)}
\item{Receiving project tasks from UPC}
\item{Organising tasks among the specialised teams}
\item{Managing the workflow for high efficiency}
\item{Quality control after each task was completed}
\item{Reporting back to UPC about both completed and in progress tasks}
\item{Analysing (system/technological) situations which exceed the competence of the team and forwarding the issues towards the relevant higher level departments}
\item{Managing working materials for the teams}
\item{Participating in meetings concerning the infrastructure expansion and our role in it}
\end{itemize}
}
\item{Hands-on cabling and network configuration for UPC and own clients of Macsys-Conectix
\begin{itemize}
\item{Optical Fiber soldering, Cabling CATV, UTP}
\item{Client side network setup for different OSes (Windows, Linux, MacOS)}
\item{Server side network setup for Linux (DHCP, iptables)}
\item{Network Troubleshooting}
\end{itemize}
}
\end{cvitems}} \end{cvitems}}
%--------------------------------------------------------- %---------------------------------------------------------

View File

@ -11,34 +11,40 @@
% Skills % Skills
%--------------------------------------------------------- %---------------------------------------------------------
\cvskill{Comfortable Linux Distros} % Category \cvskill{Comfortable Linux Distros} % Category
{ArchLinux, Debian, RedHat} {ArchLinux, Debian}
%--------------------------------------------------------- %---------------------------------------------------------
\cvskill{Shells} % Category \cvskill{Shells} % Category
{Bash, Zsh, Fish} % Skills {Bash, Zsh, Fish} % Skills
%--------------------------------------------------------- %---------------------------------------------------------
\cvskill{Scripting} % Category \cvskill{Scripting} % Category
{Perl, Shell, JavaScript} % Skills {Bash, Python, Perl, JavaScript} % Skills
%---------------------------------------------------------
\cvskill{Databases} % Category
{MySQL/MariaDB, PostgreSQL, Elasticsearch} % Skills
%---------------------------------------------------------
\cvskill{Networking \& VPN} % Category
{OpenVPN, Tinc VPN, PowerDNS, BIND, VLANs, DHCP} % Skills
%---------------------------------------------------------
\cvskill{Storage \& Filesystems} % Category
{ZFS, LVM, RAID} % Skills
%--------------------------------------------------------- %---------------------------------------------------------
\cvskill{Monitoring} % Category \cvskill{Monitoring} % Category
{Nagios, Monit, Zabbix} % Skills {Zabbix, Nagios, Monit} % Skills
%--------------------------------------------------------- %---------------------------------------------------------
\cvskill{DevOps Tools} % Category \cvskill{DevOps Tools} % Category
{Docker, Git, .deb Packaging} % Skills {Docker, Git, Ansible, .deb/.rpm Packaging} % Skills
%---------------------------------------------------------
\cvskill{High Availability} % Category
{Keepalived, MySQL Replication, Failover} % Skills
%--------------------------------------------------------- %---------------------------------------------------------
\cvskill{Markup} % Category \cvskill{Markup} % Category
{Markdown, HTML, CSS, {\fontfamily{lmr}\selectfont{\LaTeX}}} % Skills {Markdown, HTML, CSS, {\fontfamily{lmr}\selectfont{\LaTeX}}} % Skills
%--------------------------------------------------------- %---------------------------------------------------------
\cvskill{Virtualization} % Category \cvskill{Virtualization} % Category
{KVM, Citrix-Xen, VmWare, Proxmox} % Skills {Proxmox, KVM, Citrix-Xen, VmWare} % Skills
%--------------------------------------------------------- %---------------------------------------------------------
\cvskill{2D Graphics} % Category \cvskill{Cloud \& Hosting} % Category
{Krita, Inkscape, Adobe Photoshop, Adobe Illustrator, Corel Draw} % Skills {Hetzner, Azure, AWS} % Skills
%---------------------------------------------------------
\cvskill{3D Graphics} % Category
{Blender} % Skills
%---------------------------------------------------------
\cvskill{CADesign} % Category
{FreeCAD, KiCad} % Skills
%--------------------------------------------------------- %---------------------------------------------------------
\cvskill{Spoken} % Category \cvskill{Spoken} % Category
{Romanian, English} % Skills {Romanian, English} % Skills