My Story

My journey from hardware maintenance and writing simple apps to designing and maintaining my own infrastructure.

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

  • CRUD Fundamentals: 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 .env files 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 Server and configured an optimal backup system.
  • Automated Docker service updates using Renovate, following GitOps methodology. I configured Renovate to automatically open Pull Requests for Docker image tag updates. Meanwhile, I refactored docker-compose.yml files, migrating named volumes to bind mounts for better data organization.
  • Improved the monitoring system by deploying Pulse, reconfiguring BetterStack, 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

Summary

Through these years, I transitioned from working with hardware to writing simple apps, and eventually to designing and maintaining my own infrastructure.