PAULA KARHI.

Tietotekniikan insinööriopiskelija

Verkkopalveluja.
Käyttöliittymiä.
Ohjelmistoja.

Tutustu asiakastöihini, opiskeluprojekteihini ja vapaa-ajalla syntyneisiin ohjelmistoihin.

Katso projektit

Tausta

Olen 36-vuotias tamperelainen ja neljännen vuoden tietotekniikan insinööriopiskelija. Suuntaudun ohjelmistotuotantoon, ja opintoni ovat loppusuoralla. Aiemmalta koulutukseltani minulla on tieto- ja viestintätekniikan perustutkinto.

Kokemusta minulla on verkkosivustojen ja verkkosovellusten kokonaisvaltaisesta toteuttamisesta ja ylläpidosta. Työhöni kuuluvat suunnittelu, sopivien teknologioiden, palvelimien ja muiden palveluiden valinta sekä toteutus, julkaisu ja ylläpito. Myös tietokoneiden laitteistot ja raudan parissa työskentely ovat minulle tuttuja.

Vapaa-ajallani teen mielelläni omia ohjelmistoprojekteja ja kokeilen uusia tekniikoita. Olen kehittänyt esimerkiksi Windows-sovelluksia tietokoneen sähkönkulutuksen arviointiin, suorituskyvyn seurantaan sekä tuulettimien ja valojen ohjaukseen.

Koulutus

01 / TUTKINTO · KESKEN

Insinööri (AMK), tietotekniikka

Tampereen ammattikorkeakoulu · 2023–

Suuntautuminen: ohjelmistotuotanto

Opinnoissa painottuvat ohjelmistotuotanto sekä web- ja API-kehitys. Suoritettuihin opintoihin sisältyvät myös tietokannat, Linux, ohjelmistotestaus, tietoturva, data-analyysi ja koneoppimisen sovellukset.

Opinnot käynnissä · tutkinnon laajuus 240 op

02 / SUORITETTU TUTKINTO

Tieto- ja viestintätekniikan perustutkinto

Salon seudun ammattiopisto · 2019–2023

Ohjelmistotuotantoon suuntautunut perustutkinto. Opinnoissa toteutettiin ohjelmistojen prototyyppejä ja tuotantoversioita sekä sähköisiä asiointipalveluja. Mukana olivat myös kehitysympäristöt, tietojärjestelmien käyttöönotto ja käytännön osaamisnäytöt.

Valmistunut 26.4.2023

03 / VERKKOTEKNIIKAN KURSSI

CCNAv7: Introduction to Networks

Cisco Networking Academy ·

Cisco Networking Academyn verkkotekniikan peruskurssi. Kurssi käsittelee IP-osoitteistusta, Ethernet-verkkoja, kytkentää, reititystä ja verkkolaitteiden perusteita.

Kurssin suoritustodistus

Näytä todistus (PDF)

Osaaminen

TEKNOLOGIAT & KÄYTÄNNÖT

Ohjelmointia, järjestelmiä ja kehityskäytäntöjä, joista olen saanut kokemusta opinnoissa, työelämässä ja projekteissa.

01 / OHJELMOINTI JA SKRIPTIT

Ohjelmointikielet ja skriptit

  • TypeScript
  • JavaScript
  • C#
  • PHP
  • C++
  • C
  • Python
  • Java
  • Kotlin
  • PowerShell / Bash

02 / SOVELLUSKEHITYS

Sovellukset ja rajapinnat

  • React
  • Next.js
  • Node.js
  • Express
  • .NET
  • WPF / Windows Forms
  • HTML & CSS
  • REST-rajapinnat

03 / KÄYTTÖLIITTYMÄT

UI-suunnittelu ja toteutus

  • UI-suunnittelu ja prototypointi
  • Komponenttipohjaiset käyttöliittymät
  • Frontend–backend-integraatiot
  • Responsiivinen suunnittelu

04 / TIETOKANNAT

Tietokannat

  • PostgreSQL
  • MySQL / MariaDB
  • SQLite
  • SQL ja tietokantamigraatiot

05 / SULAUTETUT JÄRJESTELMÄT

Sulautettujen järjestelmien perusteet

  • Mikrokontrollerit
  • Sulautettu ohjelmointi
  • Laitteiston ja ohjelmiston rajapinta
  • Arduino IDE

06 / TIETOVERKOT

Tietoverkkojen perusteet

  • TCP/IP
  • IP-osoitteistus ja aliverkot
  • Reititys ja kytkentä
  • Cisco Packet Tracer
  • Wireshark

07 / VERSIOHALLINTA JA JULKAISU

Versionhallinta ja julkaisu

  • Git-versionhallinta
  • GitHub Actions (CI/CD)
  • Docker / Compose
  • Railway
  • Vercel
  • Cloudflare
  • DNS- ja domainhallinta

08 / KEHITYSTYÖKALUT

Kehitysympäristöt ja työkalut

  • Visual Studio
  • Android Studio
  • Linux / WSL
  • Postman
  • Playwright / Vitest
  • Vite / npm
  • Resend
  • Cloudinary

09 / PAIKALLINEN TEKOÄLY

Paikalliset kielimallit

  • Ollama
  • LM Studio
  • Kielimallien API-integraatiot

10 / LAADUNVARMISTUS

Työtavat ja laadunvarmistus

  • Autentikointi ja käyttöoikeudet
  • Syötevalidointi ja lähetysrajoitukset
  • Automaattiset testit
  • Tekninen dokumentointi
  • Käyttö- ja käyttöönotto-ohjeet

Asiakastyöt

01 / VERKKOSIVUSTO

Etelä-Suomen
Timpurit Oy

Rakennusalan yrityssivusto ja oma hallintapaneeli. Palveluita, referenssejä, kuvia ja tarjouspyyntöjä hallitaan samassa sovelluksessa.

Toteutuksessa ovat mukana tietokanta, kuvien lataus, kirjautuminen ja sähköposti-ilmoitukset.

Next.js / PostgreSQL / Cloudinary / Resend

Avaa sivusto
02 / VERKKOSIVUSTO

keramiikka.net

Palkallisena asiakastyönä toteutettu, julkisessa käytössä ollut keramiikka-aiheinen yhteisösivusto. Sivustolla on keskustelufoorumi, näyttelyilmoitukset, työpaikkailmoitukset sekä osto- ja myyntitori. Rekisteröityneet käyttäjät voivat aloittaa keskusteluja, kommentoida ja julkaista omia ilmoituksiaan.

Suunnittelin käyttöliittymän ja MySQL-tietokannan sekä toteutin sivuston PHP:llä ja JavaScriptillä. Asiakastyö tehtiin koulun kautta osana tieto- ja viestintätekniikan opintojen näyttöä. Työhön kuuluivat myös määrittely, tekninen suunnitelma ja testaussuunnitelma. Ylläpito voi hallita käyttäjiä, keskusteluja ja ilmoituksia.

PHP / MySQL / JavaScript / Bootstrap

Kuvat paikallisesta demoversiosta. Henkilötiedot ovat keksittyjä.
03 / VERKKOSOVELLUS

Ilmoittautumisjärjestelmä

eVarikon tilaama, julkiseen käyttöön toteutettu ilmoittautumisjärjestelmä Tuunaa tuntisi -tapahtumaan ja TVT-koulutuksiin. Opettajat voivat selata kurssitarjotinta, tarkistaa vapaat paikat ja ilmoittautua koulutuksiin samalla käyttäjätunnuksella.

Kehitin järjestelmän backendin ja toimin projektipäällikkönä. Toteutus tehtiin ryhmätyönä ja palkallisena asiakastyönä koulun kautta. Työhön kuuluivat määrittely, suunnittelu, toteutus, testaus ja dokumentointi. Sovelluksessa on erilliset näkymät osallistujille, kouluttajille ja ylläpidolle sekä kurssien ja ilmoittautumisten hallinta.

PHP / MySQL / JavaScript / Bootstrap

Kuvat paikallisesta demoversiosta. Henkilötiedot ovat keksittyjä.
04 / VERKKOLOMAKE

Verkkosivujen lähtötietokysely

Lomakesovellus, jolla kerätään yrityksen verkkosivuprojektin lähtötiedot. Vastaukset lähetetään sähköpostiin Resendin kautta.

Next.js / TypeScript / Resend

Avaa kysely

Opiskeluprojekteja

05 / PAIKALLINEN TEKOÄLY

Palauteanalyysi

CSV- ja JSON-palautteiden analysointi omalla koneella toimivalla kielimallilla. Sovellus tunnistaa palautteen aiheet ja arvioi sävyn erikseen jokaiselle aiheelle.

Havainnon perustana oleva lainaus näkyy alkuperäisessä palautteessa. Eri mallien analyysiajoja voi verrata ja tulokset ladata tiedostona.

Next.js / TypeScript / LM Studio / IndexedDB

Katso sovellus

Avaa demo

06 / VERTAILUPROJEKTI

GPT ja Claude vertailussa

Vertailuprojekti, jossa sama ryhmäprojektityökalu toteutetaan GPT:n ja Clauden avulla. Tarkoituksena on selvittää, miten eri tekoälyt työskentelevät ja kuinka hyvin ne onnistuvat annetussa tehtävässä.

Vertailussa tarkastellaan vaatimusten toteutumista, käyttöliittymää, toimivuutta ja kehitystyön aikana tarvittavia korjauksia. Molemmilla toteutuksilla on oma toimiva sovellus.

Next.js / TypeScript / PostgreSQL / S3

07 / VERKKOSOVELLUS

Roolipelihahmojen hallinta

React-sovellus roolipelihahmojen luomiseen ja muokkaamiseen. Hahmokorteista avataan tarkemmat tiedot ja uuden hahmon tiedot täytetään vaiheittain.

Hahmoja voi hakea nimen, pelaajan, ammatin tai kulttuurin perusteella. Toteutus keskittyy hahmonluonnin käyttöliittymään.

React / TypeScript / Vite

08 / REST API

Tukipyyntöjen ja laitteiden rajapinta

Node.js-rajapinta käyttäjien, laitteiden, kategorioiden ja tukipyyntöjen hallintaan. Tietoja voi hakea, lisätä, päivittää ja poistaa HTTP-pyynnöillä.

Tiedot tallennetaan SQLite-tietokantaan ja vastaukset palautetaan JSON-muodossa. Projektissa on myös tietokannan luontiskriptit ja esimerkkiaineisto.

Node.js / Express / SQLite / REST

Ohjelmakokeiluja

09 / WINDOWS · KOKEILU

JouleDesk

Mitä tietokoneen käyttäminen maksaa?

GitHub

Windows-sovellus, joka arvioi tietokoneen sähkönkulutusta ja kustannuksia. Hinnoittelussa voi käyttää Suomen pörssisähköä tai oman sähkösopimuksen hintaa.

CPU:n ja NVIDIA-näytönohjaimen lukemat yhdistetään muiden osien arvioihin. Näytössä erotetaan mitatut lukemat ja arviot. Mukana ovat kulutushistoria ja CSV-vienti.

C# / .NET 9 / Windows

Kokonaiskulutus on arvio, ei pistorasiasta tehty mittaus.
10 / WINDOWS · KOKEILU

FrameHeat

Lämpötilat ja FPS pelin päällä.

GitHub

Windows 11:n laitteistoseuranta ja FPS-laskuri. Pelin päällä näkyvä paneeli näyttää lämpötilat, kuormituksen ja ruudunpäivitysnopeuden.

Paneelin kokoa, asettelua ja näytettäviä tietoja voi muuttaa. Lämpötilavaroitukset vaihtavat lukemien väriä. FPS luetaan Windowsin tapahtumaseurannasta ilman peliin lisättävää koodia.

C# / .NET 9 / WPF / ETW

Anturitietojen saatavuus riippuu laitteistosta.
11 / WINDOWS · KOKEILU

FanControl

Windows-sovellus tietokoneen tuulettimien ja valojen ohjaukseen. Tuulettimien nopeutta voi säätää lämpötilan mukaan tai valita valmiin toimintatilan.

Lämpötilakäyrät, tuuletinryhmät ja automaatiot määrittävät tuulettimien toiminnan. Valoille voi valita värejä ja tehosteita tai asettaa ne seuraamaan lämpötilaa ja näytön värejä. Taustapalvelu hoitaa ohjauksen myös käyttöliittymän ollessa suljettuna.

C# / .NET 8 / Avalonia / Windows Service

12 / PROJEKTI

Syntaxferry

Muuntaa toimivaa koodia ohjelmointikielestä tai kieliversiosta toiseen paikallisella kielimallilla. Tulos tarkistetaan oikealla kääntäjällä tai tyyppitarkistimella.

Alkuperäinen ja muunnettu ohjelma suoritetaan, ja niiden tulosteita verrataan. Rakennusvirheet ja tulosteiden erot palautuvat mallille korjattaviksi enintään kolmella kierroksella. Tuettuja muunnoksia ovat esimerkiksi JavaScript ja TypeScript, Pythonin tyyppivihjeet sekä CommonJS-moduulien muuttaminen ES-moduuleiksi.

Englanninkielinen käyttöliittymä · paikallinen Ollama-malli · kuvissa onnistuneet muunnokset

JavaScript / Node.js / TypeScript / Python / Ollama

13 / PROJEKTI

Kronos

TypeScriptillä rakennettu aikasarjatietokanta, jossa on oma tallennusmoottori, kyselykieli ja selainkonsoli.

Data tallennetaan ensin WAL-lokiin ja muistitauluun (memtable), josta se siirtyy muuttumattomiin segmentteihin. Gorilla-pakkaus säästää tallennustilaa. Oma kyselykieli käsittelee mittauksia vaiheittain (pipeline) ja tukee koosteita, aikavertailuja, poikkeamien tunnistusta sekä ennusteita. Selainkonsolissa voi tutkia mittauksia, seurata hälytyksiä ja kokeilla palvelinympäristön simuloituja häiriöitä.

TypeScript / Node.js / LSM-tree

Ota yhteyttä

Lähetä viesti suoraan minulle. Vastaan mahdollisimman pian.

0 / 80
0 / 254
0 / 120
0 / 3000