Thomas Wiik
Dataingeniørstudent ved Universitetet i Agder
Velkommen! Jeg heter Thomas, og er snart ferdigutdannet dataingeniør. Denne nettsiden er mitt digitale visittkort, hvor jeg presenterer mine prosjekter, ferdigheter og yrkesambisjoner. Ta en titt, og la oss utforske hvordan vi kan skape teknologiske fremskritt sammen.
Om Meg
Bakgrunn
Fra en tidlig alder har jeg vært fascinert av gåter og problemstillinger som krever analytisk tenkning. Denne lidenskapen for å utforske det ukjente og løse komplekse oppgaver har vært en rød tråd gjennom hele mitt liv. Denne nysgjerrigheten drev meg mot å velge en vei som kombinerer logisk resonnement med teknologisk innovasjon, og førte meg omsider til studier innen dataingeniørfaget.
Dataingeniørstudiet
Min akademiske bakgrunn er solid og mangfoldig. Som student ved dataingeniørstudiet har jeg opparbeidet meg en omfattende kunnskapsbase innen softwareutvikling, problemløsning og teknologisk innsikt. Jeg har tilegnet meg betydelig erfaring både som leder og utvikler i en rekke topprangerte skoleprosjekter, i tillegg til erfaring fra arbeid som studentkonsulent. Gjennom disse oppdragene har jeg blitt dyktig i bruk av GIT og anvendelse av ulike utviklingsmetodologier, inkludert smidige og waterfall tilnærminger. Min tekniske kompetanse strekker seg over flere programmeringsspråk, blant annet C, C++, C#, Python og JavaScript, og jeg har god erfaring med rammeverk som React, Flask, og .NET. Videre har jeg praktisk erfaring med Docker, som har vært essensielt for effektiv bygging og testing av prosjekter.
Sosialfaglig utdanning
Ved siden av min tekniske utdanning, har jeg også en mastergrad i sosialfag. Denne utdannelsen har ikke bare styrket mine ferdigheter innen samarbeid og kommunikasjon, men har også gitt meg en unik innsikt og forståelse som jeg bringer inn i mine teknologiprosjekter. Denne tverrfaglige bakgrunnen har gjort meg til en mer komplett problemløser, og forberedt meg til å takle utfordringer fra forskjellige perspektiver.
Hobbyer og fritid
Når jeg ikke er oppslukt i teknologiens verden, utforsker jeg ofte mine mange interesser. Musikk har alltid hatt en viktig rolle i livet mitt, både som produsent og utøvende artist i flere band som vokalist, gitarist, pianist og tidvis trommer. Havet er annen lidenskap jeg har, hvor fisking, båt og fridykking står sentralt. Jeg er også en stor fan av både fotball og discgolf, hvor sistnevnte har vært en aktiv hobby de siste årene. Disse aktivitetene gir meg både ro og inspirasjon, og er en god avkobling fra den digitale hverdagen.
Utvalgte Prosjekter
Bacheloroppgave
Temaet for gruppeprosjektet som utgjør bacheloroppgaven er anvendelse av store språkmodeller til gjennomføring av statisk sårbarhetsanalyse av kode. Målet for prosjektet er å utvikle en VS Code extension som lar brukere teste egen kode for sårbarheter direkte fra sin egen IDE. Koden vil testes av en finjustert, self-deployed språkmodell, og sårbarhetsrapporten som genereres vil bli tilgjengeliggjort for brukeren i sin helhet på en tilhørende web applikasjon.
Utvikling av sikker web-applikasjon
I dette prosjektet utviklet vi en web-applikasjon hvor hovedfokuset var sikkerhet. Applikasjonen ble utviklet i Python og Flask, med Jinja2 som templating engine. Sentrale implementerte sikkerhetsmekanismer inkluderer OAuth2, tofaktorautentisering, passordhashing, validering og sanitisering av input, content security policy (CSP) og rate limiting. Docker ble brukt for å bygge og teste applikasjonen.
Virtual Virtuoso
Som en syntese mellom hobby og skole, utviklet vi applikasjonen Virtual Virtuoso, en luftgitar basert på machine vision.
Applikasjonen er bygget med Python og baserer seg på MediaPipe for gjenkjenning av hender og gester. Ved hjelp av dette rammeverket, implementerte vi ulike spillestiler og akkorder basert på kombinasjoner av gjenkjente gester og bevegelser. Applikasjonen reduserer kompleksiteten som ligger til grunn for å kunne uttrykke seg gjennom musikk.
Andre interessante prosjekter
En gjennomgående utfordring for Dungeons and Dragons spillere, er håndtering av “loot” tilhørende hele gruppa. For å forenkle denne prosessen, utviklet vi en webapplikasjon, slik at spillerne kunne fokusere mer på selve spillet.
Applikasjonen ble bygget på ASP.NET Core, og benyttet Entity Framework for datahåndtering og Identity Framework for brukerautentisering og autorisasjon. Koden ble skrevet i C# og Typescript, og fulgte MVC designmønsteret. For å sikre enkel bygging og testing, integrerte vi Docker i utviklingsflyten.
Som gruppe identifiserte vi en mangel hos tradisjonelle gjøremålsapplikasjoner for mobil, nemlig samarbeid og deling på tvers av mobiloperativsystemer. Applikasjonen har en overordnet kategorisering av gjøremål i mapper. For å muliggjøre samarbeid kan man dele disse mappene med andre brukere. Innad i mappene kan alle samarbeidende brukere legge til, endre, fullføre og slette gjøremål. Gjøremål kan videre tildeles en deadline, med en egen side som viser gjøremål som utløper i dag uavhengig av kategori.
For å utvikle denne applikasjonen anvendte vi hovedsakelig React Native og Expo for frontend og Firebase for backend.
I faget “Avanserte Operativsystemer” utviklet vi et grunnleggende operativsystem fra bunnen av, med fokus på kjernekomponenter som global descriptor table (GDT), interrupt descriptor table (IDT), interrupt service routines (ISRs), interrupt requests (IRQs), minnehåndtering, paging, og programmable interval timer (PIT). Operativsystemet, skrevet i C, C++ og Assembly, kunne ved ferdigstilt prosjekt skrive tekst til skjerm, ta i mot input fra tastaturet, og spille av musikk.