From 7b488d4a66adea46b4cbc103996bca6c7bf2d4f4 Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Tue, 10 Feb 2026 18:11:28 +0100 Subject: [PATCH] Make the CV great again Signed-off-by: Nikolai Rodionov --- css/nord_dark.css | 144 ++++++++++++++++++++++++++++++++++++ css/nord_light.css | 144 ++++++++++++++++++++++++++++++++++++ css/spacing.css | 180 +++++++++++++++++++++++++++++++++++++++++++++ english/index.md | 30 +++++++- package-lock.json | 58 +++++++-------- package.json | 2 +- 6 files changed, 524 insertions(+), 34 deletions(-) create mode 100644 css/nord_dark.css create mode 100644 css/nord_light.css create mode 100644 css/spacing.css diff --git a/css/nord_dark.css b/css/nord_dark.css new file mode 100644 index 0000000..2847f4d --- /dev/null +++ b/css/nord_dark.css @@ -0,0 +1,144 @@ +/* =============================== + Nord Dark – Compact Markdown + github-markdown-css compatible + =============================== */ + +.markdown-body { + background: #2E3440; + color: #D8DEE9; + font-family: "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; + font-size: 15px; + line-height: 1.55; + padding: 0.9rem; +} + +/* Headings – compact, no underline */ +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + border: none; + margin-top: 1.2em; + margin-bottom: 0.4em; + font-weight: 700; + color: #ECEFF4; +} + +.markdown-body h1 { font-size: 1.9em; } +.markdown-body h2 { font-size: 1.6em; } +.markdown-body h3 { font-size: 1.35em; } +.markdown-body h4 { font-size: 1.15em; } +.markdown-body h5 { font-size: 1.02em; } +.markdown-body h6 { font-size: 0.95em; color: #D8DEE9; } + +/* Text */ +.markdown-body p { + margin: 0.55em 0; +} + +.markdown-body strong { color: #ECEFF4; } +.markdown-body em { color: #E5E9F0; } + +/* Links */ +.markdown-body a { + color: #88C0D0; + text-decoration: none; + border-bottom: 1px dotted #81A1C1; +} + +.markdown-body a:hover { + color: #8FBCBB; + border-bottom-style: solid; +} + +/* Inline + block code */ +.markdown-body code { + background: #3B4252; + color: #EBCB8B; + padding: 0.1em 0.3em; + border-radius: 3px; + font-size: 0.92em; +} + +.markdown-body pre { + background: #3B4252; + color: #ECEFF4; + padding: 0.75em 0.9em; + border-radius: 5px; + overflow-x: auto; + border-left: 3px solid #81A1C1; + margin: 0.7em 0; +} + +.markdown-body pre code { + background: none; + padding: 0; +} + +/* Blockquotes */ +.markdown-body blockquote { + margin: 0.7em 0; + padding: 0.4em 0.8em; + border-left: 3px solid #8FBCBB; + background: #3B4252; + color: #D8DEE9; + font-style: italic; +} + +/* Lists */ +.markdown-body ul, +.markdown-body ol { + padding-left: 1.3em; + margin: 0.5em 0; +} + +.markdown-body ul li::marker, +.markdown-body ol li::marker { + color: #88C0D0; +} + +/* Horizontal rule */ +.markdown-body hr { + border: none; + border-top: 1px dashed #4C566A; + margin: 1.2em 0; +} + +/* Tables */ +.markdown-body table { + border-collapse: collapse; + width: 100%; + margin: 0.7em 0; + font-size: 0.92em; +} + +.markdown-body th, +.markdown-body td { + border: 1px solid #4C566A; + padding: 0.35em 0.6em; +} + +.markdown-body th { + background: #3B4252; + color: #ECEFF4; +} + +.markdown-body tr:nth-child(even) td { + background: #434C5E; +} + +/* Images */ +.markdown-body img { + max-width: 100%; + background: #3B4252; + border: 1px solid #4C566A; + padding: 0.2em; + border-radius: 3px; +} + +/* Hide GitHub anchor icons */ +.markdown-body a.anchor { + display: none; +} diff --git a/css/nord_light.css b/css/nord_light.css new file mode 100644 index 0000000..0b73358 --- /dev/null +++ b/css/nord_light.css @@ -0,0 +1,144 @@ +/* =============================== + Nord Light – Compact Markdown + github-markdown-css compatible + =============================== */ + +.markdown-body { + background: #ECEFF4; + color: #2E3440; + font-family: "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; + font-size: 15px; + line-height: 1.55; + padding: 0.9rem; +} + +/* Headings – compact, no underline */ +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + border: none; + margin-top: 1.2em; + margin-bottom: 0.4em; + font-weight: 700; + color: #3B4252; +} + +.markdown-body h1 { font-size: 1.9em; } +.markdown-body h2 { font-size: 1.6em; } +.markdown-body h3 { font-size: 1.35em; } +.markdown-body h4 { font-size: 1.15em; } +.markdown-body h5 { font-size: 1.02em; } +.markdown-body h6 { font-size: 0.95em; color: #4C566A; } + +/* Text */ +.markdown-body p { + margin: 0.55em 0; +} + +.markdown-body strong { color: #2E3440; } +.markdown-body em { color: #4C566A; } + +/* Links */ +.markdown-body a { + color: #5E81AC; + text-decoration: none; + border-bottom: 1px dotted #81A1C1; +} + +.markdown-body a:hover { + color: #81A1C1; + border-bottom-style: solid; +} + +/* Inline + block code */ +.markdown-body code { + background: #E5E9F0; + color: #BF616A; + padding: 0.1em 0.3em; + border-radius: 3px; + font-size: 0.92em; +} + +.markdown-body pre { + background: #E5E9F0; + color: #2E3440; + padding: 0.75em 0.9em; + border-radius: 5px; + overflow-x: auto; + border-left: 3px solid #88C0D0; + margin: 0.7em 0; +} + +.markdown-body pre code { + background: none; + padding: 0; +} + +/* Blockquotes */ +.markdown-body blockquote { + margin: 0.7em 0; + padding: 0.4em 0.8em; + border-left: 3px solid #81A1C1; + background: #E5E9F0; + color: #4C566A; + font-style: italic; +} + +/* Lists */ +.markdown-body ul, +.markdown-body ol { + padding-left: 1.3em; + margin: 0.5em 0; +} + +.markdown-body ul li::marker, +.markdown-body ol li::marker { + color: #5E81AC; +} + +/* Horizontal rule */ +.markdown-body hr { + border: none; + border-top: 1px dashed #D8DEE9; + margin: 1.2em 0; +} + +/* Tables */ +.markdown-body table { + border-collapse: collapse; + width: 100%; + margin: 0.7em 0; + font-size: 0.92em; +} + +.markdown-body th, +.markdown-body td { + border: 1px solid #D8DEE9; + padding: 0.35em 0.6em; +} + +.markdown-body th { + background: #E5E9F0; + color: #3B4252; +} + +.markdown-body tr:nth-child(even) td { + background: #ECEFF4; +} + +/* Images */ +.markdown-body img { + max-width: 100%; + background: #E5E9F0; + border: 1px solid #D8DEE9; + padding: 0.2em; + border-radius: 3px; +} + +/* Hide GitHub anchor icons */ +.markdown-body a.anchor { + display: none; +} diff --git a/css/spacing.css b/css/spacing.css new file mode 100644 index 0000000..8d6dadb --- /dev/null +++ b/css/spacing.css @@ -0,0 +1,180 @@ +.markdown-body { + font-family: "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; + font-size: 16px; + line-height: 1.65; + padding: 1.25rem; +} + +/* ------------------------------- + Headings (no underline) + ------------------------------- */ +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + border: none; + margin-top: 1.6em; + margin-bottom: 0.6em; + font-weight: 700; +} + +.markdown-body h1 { font-size: 2em; } +.markdown-body h2 { font-size: 1.7em; } +.markdown-body h3 { font-size: 1.4em; } +.markdown-body h4 { font-size: 1.2em; } +.markdown-body h5 { font-size: 1.05em; } +.markdown-body h6 { font-size: 1em; } + +/* ------------------------------- + Text + ------------------------------- */ +.markdown-body p { + margin: 0.75em 0; +} + +.markdown-body strong { + color: #ECEFF4; +} + +.markdown-body em { + color: #E5E9F0; +} + +/* ------------------------------- + Links + ------------------------------- */ +.markdown-body a { + color: #88C0D0; /* nord8 */ + text-decoration: none; + border-bottom: 1px dotted #81A1C1; +} + +.markdown-body a:hover { + color: #8FBCBB; /* nord7 */ + border-bottom-style: solid; +} + +/* ------------------------------- + Inline + Block Code + ------------------------------- */ +.markdown-body code { + background: #3B4252; /* nord1 */ + color: #EBCB8B; /* nord13 */ + padding: 0.15em 0.35em; + border-radius: 3px; + font-size: 0.95em; +} + +.markdown-body pre { + background: #3B4252; + color: #ECEFF4; + padding: 1em; + border-radius: 6px; + overflow-x: auto; + border-left: 4px solid #81A1C1; /* nord9 */ +} + +.markdown-body pre code { + background: none; + padding: 0; + color: inherit; +} + +/* ------------------------------- + Blockquotes + ------------------------------- */ +.markdown-body blockquote { + margin: 1em 0; + padding: 0.6em 1em; + border-left: 4px solid #8FBCBB; /* nord7 */ + background: #3B4252; + color: #D8DEE9; + font-style: italic; +} + +/* ------------------------------- + Lists + ------------------------------- */ +.markdown-body ul, +.markdown-body ol { + padding-left: 1.6em; + margin: 0.8em 0; +} + +.markdown-body ul li::marker { + color: #88C0D0; +} + +.markdown-body ol li::marker { + color: #88C0D0; + font-weight: bold; +} + +/* ------------------------------- + Horizontal Rule + ------------------------------- */ +.markdown-body hr { + border: none; + border-top: 1px dashed #4C566A; /* nord3 */ + margin: 2em 0; +} + +/* ------------------------------- + Tables + ------------------------------- */ +.markdown-body table { + border-collapse: collapse; + width: 100%; + margin: 1em 0; + font-size: 0.95em; +} + +.markdown-body th, +.markdown-body td { + border: 1px solid #4C566A; + padding: 0.5em 0.75em; +} + +.markdown-body th { + background: #3B4252; + color: #ECEFF4; +} + +.markdown-body tr:nth-child(even) td { + background: #434C5E; /* nord2 */ +} + +/* ------------------------------- + Images + ------------------------------- */ +.markdown-body img { + max-width: 100%; + background: #3B4252; + border: 1px solid #4C566A; + padding: 0.25em; + border-radius: 4px; +} + +/* ------------------------------- + Anchor links (hide GitHub icons) + ------------------------------- */ +.markdown-body a.anchor { + display: none; +} + +/* ------------------------------- + Print / PDF safety + ------------------------------- */ +@media print { + .markdown-body { + background: #ffffff; + color: #000000; + } + + a { + color: #000000; + border: none; + } +} diff --git a/english/index.md b/english/index.md index 8ca1a35..ab446fd 100644 --- a/english/index.md +++ b/english/index.md @@ -1,10 +1,12 @@ --- pdf_options: format: a4 - margin: 20mm 10mm + margin: 0mm 0mm printBackground: true + stylesheet: - - https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.5.1/github-markdown.css + - ./css/nord_dark.css + body_class: markdown-body css: |- .markdown-body { @@ -13,17 +15,37 @@ css: |- .page-break { page-break-after: always; } --- -## Nikolai Rodionov +# Nikolai Rodionov +## Senior DevOps Engineer + ``` > Location: Hamburg, Germany > Email: allanger@zohomail.com +> Phone: 4915223284008 > Github: https://github.com/allanger ``` ### About me -I'm a DevOps engineer with almost 10 years of hands-on experience. I've been mostly focused on Kubernetes and CI/CD pipelines, but it doesn't mean that I would like to avoid tasks in other areas. +I'm a DevOps/Platform engineer with 9 years of hands-on experience mainly with **Kubernetes** and **CI/CD Pipelines**, but also in different areas like **Database Administration**, **Data Streaming**, **Developer Support**, **Server Maintenance**, etc. + +### Tooling + +- **Environments**: Linux - Containers - Kubernetes - Proxmox +- **Scripting/Coding**: Bash - Go - Rust - Perl - Python +- **Kubernetes**: Helm - Helmfile - Kustomize - Cluster API +- **Service Meshes**: Istio - Linkerd +- **Continuous Integration**: Gitlab-CI - Github Actions - Circle-CI - Woodpecker-CI - Drone-CI +- **Continuous Delivery**: ArgoCD - Flux - Tekton +- **Infrastructure as Code**: Ansible - Terraform - Opentofu +- **Cloud Providers**: Microsoft Azure - Google Cloud - AWS - Hetzner +- **Observability**: Prometheus - Mimir - Grafana - Loki - Elasticsearch - Kibana - FluentBit - Promtail - Fluentd - Grafana Alloy - Faro - Tempo +- **Databases**: PostgreSQL - MySQL - Percona MySQL - Redis - Mongo - Dragonfly +- **Storages**: Minio - Ceph - Longhorn +- **Secret Management**: Sops - Age - Helm Secrets - Hashicorp Vault +- **Others**: Kafka - RabbitMQ - Selenium - Selenoid - Kyverno - K3s - Kubeadm + A couple of interesting tasks, that I've been working on: diff --git a/package-lock.json b/package-lock.json index 4b9632d..1e3a139 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "ISC", "dependencies": { "markdown-spellcheck": "^1.3.1", - "md-to-pdf": "^5.2.4" + "md-to-pdf": "^5.2.5" } }, "node_modules/@babel/code-frame": { @@ -37,9 +37,9 @@ } }, "node_modules/@puppeteer/browsers": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.11.2.tgz", - "integrity": "sha512-GBY0+2lI9fDrjgb5dFL9+enKXqyOPok9PXg/69NVkjW3bikbK9RQrNrI3qccQXmDNN7ln4j/yL89Qgvj/tfqrw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.12.0.tgz", + "integrity": "sha512-Xuq42yxcQJ54ti8ZHNzF5snFvtpgXzNToJ1bXUGQRaiO8t+B6UM8sTUJfvV+AJnqtkJU/7hdy6nbKyA12aHtRw==", "license": "Apache-2.0", "dependencies": { "debug": "^4.4.3", @@ -84,9 +84,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.2.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.0.tgz", - "integrity": "sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.3.tgz", + "integrity": "sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ==", "license": "MIT", "optional": true, "dependencies": { @@ -513,9 +513,9 @@ } }, "node_modules/chromium-bidi": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-13.0.1.tgz", - "integrity": "sha512-c+RLxH0Vg2x2syS9wPw378oJgiJNXtYXUvnVAldUlt5uaHekn0CCU7gPksNgHjrH1qFhmjVXQj4esvuthuC7OQ==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-13.1.1.tgz", + "integrity": "sha512-zB9MpoPd7VJwjowQqiW3FKOvQwffFMjQ8Iejp5ZW+sJaKLRhZX1sTxzl3Zt22TDB4zP0OOqs8lRoY7eAW5geyQ==", "license": "Apache-2.0", "dependencies": { "mitt": "^3.0.1", @@ -852,9 +852,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1551306", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1551306.tgz", - "integrity": "sha512-CFx8QdSim8iIv+2ZcEOclBKTQY6BI1IEDa7Tm9YkwAXzEWFndTEzpTo5jAUhSnq24IC7xaDw0wvGcm96+Y3PEg==", + "version": "0.0.1566079", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1566079.tgz", + "integrity": "sha512-MJfAEA1UfVhSs7fbSQOG4czavUp1ajfg6prlAN0+cmfa2zNjaIbvq8VneP7do1WAQQIvgNJWSMeP6UyI90gIlQ==", "license": "BSD-3-Clause" }, "node_modules/dunder-proto": { @@ -2644,17 +2644,17 @@ } }, "node_modules/puppeteer": { - "version": "24.36.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.36.1.tgz", - "integrity": "sha512-uPiDUyf7gd7Il1KnqfNUtHqntL0w1LapEw5Zsuh8oCK8GsqdxySX1PzdIHKB2Dw273gWY4MW0zC5gy3Re9XlqQ==", + "version": "24.37.2", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.37.2.tgz", + "integrity": "sha512-FV1W/919ve0y0oiS/3Rp5XY4MUNUokpZOH/5M4MMDfrrvh6T9VbdKvAHrAFHBuCxvluDxhjra20W7Iz6HJUcIQ==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.11.2", - "chromium-bidi": "13.0.1", + "@puppeteer/browsers": "2.12.0", + "chromium-bidi": "13.1.1", "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1551306", - "puppeteer-core": "24.36.1", + "devtools-protocol": "0.0.1566079", + "puppeteer-core": "24.37.2", "typed-query-selector": "^2.12.0" }, "bin": { @@ -2665,15 +2665,15 @@ } }, "node_modules/puppeteer-core": { - "version": "24.36.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.36.1.tgz", - "integrity": "sha512-L7ykMWc3lQf3HS7ME3PSjp7wMIjJeW6+bKfH/RSTz5l6VUDGubnrC2BKj3UvM28Y5PMDFW0xniJOZHBZPpW1dQ==", + "version": "24.37.2", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.37.2.tgz", + "integrity": "sha512-nN8qwE3TGF2vA/+xemPxbesntTuqD9vCGOiZL2uh8HES3pPzLX20MyQjB42dH2rhQ3W3TljZ4ZaKZ0yX/abQuw==", "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.11.2", - "chromium-bidi": "13.0.1", + "@puppeteer/browsers": "2.12.0", + "chromium-bidi": "13.1.1", "debug": "^4.4.3", - "devtools-protocol": "0.0.1551306", + "devtools-protocol": "0.0.1566079", "typed-query-selector": "^2.12.0", "webdriver-bidi-protocol": "0.4.0", "ws": "^8.19.0" @@ -2833,9 +2833,9 @@ } }, "node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "license": "ISC", "bin": { "semver": "bin/semver.js" diff --git a/package.json b/package.json index 44e4877..464c7e3 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,6 @@ "license": "ISC", "dependencies": { "markdown-spellcheck": "^1.3.1", - "md-to-pdf": "^5.2.4" + "md-to-pdf": "^5.2.5" } }