Tietoja
Joodari, eli Joona, on…
…ohjelmistokehittäjä. Minulle tutuimpia ohjelmointikieliä ovat TypeScript, Rust ja C#. Olen tehnyt muillakin kielillä pieniä projekteja, esimerkiksi pythonilla ja aikoinaan myös PHPllä.
…webbi-asiantuntija. Mielestäni parhaat sivustot on suunniteltu vaatimuksiin sopiviksi, eikä vain aina uusimman trendin mukaan. Hyviä sivustoja saa nykyään helposti rakennettua ihan perinteisellä HTML koodillakin. JavaScriptiä ei usein oikeasti tarvita, ja moderneilla web applikaatioilla on suurempana riskinä hajota vanhemmilla selaimilla. Mutta jos vaatimuksiin kuuluu paljon interaktiivisia tai monimutkaisia osia, on silloin Angular, React tai Vue.js kehykset hyviä vaihtoehtoja sivuston kehitykseen. Minulla on varsinkin Angularin kanssa näyttöohjelmiston kehityksestä hiljattaista kokemusta.
…häkkeri, tai hieman hienommin sanoen, tietoteknologiaharrastelija. Olen tehnyt kaikenlaisia harrasteluprojekteja, esimerkiksi muuntanut vanhan PS2 hiiren USB hiireksi arduinolla. Olen opettanut itselle C# dekompilointia ja sen CIL lukemista, sillä tietoturvallisuus ja yksityisyys ovat minulle tärkeitä. Olen käyttänyt näitä taitojani myös pelimodien tekoon ja reverse engineerannut API rajapintoja.
…linux sysadmini, eli palvelimen hallinnoija. Olen ylläpitänyt kaikenmoisia erilaisia ohjelmistoja ja huolehtinut palveluiden huoltamisessa ja ylläpidossa. Asiat kuten Docker, CI/CD, fail2ban & palomuuri hallinta ja *nix pohjaisten palvelimien ylläpito on tuttua kauraa.
Portfolio
Olen vuosien varrella tehnyt useita projekteja. Osasta löytyy vielä lähdekoodit tai demotkin. Olen seuraavaksi mainittujen lisäksi myös kontribioinut muutamiin avoimen lähdekoodin projekteihin ja askarrellut paljon muitakin pienempiä projekteja.
Hankinta frontendi
Hämeen partiopiirin vuonna 2019 järjestämälle piirileirille hankintojen keräys systeemi. Rakennettu NodeJS & React.js avulla. Eri osa alueiden päälliköt listasivat sivun applikaatioon mitä kaikkia tavaroita he tarvitsevat ja millekin osa-alueelle. Tiedot valittiin listoista, joka oli jo valmiiksi generoitu nopeasti tehdyllä nodejs scriptilläni alkuperäisistä csv tiedoista, jne.

Koita demoa (huomioithan että punaisella taustalla oleva virhe on sen takia että backend puuttuu demosta).
Tai selaile lähdekoodia.
Visualisointi webbi-applikaatio
Vue.js applikaatio joka piirtää graafin syötettyjen alkoholijuomien ja veren määrän arvion perusteella.

Koita demoa tai selaa lähdekoodia.
Vanha blogi
Kirjoittelin yhdessä vaiheessa blogia, jonka olin rakentanut staattisen sivuston generaattoria käyttämällä. Olin tehnyt täysin oman teemalla ja kustomoinut sen taustalla ollutta Hugoa.

Tein sen haasteena mahdollisimman minimaalisesta ja funktionaalisesta sivustosta ilman JavaScriptiä. Blogi sisälsi esimerkiksi sivuvalikon jonka pystyi avaamaan ja sulkemaan täysin. Olen vaiheessa uudelleen brändittää koko blogin, jotenka valitettavasti se ei ole julkisesti saatavilla tällä hetkellä.
CI & CD
Tein ammattikorkeakoulussa tutkimusseminaarityöni vanhan blogisivustoni julkaisun automaatioputkesta. Tutkielmani yksityisyydensuojauksen takia hieman muokkailtu versio on myös luettavissa (PDF).
Kirjoitin Rustilla Hetznerin APIa käyttävän CI autoscalering, joka käytti Drone CI instanssia.
Rust projekteja
Minulla on Rust kielen osaamista reilusti, ja pidän sen käytöstä. Monien keskeneräisten ja pienempien projektieni lisäksi minulla on muutama hieman suurempi esittelemisen arvoinen projekti:
-
GUI applikaatio sosiaalisen VR pelin kaverilistan näyttämiseen jonka lähdekoodi on avointa.
-
Webbi-sivuston actix web kirjastoa backendiin käyttäen ja maud kirjastoa taas frontendiin.
-
Avoimen lähdekoodin API kirjastoja sosiaalisten VR pelien REST & WebSocket rajapintoihin, Resonite, VRChat, ChilloutVR.
Palvelimien ylläpito
Ylläpidän omia palvelimiani. Esimerkkinä tästä on juuri nyt vierailemasi webbi-sivu. Minulle nginx konfiguraatio ovat hyvin tuttua, ja aikaisempaa kokemusta löytyy myös HaProxy ja Apache HTTP serverin konffeista myös.
Palvelemissani pyöri aikaisemmin Debian, nykyään huvin vuoksi ja työpöytäni samaistamisen kanssa käytän niissä Arch linuxia. RHEL linux derioivua distroa käytin taas koulun kursseilla, ja Alpine on käytössä useimmista projektieni konteissa. Webbi-sivujen lisäksi pyöritän myös omaa VPN palvelintani, sähköpostipalvelinta, monitorointia sekä muita ohjelmistoja.
Aikoinaan myös pystytin ja ylläpidin muutaman vuoden myös Nokian Eräveikkojen WordPress verkkosivuja.

Nykyään kyseinen sivusto on ymmärtääkseni Suomen Partiolaisten ylläpitämä.