About Me
Senior Software Developer with 10+ years of experience in the iGaming industry, specializing in frontend development with Angular and .NET. Delivering sport betting platforms, horse racing products and third-party game integration. Passionate about building high-performance, real-time user experiences for iGaming audiences.
01
PHP, React, MySQL, Docker

Social Network Platform

Originally developed as an academic PHP project with server-side rendered pages, this application was later modernized into a full-stack web application with a React frontend and PHP REST API backend. The system uses JWT-based authentication for secure user login and session management, with data stored in a MySQL database.

Key features include:

  • User registration and authentication
  • Role-based access control
  • User profiles and profile management
  • Status/post creation with optional image uploads
  • Commenting system
  • Private messaging between users
  • Administrative panel for content and user management
  • RESTful API architecture separating frontend and backend responsibilities

The application runs in Docker containers and uses an automated CI/CD pipeline to deploy updates to a VPS server on every push to the main branch.

The project demonstrates migration from a traditional monolithic PHP application to a modern SPA (Single Page Application) architecture using React and API-driven communication.

02
Typescript, React, Node.js, Websocket

Real-Time Multiplayer Chess Platform

A full-stack web application for playing live chess games between two players over WebSockets. Built with a React and TypeScript frontend and a Node.js backend, the system uses Socket.io for real-time, bidirectional communication, with the server acting as the authoritative source of game state to validate every move and prevent cheating.

Key features include:

  • Real-time two-player games over WebSockets
  • Shareable game rooms via unique URL codes
  • Server-side move validation and turn enforcement
  • Full chess rules engine (legal moves, check, checkmate, stalemate, and draw detection)
  • Interactive drag-and-drop board with pawn promotion selection
  • Automatic game-end detection with result reporting
  • Per-player board orientation and live game status
  • In-memory game state management with room-based isolation

The application runs in Docker containers behind a shared Nginx reverse proxy that terminates SSL and routes both static assets and WebSocket traffic. An automated CI/CD pipeline deploys updates to a VPS server on every push to the master branch.

The project demonstrates real-time client-server communication with an authoritative server architecture, using a multi-stage Docker build to serve a compiled production frontend and backend.

03
TypeScript, PixiJS, Canvas

Demo Slot Machine Game

A full-stack browser-based slot machine game with a hardware-accelerated graphics frontend and a server-authoritative game engine. Built with a TypeScript and PixiJS frontend rendering the reels and animations on a WebGL canvas, and a Node.js and Express REST API backend that computes every spin result, so outcomes and payouts are determined entirely server-side rather than trusted to the client.

Key features include:

  • Animated reel rendering with PixiJS on a WebGL canvas
  • Server-side spin logic determining symbols, win lines, and payouts
  • REST API communication between client and game engine
  • Configurable bet amounts with win/multiplier calculation
  • Preloaded symbol textures for smooth spin animation
  • Responsive canvas that scales to the viewport
  • Clean separation between rendering (client) and game outcome (server)

The application runs in Docker containers behind a shared Nginx reverse proxy that terminates SSL and routes static assets and API traffic to the appropriate service. The frontend is compiled and served as static files through a multi-stage Docker build, with the production bundle delivered by an internal Nginx instance.

The project demonstrates a server-authoritative game architecture where all randomness and payout logic live on the backend, preventing client-side tampering, paired with a real-time graphics layer built directly on a low-level rendering engine.

04
Typescript, Canvas, PixiJS, AI-assisted prototyping

Endless Runner Game

A side-scrolling endless-runner game in the style of the Chrome offline dinosaur game, where the player jumps over incoming obstacles and survives for as long as possible. This is a remake of an earlier version of the game: the original was rendered with the DOM and written in vanilla JavaScript, and it was rebuilt from the ground up as a hardware-accelerated Canvas game using PixiJS and TypeScript. The remake was produced through AI-assisted rapid prototyping, with the entire client generated and refined in two prompts.

Key features include:

  • Hardware-accelerated rendering on a WebGL canvas via PixiJS
  • Player physics with gravity and a chained mid-air double jump
  • Randomly spawned obstacles that are despawned once they leave the screen
  • Multi-layer parallax scrolling, with foreground hills moving faster than background hills and clouds drifting the opposite way
  • Infinite scrolling backgrounds built on tiling sprites
  • Axis-aligned bounding-box collision detection with game-over and instant restart
  • Survival-based scoring
  • Unified keyboard, mouse, and touch input
  • Centralized, tunable game configuration for gravity, scroll speeds, and spawn timing

The frontend is compiled and served as static files through a multi-stage Docker build, with the production bundle delivered by an internal Nginx instance. The container runs behind a shared Nginx reverse proxy that terminates SSL and routes traffic to the service. The game is currently client-side only, with a server-authoritative layer planned for a future iteration.

The project demonstrates the migration of a browser game from DOM-based rendering and vanilla JavaScript to a low-level WebGL rendering engine, and the use of AI-assisted rapid prototyping to rebuild a complete, deployable application from a couple of natural-language prompts.

05
Chat
Angular, WebSockets
Coming soon