Projects
A selection of home projects where I explore data engineering, machine learning, and reinforcement learning hands-on. My production ML and automation work at Murata is confidential and not shown here; see Experience for what it does. The closest public relative is the wafer inspection classifier below.
Live Demos
Polar Data Hub (biometrics.tonikiuru.com)
A full-stack web application that pulls my own training, sleep, recovery, and activity data from a Polar watch through the Polar AccessLink API, stores it permanently in PostgreSQL, and visualizes it in a React dashboard. Backend in Rust (axum, sqlx), frontend in TypeScript (React 19, Vite, TanStack Query, Recharts), deployed with Docker Compose, nginx, and a Cloudflare Tunnel. CI runs fmt/clippy/tests and builds both container images on every push. Final project for the KAMK web application development course.
Railway Analytics (railway.tonikiuru.com)
A live train schedule analytics platform built on raw data from Fintraffic's open railway APIs. The data flows through a medallion architecture: raw ingested feeds (bronze) are cleaned and conformed (silver) into analysis-ready insight (gold), showing how layered data transformations turn a raw API stream into real value.
Lunar Lander (lander.tonikiuru.com)
A live demo of my reinforcement learning work on the Lunar Lander environment. Try it directly in the browser.
Push the Walker (walker.tonikiuru.com)
A humanoid skeleton that walks under the control of a trained reinforcement learning policy, running entirely in your browser on MuJoCo (WebAssembly) physics with the policy served through ONNX Runtime. Nudge, shove, or kick it, throw balls and cubes at it, and watch how the policy recovers its balance (or fails to). Drag to orbit and scroll to zoom.
Repositories
GNN Image Classifier for Wafer Inspection
Applies data augmentation to overcome limited labeled data in Wafer Automatic Visual Inspection (WAVI), improving classification accuracy with fewer samples. Smart augmentation can significantly reduce manual labeling effort while keeping AI models robust. This is the same problem class I work on in production.
Polar Data Hub: Biometrics
Source for the live Polar Data Hub demo. A Cargo workspace (API server, Polar client, domain crates) with compile-time-checked SQL via sqlx, an OpenAPI 3 spec with Swagger UI, AES-256-GCM-encrypted OAuth tokens, and a GitHub Actions pipeline that publishes images to GitHub Container Registry.
Fintraffic Railway Data Pipeline
A professional-grade data platform for analyzing Finnish Railway data. Hands-on experience with DuckDB, dbt, and Evidence while designing an end-to-end analytical workflow. Powers the live Railway Analytics demo.
Multi-Agent Prompting for Coding Tasks
One of my early experiments using crewAI to build an LLM multi-agent workflow for coding tasks. Deepened my understanding of prompt engineering and agent coordination.
Q-learning vs Expected Sarsa in Cliff World
A visual comparison of two reinforcement learning algorithms, highlighting their exploration–safety trade-offs and the balance between performance and stability in RL systems.
Reinforcement Learning: Lunar Lander v3
A neural-network-based RL agent for the classic Lunar Lander v3 environment, with an environment-aware, action-driven training loop designed from scratch. See the live Lunar Lander demo.
Snake Game: Click to Play
A classic Snake game implementation where you can play against AI or a friend.
Check out more on my GitHub. School projects live in an internal GitLab.