2021
Rok 2021 to moment, w którym technologia przestała być dla mnie tylko narzędziem, a stała się pasją.
Sprzęt
2021 to rok, w którym na poważnie zacząłem moją przygodę z technologią. Zajmowałem się wtedy głównie sprzętem:
-
W samym środku kryzysu na rynku kart graficznych złożyłem stację roboczą. Z drobnymi modyfikacjami (wymiana uszkodzonego RAM-u, upgrade GPU) służy mi ona bezawaryjnie do dziś.
-
W laptopie zmigrowałem system z dysku HDD na SSD.
- Pozwoliło to na optymalizację czasu uruchomienia z 1:50 min do 15 sekund.
- Ciekawostka: Dyski klonowałem bezpośrednio przez SATA, bez dedykowanego sprzętu.
2023
W 2023 roku rozpocząłem naukę w technikum na profilu Technik programista. Było to impulsem do nauki profesjonalnych języków programowania takich jak JavaScript czy PHP.
Pierwszy kod
- Podstawy
CRUD: moje pierwsze projekty skupiały się na zrozumieniu komunikacji między frontendem a bazą danych. - Podstawy logiki aplikacji: nauka obsługi sesji i podstawowych operacji na danych.
<?php
session_start();
require_once "dbconnect.php";
$connect = new mysqli($host, $user, $pass, $name);
if ($connect->connect_error) {
$_SESSION = "Error: " . $connect->connect_errno;
} else {
$query = "SELECT * FROM zadania";
if ($result = $connect->query($query)) {
if ($result->num_rows > 0) {
echo "<table>";
echo "<tr>
<th>ID. Zadania:</th>
<th>Opis zadania:</th>
<th>Data utworzenia:</th>
<th>Termin zadania:</th>
</tr>";
while ($row = $result->fetch_assoc()) {
echo "<tr>
<td>" . $row["idzadania"] . "</td>
<td>" . $row["zadanie"] . "</td>
<td>" . $row["data_zapisu"] . "</td>
<td>" . $row["termin"] . "</td>
</tr>";
}
echo "</table>";
} else {
echo "<b>Tabela jest pusta.</b>";
}
$result->close();
} else {
$_SESSION = "Nieprawidłowa kwerenda.";
}
$connect->close();
}Początki administracji i hostingu
Równolegle z nauką programowania, zacząłem zgłębiać temat utrzymania usług. Moim poligonem doświadczalnym były serwery Minecraft, które hostowałem dla znajomych.
Te skromne początki w Windowsowym CMD były bezpośrednim impulsem do późniejszego przejścia na Linuxa, konteneryzację w Dockerze i ostatecznie do zbudowania własnego homelabu opartego na Proxmoxie.
2024
W 2024 roku nastąpił przełom w moim podejściu. Zrozumiałem, że kod nie istnieje w próżni, tylko jest jednym z elementów większej układanki. Doświadczenia z hostowaniem serwerów gier na Windowsie pokazały mi, że potrzebuję profesjonalnych narzędzi do zarządzania i hostowania aplikacji.
Homelab
- Wdrożyłem pierwszy serwer wirtualizacji oparty na
Proxmox VE, tworząc tym samym pierwszy homelab.
- Poczyniłem pierwsze kroki w konfigurowaniu sieci (VLAN-y, Podsieci, Port Forwarding, itp.).
Organizacja pracy
Nauczyłem się pracować z systemem Git. Przeniesienie projektów na GitHub wymusiło na mnie naukę czystszego kodu oraz dokumentowania zmian.
Rozwój umiejętności programistycznych
Wraz ze zmianą podejścia zacząłem również zwracać większą uwagę na jakość kodu i strukturę projektów. Moje aplikacje przestały być jednorazowymi skryptami, a zaczęły przypominać spójne, rozwijalne systemy.
Przykładem jest jeden z projektów z tego okresu - aplikacja internetowa do tworzenia i zarządzania quizami:
2025
Rok 2025 był spokojniejszy - skupiłem się na uporządkowaniu wiedzy i potwierdzeniu jej w praktyce.
Egzamin zawodowy
Egzamin INF.03: uzyskałem 97% z egzaminu praktycznego, co było formalnym potwierdzeniem moich umiejętności.
Projekty
- Lepsza konfiguracja środowiska: zacząłem wykorzystywać bibliotekę
Dotenvw projektachPHP, co pozwoliło na lepszą strukturę organizacyjną projektu i separację danych wrażliwych.
<?php
session_start();
require "../vendor/autoload.php";
use Dotenv\Dotenv;
$dotenv = Dotenv::createImmutable("../");
$dotenv->load();
try{
$connect = new mysqli($_ENV['DB_HOST'], $_ENV['DB_USER'], $_ENV['DB_PASS'], $_ENV['DB_NAME']);
if($connect->connect_error){
throw new Exception();
} else {
$query = "SELECT * FROM accounts";
if($result = $connect->query($query)){
if($result->num_rows != 0){
header('Location: /');
$result->free();
$connect->close();
exit();
}
$result->free();
} else {
throw new Exception();
}
$connect->close();
}
} catch (Exception $e){
$_SESSION['login_error'] = "Błąd serwera.";
file_put_contents('../logs/error.log', date("Y-m-d H:i:s - ") . $e->getMessage() . PHP_EOL, FILE_APPEND | LOCK_EX);
}- Bezpieczeństwo: przeprowadziłem audyt własnych projektów. To wtedy wyeliminowałem błędy takie jak brak zabezpieczenia plików
.envprzez.htaccess.
RewriteEngine On
RewriteRule (^|/)\.env$ - [F,L]- Conventional Commits: wraz z rosnącą liczbą utrzymywanych projektów, wdrożyłem standard semantycznych commitów w celu lepszej dokumentacji zmian.
2026
Obecnie mój rozwój koncentruje się na łączeniu umiejętności programistycznych z zaawansowaną administracją systemami.
Rozwój homelabu
Obecnie rozwijam własną infrastrukturę homelabową, skupiając się na automatyzacji, backupach i bezpieczeństwie usług.
Co zmieniłem w 2026:
- Dodałem drugiego node'a, na którym zainstalowałem
Proxmox Backup Serveri skonfigurowałem optymalny system backupów. - Zautomatyzowałem aktualizację usług w Dockerze z użyciem
Renovate, na wzór metodologiiGitOps. SkonfigurowałemRenovate, tak aby automatycznie otwierał Pull Requesty z aktualizacjami tagów obrazów Dockera. Przy okazji zrobiłem refactor plikówdocker-compose.ymlmigrując named volumes na bind mounty w celu uporządkowania danych. - Poprawiłem system monitorowania, poprzez wdrożenie
Pulse, rekonfigurację BetterStacka i dopracowanie systemu powiadomień mailowych. - Dopracowałem reguły firewalla dla krytycznych maszyn.
Szczegółowy opis tych wdrożeń znajdziesz w opisie mojego homelabu.
Pozostałe osiągnięcia
- Ukończyłem kursy Red Hat System Administration II (RH134 - RHA) - Ver. 10 i Red Hat System Administration I (RH124 - RHA) - Ver. 10, co pozwoliło mi na uzupełnienie fundamentów w pracy z Linuxem.
- Uporządkowałem projekty na GitHubie tworząc dedykowane organizacje na projekty powiązane z homelabem i projekty archiwalne.
- Ukończyłem projekt Sizal.pl.
- Pomogłem w zabezpieczeniu infrastruktury Breachlab.org przed exploitem 0-day typu
LPE- Dirty Frag: Od analizy podatności typu 0-day do mitygacji na produkcji.
Podsumowanie
Z czasem przeszedłem od pracy ze sprzętem, przez pisanie prostych aplikacji, do projektowania i utrzymania własnej infrastruktury.








