Projects
Selected projects that show practical implementation, technical ownership, and my ability to build complex features and working products from unclear requirements.

Gamified Joint Rehabilitation, Analysis and Training (GameRAT)
Timeline: 1/2024 - 3/2025
A 15-month healthcare software project where I independently built the web platform, GraphQL backend, MongoDB infrastructure, 3D exercise editor, movement-data pipeline, analysis tools, messaging, and supporting systems for Quest 3 physiotherapy data.
Independently responsible for the web platform, backend, database infrastructure, authentication, 3D exercise editor, movement-data pipeline, and neural-network support systems.
- TypeScript
- React
- Vite
- Three.js
- GraphQL
- Node.js
- MongoDB
- JWT
- RSA encryption
- .NET
- Unity integration
- Machine Learning
- GameRAT was built to gamify physiotherapy exercises and give physiotherapists tools to assign, monitor, and analyze patient exercises.
- I independently designed and built the full web platform and backend from scratch, including the React frontend, GraphQL API, JWT authentication, role-based access control, MongoDB data model, and server-side infrastructure.
- Built the physiotherapist interface for login, patient creation and editing, assigning pre-made or saved exercises, viewing 3D exercise previews, reviewing completion status, messaging with patients, and collecting pain-scale feedback for each exercise.
- Created a custom Three.js-based 3D exercise editor where physiotherapists could manipulate arm joints with sliders and save reusable keyframe-based exercise animations in an intuitive workflow.
- Designed a custom JSON movement-data format and parser that converted raw Quest 3 hand-tracking data into browser-playable Three.js animation data for movement analysis.
- Implemented Unity-facing API interfaces for patient authentication, exercise data exchange, and recorded movement-data submission from Quest 3 applications.
- Built a separate .NET data-collection application and backend for recording good and bad physiotherapy movement samples used to train a custom neural-network system from scratch.
- Implemented sensitive-data handling measures, including role-based access boundaries, backend-only database access, and RSA encryption for patient-related data.
Links: Project page • Project video
Code: Exercise editor • GraphQL backend • AI

Route Management System for an Autonomous Tracked Articulated Vehicle
A TypeScript thesis system for visual route creation, vehicle-specific command routing, and real-time monitoring of autonomous tracked vehicle simulations.
Sole developer responsible for the frontend, backend, WebSocket protocol, simulator, documentation, and system architecture.
- TypeScript
- React
- Vite
- Leaflet
- Node.js
- WebSocket
- JSON
- Built the system as a thesis project to enable visual creation and management of routes for an autonomous tracked articulated vehicle.
- The system was designed as a step from direct remote-control operation toward route-based autonomous control, while full collision-avoidance autonomy remained outside the thesis scope.
- Built a React and Leaflet map interface where users can add, move, and remove route markers while the route is automatically drawn between GPS points.
- Represented routes with GeoJSON and route metadata such as route name and point types including start, mid, and end points.
- Implemented a TypeScript Node.js WebSocket server for real-time communication, vehicle-specific identifiers, command routing, and status updates.
- Built a vehicle simulator that maintains its own GPS position and heading in memory, reacts to commands like the real vehicle would, and follows route commands as a simplified GPS line follower.
- Added a safety behavior where lost connection events send a stop signal to all connected vehicles.
- Validated the system with multiple simultaneous simulated vehicles and documented the implementation for future development.

TKIO-Finder
Timeline: 1/2026 - 5/2026
A full-stack matching platform for helping Metropolia students and staff discover and connect around RDI project positions.
Mainly responsible for backend development, database design, authentication, deployment, and infrastructure.
- TypeScript
- React
- Vite
- Google OAuth2
- PostgreSQL
- Node.js
- Built a full-stack platform to solve the problem that many Metropolia RDI project positions were open to students and staff, but difficult to discover.
- Implemented a lightweight matching workflow where students can like a project position, attach a short message, and match with the project owner if both sides show interest.
- Designed the database model for users, jobs, applications, and matches using PostgreSQL.
- Implemented full-text search and filters such as location and position type to make project opportunities easier to browse.
- Added Google OAuth2 authentication and restricted usage to Metropolia-managed email accounts, with separate roles for students, staff, and admins.
- Implemented profile and job-posting CRUD features for students and staff users.
- Deployed the project to a private server with Nginx, PM2, reverse proxy configuration, HTTPS, domain setup, server process management, and a CI/CD pipeline.
- Received the highest grade for the project.

Personal Portfolio
A multilingual Next.js portfolio designed to present my projects, technical ownership, CV, and contact details clearly for recruiters and technical reviewers.
- TypeScript
- Next.js
- next-intl
- CSS Modules
- Vercel
- Designed and developed a multilingual portfolio website for presenting my projects, skills, CV, and contact details
- Built a responsive interface with CSS Modules, keeping the layout simple, maintainable, and easy to scan
- Added page-specific metadata, canonical and alternate language links, and JSON-LD structured data for SEO
- Deployed the site on Vercel and added Vercel Analytics for lightweight visitor insights
Links: Project page
Code: Source code