2021
2021 was the moment when technology stopped being just a tool for me and became a passion.
Hardware
This was the year when I seriously began my adventure with technology. Back then, I focused mainly on hardware:
-
In the middle of the GPU market crisis, I built my own workstation. With minor modifications (replacing faulty RAM, GPU upgrade), it has been serving me reliably ever since.
-
I migrated a laptop system from an HDD to an SSD.
- This optimized the boot time from 1:50 min down to 15 seconds.
- Fun fact: I cloned the drives directly via SATA, without using any dedicated cloning hardware.
2023
In 2023, I started my education at a technical high school with a profile in Software Development. This was the catalyst for learning professional programming languages like JavaScript and PHP.
First Code
CRUDFundamentals: My first projects focused on understanding communication between the frontend and the database.- Application Logic Basics: Learning how to handle sessions and basic data operations.
<?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>Task ID:</th>
<th>Task Description:</th>
<th>Date Created:</th>
<th>Deadline:</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>The table is empty.</b>";
}
$result->close();
} else {
$_SESSION = "Invalid query.";
}
$connect->close();
}Beginnings of Administration and Hosting
Parallel to learning programming, I began exploring service maintenance. My "testing grounds" were Minecraft servers that I hosted for friends.
These humble beginnings in the Windows CMD were the direct impulse for my later transition to Linux, Docker containerization, and ultimately building my own Proxmox-based homelab.
2024
2024 marked a breakthrough in my approach. I realized that code doesn't exist in a vacuum; it’s just one piece of a larger puzzle. Experiences with hosting game servers on Windows showed me that I needed professional tools for management and application hosting.
Homelab
- I deployed my first virtualization server based on Proxmox VE, creating my first homelab.
- I took my first steps in network configuration (VLANs, Subnets, Port Forwarding, etc.).
Organization of Work
I learned to work with Git. Moving my projects to GitHub forced me to focus on cleaner code and documenting changes.
Developing Programming Skills
Along with the shift in perspective, I started paying more attention to code quality and project structure. My applications stopped being one-off scripts and began to resemble cohesive, scalable systems.
An example is one of my projects from this period - a web application for creating and managing quizzes:
2025
2025 was a year of consolidation - I focused on organizing my knowledge and confirming it in practice.
Vocational Exam
INF.03 Exam: I achieved a 97% score on the practical exam, which served as formal confirmation of my skills.
Projects
- Better Environment Configuration: I started using the Dotenv library in PHP projects, allowing for better project organization and separation of sensitive data.
<?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'] = "Server error.";
file_put_contents('../logs/error.log', date("Y-m-d H:i:s - ") . $e->getMessage() . PHP_EOL, FILE_APPEND | LOCK_EX);
}- Security: I conducted an audit of my own projects. This is when I eliminated vulnerabilities, such as securing
.envfiles using.htaccess.
RewriteEngine On
RewriteRule (^|/)\.env$ - [F,L]- Conventional Commits: As the number of maintained projects grew, I implemented the semantic commit standard to ensure better change documentation.
2026
Currently, my development focuses on combining programming skills with advanced systems administration.
Homelab Evolution
Currently, I am expanding my homelab infrastructure, focusing on automation, backups, and service security.
What I've changed in 2026:
- Added a second node running
Proxmox Backup Serverand configured an optimal backup system. - Automated Docker service updates using
Renovate, following GitOps methodology. I configuredRenovateto automatically open Pull Requests for Docker image tag updates. Meanwhile, I refactoreddocker-compose.ymlfiles, migrating named volumes to bind mounts for better data organization. - Improved the monitoring system by deploying
Pulse, reconfiguringBetterStack, and refining the email notification system. - Fine-tuned firewall rules for critical machines.
You can find a detailed description of these deployments in my homelab overview.
Other Achievements
- Completed the Red Hat System Administration II (RH134 - RHA) - Ver. 10 and Red Hat System Administration I (RH124 - RHA) - Ver. 10 course courses, which helped me solidify my Linux fundamentals.
- Organized my GitHub projects by creating dedicated organizations for homelab-related projects and archived projects.
- Completed the Sizal.pl project.
- Helped in securing the Breachlab.org infrastructure for
LPE0-day exploit - Dirty Frag: From Linux Kernel 0-day Analysis to Production Mitigation.
Summary
Through these years, I transitioned from working with hardware to writing simple apps, and eventually to designing and maintaining my own infrastructure.








