Data Engineer at Nokia and Systems Engineering student at Wrocław University of Science and Technology.
I build data pipelines and the infrastructure they run on. Currently focused on RAG & LLM systems, MLOps, platform engineering and my homelab.
LinkedIn · mikolaj.lepsy@gmail.com
PM Generator (Nokia Wrocław) Generative pipeline for synthetic telecom Performance Management (KPI) data.
- PySpark preprocessing: gap imputation, KPI coverage filtering, greedy joint KPI selection, windowing of multivariate time series into training tensors
- Generative models (CVAE / LSTM) for multivariate KPI time series
- Orchestration with Airflow 3, FastAPI backend, Vue 3 UI for DAG management, fully Dockerized with devcontainers
Graph databases (Nokia) Data engineering work with ArcadeDB and ArangoDB: loading and querying graph data from PySpark pipelines.
Knowledge elicitation for RAG (engineering thesis, in progress) Pipeline that captures tacit expert knowledge and feeds it into RAG systems.
MusicaBI BI dashboard for music and artist data. End-to-end ETL with dlt, orchestrated in Airflow, deployed with Docker Compose, with tests.
factorio-RL-TowerDefense
Custom RL environment (TowerDefenseEnv) on top of the Factorio Learning Environment, where an agent defends a central radar against escalating enemy attacks by placing, supplying and managing turrets across ~20 perimeter slots.
- Environment: Dockerized headless Factorio servers driven over RCON, Lua server-side scripting, Gym-compatible Python wrapper (works with Stable-Baselines3, CleanRL, RLlib)
- Action space: ~81 discrete actions (move, place, pick up, resupply) with action masking; timing constraints solved analytically in the mask instead of learned
- Observations: dict space with obstacle and threat grids, per-slot turret features (ammo, health, threat, travel cost, coverage) and global state
- Model: MaskablePPO with a custom CNN + MLP feature extractor; next step is PPO-LSTM with a Deep Sets slot encoder
path_finders_comp Interactive Dijkstra vs A* comparison on user-drawn maps (pygame).
Homelab (in progress) Always-on home server, Tailscale networking, Wake-on-LAN and multi-hop SSH access to my workstation.
University testing course project, done as a two-person team on a fork of NoteDiscovery, an actively maintained FastAPI app with no existing test suite.
- Unit and integration tests with pytest, run in GitHub Actions
- End-to-end browser tests with Playwright, plus structured user testing
- Contributing the useful parts back upstream as small, separate pull requests
- Dimensional modelling (Kimball): star and snowflake schemas, fact and dimension design, slowly changing dimensions (SCD types)
- ETL vs ELT pipeline design, data warehouse layering
- Applied end to end in MusicaBI: ingestion with dlt, orchestration in Airflow
Containers & environments: Docker, Docker Compose, devcontainers, multi-user Linux VMs
CI/CD: GitLab CI, GitHub Actions
Code quality: uv for dependency management, Ruff, MyPy, pre-commit hooks, pytest
Infra & networking: Linux (Ubuntu), Tailscale, SSH tunnelling, self-hosted services


