← Back to CV

Arseni Aliakseichyk

arseni.aliakseichyk@gmail.com LinkedIn GitHub Słupsk, Poland

Detailed project portfolio with technical deep-dives, media, and architecture details.
For a one-page summary, see my CV.

CyberGlove - IoT Smart Glove Platform

ESP32 Wearable for Gesture Control

Personal • 2025 – Present
In Active Development

CyberGlove is my flagship personal project - an IoT smart glove for real-time gesture recognition and control, in active development. Phase 1 (complete): firmware on ESP32 (C, ESP-IDF, FreeRTOS) with MPU-6050 (photo) → MPU-9250 → ICM-20948 (on order) IMU over SPI and custom fiber optic bend sensor via 12-bit ADC, streaming sensor data at 50 Hz over WebSocket to a live web dashboard. Hardware drafted schematically in KiCad 8 Schematic Editor, with perfboard layout planned in KiCad PCB Editor to keep hand-soldering clean and trace routing deliberate. Assembled on perfboard with hand-soldered SMD and through-hole components for comfortable iteration: ESP32-C3-Zero + IMU sensor node + full LiPo power chain (TP4056 USB-C charger → S9V11F3S5C3 buck-boost 3.3V regulator + SPDT power switch). KiCad here is used as a drafting and layout-planning tool - full multilayer PCB fabrication is an experiment I’m still exploring. The Phase 1 sensor node was validated in a real application - integrated into the robot platform as an IMU-based tilt controller, proving the hardware and firmware stack before moving to Phase 2. Phase 2 (in progress): adding fiber optic bend sensors on all five fingers via ADC for full finger curl detection, combined with IMU orientation - enabling full gesture recognition with planned TinyML inference on-device.

Key Features - Phase 1 (complete)

  • MPU-9250 9-DoF IMU over SPI (accelerometer + gyroscope + magnetometer)
  • Custom fiber optic bend sensor via ADC oneshot driver (12-bit resolution)
  • Real-time WebSocket telemetry at 50 Hz (JSON sensor data)
  • Schematic + perfboard layout in KiCad 8 (Schematic + PCB Editor), assembled on perfboard: ESP32-C3-Zero + MPU-9250 + LiPo power chain
  • LiPo power management: TP4056 USB-C charger + S9V11F3S5C3 buck-boost 3.3V
  • Wi-Fi STA mode with event-driven automatic reconnection
  • FreeRTOS task management for concurrent sensor reading and network I/O
  • Validated on robot platform as IMU tilt controller (UDP → Raspberry Pi)

Phase 2 (in progress)

  • Fiber optic bend sensors on 5 fingers via ADC
  • Full gesture recognition combining finger curl + IMU orientation
  • Planned TinyML on-device inference for custom gesture classification
  • C
  • ESP-IDF
  • FreeRTOS
  • SPI
  • ADC
  • ICM-20948
  • WebSocket
  • Wi-Fi
  • KiCad (Schematic)
  • Perfboard
  • LiPo Power

Robot Platform - Consumer Firmware

Zero-Configuration Robotic Control System

Personal • 2025
Complete

Post-internship personal project built on the robotic hardware developed at GlobalLogic Poland. The goal was to completely rethink the UX: the original firmware required technical setup, SSH access, and command-line knowledge. The new firmware requires nothing - user powers on the robot, connects to its Wi-Fi hotspot, navigates to the web control panel, and drives. No installation, no configuration, no technical knowledge needed. The entire stack - motor drivers, sensor polling, networking stack, web server, and MQTT broker client - is one multithreaded C11 program using pthreads, compiled as a single static binary. The project was demonstrated at a university open day as an example of what students can build.

Key Features

  • Single-process C11 firmware with pthreads: drivers, web server, MQTT client, ESP-NOW bridge, and networking in one binary
  • Wi-Fi hotspot mode on boot - robot becomes its own access point, accessible at a fixed local address without internet
  • Web-based control panel with joystick UI, speed sliders, and real-time status indicators (FWD OK / BWD OK, distance readout)
  • WebRTC video stream - low-latency FPV directly in the browser, no plugins required
  • MQTT as the primary REST-like control API - commands and telemetry flow through a local broker, clean subscribe/publish boundaries
  • ESP-NOW low-latency control channel - an ESP32-WROOM acts as the receiver and presents itself to the robot via USB CDC (serial COM), bypassing the Wi-Fi stack for time-critical commands
  • IMU-based tilt control - ESP32 sensor node (Phase 1 of CyberGlove) streams orientation; tilting the device steers the robot
  • Orientation radar visualization in the web UI showing live IMU data
  • Hotspot / client Wi-Fi switching from the web panel
  • Pilot mode and viewer mode - one controller, multiple observers
  • Ultrasonic distance displayed live in UI (HC-SR04, front and rear)

Planned next

  • Minimal custom Linux 6.x distribution trimmed to the essentials (no desktop, no package manager at runtime, only the services the robot needs) to push runtime efficiency and boot time as low as possible on the Raspberry Pi 5
  • C11
  • pthreads
  • Raspberry Pi 5
  • WebRTC
  • MQTT
  • ESP-NOW
  • ESP32
  • ESP-IDF
  • UDP
  • ESP32-WROOM
  • USB CDC
  • IMU
  • Linux 6.x
  • Wi-Fi Hotspot

GlobalLogic Robot - IoT Robotic Platform

Modular Robotic Platform on Raspberry Pi 5

GlobalLogic Poland • Jun – Oct 2025
Complete

During my internship at GlobalLogic Poland (Koszalin), I independently developed the motion control system, FPV video pipeline, and ultrasonic obstacle detection module for a modular robotic platform - working within an Agile/SCRUM team environment (Jira). The robot runs on a Raspberry Pi 5 with a C++17 multithreaded architecture where 5 concurrent threads handle different subsystems: motor PWM control, ultrasonic sensor polling, MQTT message handling, GStreamer video pipeline, and a FastAPI REST server. The entire stack was containerized with Docker Compose.

Key Features

  • C++17 multithreaded motion control (5 concurrent threads: motor PWM, sensor polling, MQTT listener, video pipeline, API server)
  • Real-time FPV video streaming via GStreamer (MJPEG over UDP, up to 1080p@60fps)
  • Ultrasonic obstacle detection (HC-SR04) with 20 cm threshold and hysteresis logic for noise rejection
  • FastAPI REST API with JWT authentication for remote robot control
  • Docker Compose deployment (FastAPI + Mosquitto MQTT + Redis)
  • Hailo AI neural processor integration for real-time human skeleton detection
  • C++17
  • Raspberry Pi 5
  • GStreamer
  • MQTT
  • FastAPI
  • Docker
  • CMake
  • Hailo AI

STM32F4 Peripheral Firmware Development

Register-Level Firmware on STM32F411 & STM32F407 via LL Drivers

Personal • 2024 – 2025
Complete

A collection of firmware projects on the STM32F4 family. The main working board is the STM32F411 (Nucleo / Black Pill class), chosen for its compact form factor and lower power draw. The STM32F407VGT6 Discovery was introduced to me during training at GlobalLogic Poland and is the board I use primarily as a learning platform for peripheral exploration.

My deliberate choice on both boards is the ST Low-Level (LL) driver library together with CMSIS - not HAL. STM32CubeMX is used only for the initial clock tree configuration (PLL setup, SYSCLK source, peripheral clock dividers); the generated project is stripped down to the LL headers + startup + linker script, and every peripheral from that point on is configured and driven directly from application code through LL calls. This gives register-level control and determinism without writing the full bit-banging boilerplate by hand.

Key Features

  • Boards: STM32F411 (main working board) and STM32F407VGT6 Discovery (GlobalLogic training / learning platform)
  • Driver stack: LL drivers + CMSIS from application code - no HAL abstraction layer in the runtime path
  • Toolchain: STM32CubeMX used only for clock init; builds via STM32CubeIDE / arm-none-eabi-gcc
  • GPIO configuration through LL + direct register access where useful
  • Timer-based PWM generation for motor and LED control via LL_TIM
  • NVIC interrupt handling for event-driven firmware
  • SPI, I2C, and UART peripheral communication via LL
  • ADC/DAC analog signal processing via LL
  • Hardware debugging with LA1010 logic analyzer and oscilloscope via JTAG/GDB
  • C
  • STM32F411
  • STM32F407
  • ARM Cortex-M4
  • LL drivers
  • CMSIS
  • CubeMX (clock init)
  • SPI
  • I2C
  • UART
  • ADC/DAC
  • NVIC

Real-Time Shape & Symbol Classifier

Edge ML Pipeline: PyTorch → ONNX → Raspberry Pi 5

Academic • 2025
Complete

A complete machine learning pipeline built for a university project - from dataset creation and model training to real-time edge inference. I trained a MobileNetV3 model in PyTorch on ~16,000 synthetic images across 80 classes (geometric shapes, mathematical symbols, arrows, etc.), exported it to ONNX format, and deployed it on a Raspberry Pi 5 where it runs inference at 25–30 FPS on 640×480 camera input. The system includes a custom SPI LCD driver for the ST7735S display (RGB565 pixel format via libgpiod) and an HTTP dashboard for real-time classification statistics and confusion matrix visualization.

Key Features

  • MobileNetV3 trained on ~16K synthetic images (80 classes)
  • ONNX export and optimized edge inference at 25–30 FPS on RPi 5
  • OpenCV camera capture with dynamic ROI and configurable confidence threshold
  • Custom SPI LCD driver (ST7735S, RGB565 via libgpiod)
  • HTTP stats API with live confusion matrix and per-class accuracy
  • Dataset augmentation pipeline with rotation, noise, and scaling
  • Python
  • PyTorch
  • ONNX Runtime
  • OpenCV
  • RPi 5
  • SPI
  • libgpiod

ESP32 IoT Embedded Projects

Three University Projects on ESP32

Academic • 2024 – 2025
Complete

A series of three ESP32 projects built during university coursework, all written in C using the ESP-IDF framework with FreeRTOS. Each project explored different aspects of embedded IoT development - from Bluetooth Low Energy communication to cloud integration and low-power design.

BLE Joystick Monitor

A Bluetooth Low Energy gamepad controller built with the NimBLE stack. Two analog joysticks are read via ADC and their values are transmitted over BLE to a connected device. The current state is displayed on a SPI LCD (ST7789, 240×320). A companion Python script on the host machine acts as a BLE monitor for debugging and visualization. ~1,098 lines of C.

Firebase LCD Message Display

An IoT device that connects to WiFi, syncs time via NTP, and polls a Firebase Realtime Database every 10 seconds using the REST API. Received messages are displayed on a 1.8" SPI LCD. Includes WiFi error handling and automatic reconnection logic. ~652 lines of C.

Low-Power WiFi Sync Clock

An energy-efficient clock designed for battery operation - up to 30 days on a single 18650 cell. WiFi activates only for NTP time synchronization every 30 minutes, then the ESP32 enters deep sleep (<100 µA). The display uses selective digit refresh to avoid flicker, achieving ±1 second/month accuracy. ~505 lines of C.

  • C
  • ESP-IDF
  • FreeRTOS
  • BLE (NimBLE)
  • SPI
  • Firebase
  • Deep Sleep

Confidential B2B Project - Parental Control & Fitness Platform

Cross-Platform Fitness App with Native Monitoring

Freelance • Oct 2025 – Feb 2026
Production

A children's fitness platform I built as a freelance project. The core is a Flutter app (~31,000 lines of Dart) using BLoC for state management, Firebase for backend services, and GoRouter for navigation. My main challenge was building a kill-resistant device monitoring system that works across Android and iOS. On Android, I wrote a native Kotlin module using the Device Owner API with a Foreground Service (OOM adj 200) and a 9-layer protection architecture, tested on Xiaomi MIUI and Samsung One UI. On iOS, I implemented Screen Time monitoring using Swift with the Family Controls / DeviceActivityMonitor framework. I also deployed a self-hosted notification worker (Node.js, Docker) that processes 10 event types with locale-aware delivery and retry logic. The project includes a full GitLab CI/CD pipeline with 3 stages (test → build → release), enforced static analysis, and automated APK artifact publishing.

Key Features

  • Flutter app (~31K LOC) with BLoC state management, Firebase backend, GoRouter
  • Native Android monitoring: Kotlin Device Owner API + Foreground Service + 9-layer kill resistance
  • Native iOS monitoring: Swift Family Controls / DeviceActivityMonitor
  • Self-hosted Node.js notification worker with exponential retry (5 attempts) and FCM token auto-cleanup
  • Bilingual notifications (English / Ukrainian) with per-user granular settings
  • GitLab CI/CD: analyze → test → build (debug/release APK) → release with artifacts
  • Docker containerized worker deployment (no exposed ports)
  • Flutter
  • Dart
  • Kotlin (Android)
  • Swift (iOS)
  • Firebase
  • Docker
  • Node.js
  • BLoC
  • GitLab CI/CD

Production VPS Infrastructure

Self-Hosted Ubuntu Server with 13+ Services

Personal • 2024 – Present
Production (2+ years)

My personal VPS infrastructure has been running continuously for over 2 years, hosting 13+ containerized services across 4 domains. The architecture follows a security-first approach: a system-level Nginx acts as a reverse proxy with SSL termination (Certbot), forwarding traffic to Docker containers bound exclusively to 127.0.0.1. Critical services (VPN admin panel, Guacamole RDP/SSH proxy) are protected behind Authelia SSO with YubiKey WebAuthn 2FA. The firewall (UFW) only exposes ports 80, 443, 51820 (WireGuard), and a non-standard SSH port.

Nginx (SSL) → Docker containers (127.0.0.1:*) ├── :8086 CV frontend ├── :8443 WireGuard VPN (SSO + YubiKey) ├── :8081 Guacamole RDP/SSH (SSO + YubiKey) ├── :9091 Authelia SSO Portal ├── :8088 FileBrowser ├── :8085 upsl.lol frontend ├── :8080 raspisanie frontend ├── :8087 birthday-asyanka ├── :8089 game-finder └── :6379 Redis (sessions)

Domains

  • arseni-aliakseichyk.com - CV, VPN, Guacamole, Auth
  • arseni-lab.com - lab projects (game-finder, cloud, presentation)
  • upsl.lol - schedule management platform
  • raspisanie-bsufl-neoficalno.lol - university schedule caching
  • Docker/Compose
  • Nginx
  • Linux (Ubuntu)
  • WireGuard
  • Certbot
  • UFW
  • Authelia
  • Redis

upsl.lol - University Schedule Platform

Full-Stack Schedule Management System

Personal • 2024 – Present
Production

A full-featured schedule management system built for my university and actively used by students. The backend is a FastAPI application with SQLAlchemy ORM, PostgreSQL database (7 tables), and JWT authentication with role-based access (admin/user). The admin panel provides full CRUD for lessons, users, and dynamic filter system (groups, specializations). Schedule data can be imported from JSON using a companion desktop tool built with Python Tkinter. The whole stack runs in Docker Compose (3 containers: PostgreSQL + FastAPI + Nginx) with Let's Encrypt SSL.

Key Features

  • Weekly schedule view with navigation and dynamic filtering
  • JWT authentication with admin/user roles (python-jose, bcrypt)
  • Admin panel: CRUD for lessons, users, filters
  • Desktop JSON parser (Python Tkinter) for bulk schedule import
  • Dark theme with responsive design
  • Python
  • FastAPI
  • PostgreSQL
  • SQLAlchemy
  • JWT
  • Docker Compose
  • Nginx

University Schedule Caching System

PWA with Async Task Queue & Smart Caching

Personal • 2024 – Present
Production

A web application that solves the problem of a slow and unstable university schedule API by providing a fast, cached interface. The backend is Flask with Celery for asynchronous task processing and Redis as the message broker. Schedule data is cached in SQLite with a 4000-hour TTL, and async Celery workers handle background refresh. The frontend is a Progressive Web App (PWA) with Service Worker for offline support, bookmarks, dark theme, and weekly navigation. Rate limiting (100/min, 10/sec) protects the upstream API. Deployed on VPS via Docker Compose (4 services).

Key Features

  • Celery async task queue with Redis broker for background data refresh
  • SQLite cache with 4000-hour TTL and force-refresh option
  • PWA with Service Worker for offline support
  • Search by group or teacher name
  • Rate limiting: 100 req/min, 10 req/sec
  • Python
  • Flask
  • Celery
  • Redis
  • SQLite
  • Docker Compose
  • PWA

Side Projects

AstraBot - Discord Music & Management Bot

Personal • 2024 – Present
Production

A Discord bot written in Python (~2,500 lines) using discord.py. It provides music playback via yt-dlp and FFmpeg with queue management, a ticket system for server moderation, and various utility commands. The bot runs as a Docker container on my VPS and serves multiple Discord servers.

  • Python
  • discord.py
  • yt-dlp
  • FFmpeg
  • Docker

Mess-Privat - Encrypted Messaging & File Transfer

Academic • 2024
Complete

End-to-end encrypted messaging and file transfer system with a server-client architecture. Uses NaCl/libsodium public key cryptography (Curve25519 key exchange, XSalsa20 stream cipher, Poly1305 MAC) over raw TCP sockets. Features encrypted multi-client chat, encrypted file storage on the server, and a curses-based terminal UI with status bar and input line. ~845 lines of Python.

  • Python
  • NaCl/libsodium
  • Curve25519
  • TCP Sockets
  • curses
  • Threading

Royal Blackjack VIP - Multiplayer 3D Card Game

Personal • 2025
MVP

A real-time multiplayer blackjack game with 3D visualization. Up to 5 players at one table with full game mechanics (Hit, Stand, Double Down, Surrender, Insurance, 6-deck shoe). The frontend renders cards in 3D using Three.js with GSAP animations for dealing and flipping. Real-time synchronization via Socket.IO, in-game VIP chat, sound effects, and an admin panel for table management.

  • Node.js
  • Three.js
  • Socket.IO
  • GSAP
  • Express
  • Docker

Steam Co-op Finder

Personal • 2024
Production

Web service for comparing Steam libraries of two players and finding common co-op games. Features multiplayer type filtering (Co-op, PvP, Online, Local), random game roulette, sorting by total playtime, and a “Pile of Shame” filter for games under 2 hours. Metadata cached in SQLite with 7-day TTL. Deployed on VPS behind Nginx.

  • Python
  • FastAPI
  • SQLite
  • Steam API
  • Docker

Telegram Admin-Reply Bot

Personal • 2024
Deployed

Telegram bot that captures user messages (text, photos, stickers, voice) and forwards them to admins with inline reply capabilities. Built with Aiogram 3.14 and asyncio, featuring FSM-driven admin workflows for replies and broadcasts. ~530 lines of Python.

  • Python
  • Aiogram
  • asyncio
  • FSM