Projektit

Valikoituja projekteja, joissa näkyvät käytännön toteutus, tekninen vastuu ja kykyni rakentaa monimutkaisia ominaisuuksia sekä toimivia tuotteita epäselvistä vaatimuksista.

Gamified Joint Rehabilitation, Analysis and Training (GameRAT)

Aikajana: 1/2024 - 3/2025

15 kuukauden terveydenhuollon ohjelmistoprojekti, jossa rakensin itsenäisesti web-alustan, GraphQL-backendin, MongoDB-infrastruktuurin, 3D-harjoite-editorin, liikedataputken, analyysityökalut, viestinnän ja Quest 3 -fysioterapiadataa tukevat järjestelmät.

Vastasin itsenäisesti web-alustasta, backendistä, tietokantainfrastruktuurista, autentikoinnista, 3D-harjoite-editorista, liikedataputkesta ja neuroverkkoa tukevista järjestelmistä.

Teknologiat
  • TypeScript
  • React
  • Vite
  • Three.js
  • GraphQL
  • Node.js
  • MongoDB
  • JWT
  • RSA-salaus
  • .NET
  • Unity-integraatio
  • Machine Learning
  • GameRAT rakennettiin fysioterapiaharjoitteiden pelillistämiseen ja fysioterapeuteille työkaluksi harjoitteiden määräämiseen, seurantaan ja analysointiin.
  • Suunnittelin ja rakensin itsenäisesti koko web-alustan ja backendin alusta asti, mukaan lukien React-frontendin, GraphQL-rajapinnan, JWT-autentikoinnin, roolipohjaisen käyttöoikeuksien hallinnan, MongoDB-datamallin ja palvelininfrastruktuurin.
  • Rakensin fysioterapeutin käyttöliittymän kirjautumiseen, potilaiden luontiin ja muokkaukseen, valmiiden tai tallennettujen harjoitteiden määräämiseen, 3D-esikatseluun, suoritusten tarkasteluun, potilasviestintään ja harjoitekohtaiseen kipuasteikkopalautteeseen.
  • Toteutin räätälöidyn Three.js-pohjaisen 3D-harjoite-editorin, jossa fysioterapeutti voi muokata käsivarren niveliä liukusäätimillä ja tallentaa uudelleenkäytettäviä keyframe-pohjaisia harjoiteanimaatioita intuitiivisella työnkululla.
  • Suunnittelin räätälöidyn JSON-liikedataformaatin ja parserin, joka muunsi Quest 3:n käsien seurantadatan selaimessa toistettavaksi Three.js-animaatiodataksi liikeanalyysiä varten.
  • Toteutin Unity-sovellusta varten rajapinnat potilaan autentikointiin, harjoitedatan vaihtoon ja Quest 3 -sovelluksista lähetetyn liikedatan vastaanottoon.
  • Rakensin erillisen .NET-datankeruusovelluksen ja backendin hyvien ja huonojen fysioterapialiikkeiden tallentamiseen räätälöidyn neuroverkkojärjestelmän koulutusta varten.
  • Toteutin arkaluonteisen datan käsittelyyn liittyviä ratkaisuja, kuten roolipohjaiset käyttörajat, backendin kautta rajatun tietokantayhteyden ja potilastietoon liittyvän RSA-salauksen.

Autonomisen telakuorma-auton reitinhallintajärjestelmä

TypeScriptillä toteutettu insinöörityöjärjestelmä autonomisen telakuorma-auton visuaaliseen reittien luontiin, ajoneuvokohtaiseen komentojen välitykseen ja reaaliaikaiseen simulaatioseurantaan.

Ainoa kehittäjä, joka vastasi frontendistä, backendistä, WebSocket-protokollasta, simulaattorista, dokumentaatiosta ja järjestelmäarkkitehtuurista.

Teknologiat
  • TypeScript
  • React
  • Vite
  • Leaflet
  • Node.js
  • WebSocket
  • JSON
  • Rakensin järjestelmän insinöörityönä autonomisen telakuorma-auton reittien visuaaliseen luontiin ja hallintaan.
  • Järjestelmän tavoitteena oli siirtyä suorasta kauko-ohjauksesta kohti reittipohjaista autonomista hallintaa, kun taas täysi esteiden väistöön perustuva autonomia rajattiin työn ulkopuolelle.
  • Rakensin React- ja Leaflet-karttakäyttöliittymän, jossa käyttäjä voi lisätä, siirtää ja poistaa reittimerkkejä, ja reitti piirtyy automaattisesti GPS-pisteiden välille.
  • Mallinsin reitit GeoJSONilla sekä reittimetadatalla, kuten reitin nimellä ja pisteiden tyypeillä: alku-, väli- ja loppupiste.
  • Toteutin TypeScriptillä Node.js WebSocket -palvelimen reaaliaikaiseen kommunikaatioon, ajoneuvokohtaisiin tunnisteisiin, komentojen välitykseen ja tilapäivityksiin.
  • Rakensin ajoneuvosimulaattorin, joka ylläpitää omaa GPS-sijaintia ja suuntaa muistissa, reagoi komentoihin kuten oikea ajoneuvo ja seuraa reittikomentoja yksinkertaistettuna GPS-linjaseuraajana.
  • Lisäsin turvallisuustoiminnon, jossa yhteyden katkeaminen lähettää pysäytyssignaalin kaikille yhdistetyille ajoneuvoille.
  • Varmensin järjestelmän usealla samanaikaisella simuloidulla ajoneuvolla ja dokumentoin toteutuksen jatkokehitystä varten.

TKIO-Finder

Aikajana: 1/2026 - 5/2026

Full-stack-matchmaking-alusta, joka auttaa Metropolian opiskelijoita ja henkilöstöä löytämään ja yhdistämään TKI-projektipaikkojen ympärille.

Vastasin pääosin backend-kehityksestä, tietokantasuunnittelusta, autentikoinnista, julkaisusta ja infrastruktuurista.

Teknologiat
  • TypeScript
  • React
  • Vite
  • Google OAuth2
  • PostgreSQL
  • Node.js
  • Rakensin full-stack-alustan ratkaisemaan ongelmaa, jossa monet Metropolian TKI-projektipaikat olivat avoinna opiskelijoille ja henkilöstölle, mutta niitä oli vaikea löytää.
  • Toteutin kevyen matchmaking-työnkulun, jossa opiskelija voi tykätä projektipaikasta, liittää mukaan lyhyen viestin ja muodostaa matchin projektin omistajan kanssa, jos molemmat osoittavat kiinnostusta.
  • Suunnittelin PostgreSQL-tietokantamallin käyttäjille, työ-/projektipaikoille, hakemuksille ja matcheille.
  • Toteutin full-text-haun ja suodattimet, kuten sijainnin ja paikan tyypin, jotta projektimahdollisuuksia olisi helpompi selata.
  • Lisäsin Google OAuth2 -autentikoinnin ja rajasin käytön Metropolian hallinnoimiin sähköpostitileihin, erillisillä opiskelija-, henkilökunta- ja ylläpitäjärooleilla.
  • Toteutin profiili- ja ilmoituskohtaiset CRUD-ominaisuudet opiskelijoille ja henkilökunnalle.
  • Julkaisin projektin omalle palvelimelle käyttäen Nginxiä, PM2:ta, reverse proxy -konfiguraatiota, HTTPS:ää, domain-asetuksia, palvelinprosessien hallintaa ja CI/CD-putkea.
  • Sain projektista korkeimman arvosanan.

Portfolio

Next.js:llä toteutettu monikielinen portfolio, jonka tarkoitus on esittää projektit, tekninen vastuu, CV ja yhteystiedot selkeästi rekrytoijille ja teknisille arvioijille.

Teknologiat
  • TypeScript
  • Next.js
  • next-intl
  • CSS Modules
  • Vercel
  • Suunnittelin ja toteutin monikielisen portfoliosivuston projektieni, osaamiseni, CV:ni ja yhteystietojeni esittelyyn.
  • Rakensin responsiivisen käyttöliittymän CSS-moduleilla ja pidin rakenteen selkeänä sekä ylläpidettävänä.
  • Lisäsin sivukohtaiset metatiedot, kieliversioiden canonical- ja alternate-linkit sekä JSON-LD-rakenteista dataa hakukonenäkyvyyttä varten.
  • Julkaisin sivuston Vercelissä ja hyödynsin Vercel Analyticsia kävijäseurannan tueksi.