Konsultin näkökulma

Kehittämässä Veikkauksen asiakasjärjestelmäkokonaisuutta

Olen Aleksi, 25-vuotias ohjelmistokehittäjä Poplatekilla. Yritykseen päädyin opintojeni viimeistelyvaiheessa vajaat 2,5 vuotta sitten. Ennen opintojeni päättymistä työskentelin B2B-maksuratkaisuihin erikoistuneessa startupissa vajaan vuoden. Jatkoin aluksi vastaavalla linjalla Poplatekin maksuratkaisuhin liittyvässä tuotekehityksessä. Konsultin tehtävät kuitenkin kutkuttivat alusta pitäen, ja siirryinkin niihin vajaan vuoden jälkeen.

 

Koen olevani ns. tekkigeneralisti – joudun jatkuvasti ottamaan haltuun uusia teknologioita ja ohjelmointikieliä nopealla aikataululla. Preferenssinäni on kuitenkin backend-puolen devaaminen funktionaalisesti, siitä yksinkertaisesta syystä, että pidän kyseistä ohjelmointiparadigmaa hyvänä valintana moderniin ohjelmistokehitykseen.

Olen viihtynyt kuluneen reilun 1,5 vuoden ajan Veikkauksen asiakasjärjestelmäkokonaisuutta kehittävässä noin kahdeksan hengen tiimissä. Työskentelen pääasiassa asiakkaan tiloissa. Tiimillä on juurensa useiden vuosien takana, ja ihmiset ovat vaihtuneet. Uskon osan asiantuntevasta ja uutta pelkäämättömästä kulttuurista periytyneen jo varhaisista ajoista. 

 

Tiimin projektit ovat monipuolisia, sillä keskeinen domain takaa myös projektirajoja ylittävää tekemistä. Tämä näkyy muun muassa erilaisissa integraatioissa järjestelmien välillä; suurin osa muista järjestelmistä on palvelukokonaisuuden suoria tai epäsuoria käyttäjiä.

 

Kieliä ja muita teknologioita tiimissä on enemmän kuin devaajia. Kaikki päätyvät kuitenkin ennemmin tai myöhemmin käyttämään ainakin valtaosaa niistä. Käytettyjä kieliä ovat mm. Kotlin, Scala, Java, JavaScript/TypeScript (Node.js ja React) ja yksi viimeisimmistä valinnoista outolintu ReasonML – Facebookin kehittämä, JavaScriptiksi kääntyvä vaihtoehtoinen syntaksi OCaml-kielelle. 

 

Näiden lisäksi hoidamme itse palveluiden pystytystä AWS:ään ja ylläpitoa DevOps-henkisesti. Osa järjestelmän vanhemmista komponenteista on edelleen mörkönä konesalin pimeydessä. AWS:ään viemme kuitenkin uudet palvelut tyypillisesti Serverless-pohjaisina, joko Lambdoina tai Docker-kontteina Fargate-palveluun. Tietokantoina käytämme tyypillisesti projektista riippuen joko RDS/Auroraa (MariaDB/MySQL) tai DynamoDB:tä. Muiden infrastruktuuriin suoranaisesti liittymättömien AWS-palveluiden käyttö määräytyy tilanteen mukaan.

 

Projektin teknologiat

 

Tiimin teknologiakenttä elää kaiken aikaa. Harvemmin päädymme kuitenkaan kirjoittamaan vanhaa palvelua uudestaan. Monoliittisesta palvelusta saatetaan lohkaista uutta mikropalvelua, jota lähdetään tekemään uudella teknologialla. Joskus on kuitenkin tullut vastaan myös soveltumatonta teknologiaa; erään projektin kohdalla siirryimme API Gateway ja Lambda -teknologioista ALB ja Fargate -yhdistelmään muun muassa käyttötarkoitukseen liian pitkien Lambdojen kylmäkäynnistysten vuoksi. Tyypillisesti rajoitteet AWS:n päädyssä korjataan kuitenkin nopeasti. Tällä hetkellä, noin puoli vuotta myöhemmin, kylmäkäynnistys on saatu jo riittävän pieneksi kyseiseen käyttötarkoitukseen.

 

Eräs miellyttävimmistä uusista tuttavuuksista tiimin projektissa on ollut Kotlin ja siihen liittyvä ekosysteemi, kuten Ktor-viitekehys. Preferoin Scalaa, mutta suuri osa ihmisistä vaikuttaa karttavan sitä korkeamman oppimiskynnyksen vuoksi. Kotlin on kuitenkin sopiva kompromissi Javan ja Scalan väliltä; en koe olevani täysin “aseeton”, ja funktionaalisen ohjelmoinnin tuki on tyypillisesti omiin mieltymyksiini riittävä. Kaipailen kuitenkin mm. Scalan kattavampaa pattern matching -tekniikkaa. 

 

Merkittävä osa tiimin projektien uusista asioista ei kuitenkaan liity suoraan teknologioihin vaan erilaisiin tapoihin toimia. Aiemmissa projekteissa palvelut olivat olleet AWS:ssä EC2- tai Lambda-pohjaisina, joten konesalipuolen jäykkyys on antanut kenties uutta arvostusta tiettyihin lähes itsestäänselvyyksinä pitämiini asioihin. Murrosvaihe mahdollistaa kuitenkin myös uuden suunnitteluun osallistumisen, mikä ei olisi samalla tavalla muutoin mahdollista.

 


Haluatko mukaan meidän jatkuvasti oppivaan ja kehittyvään porukkaan? Hae meille täältä!

Aleksi TIlli

Aleksi TIlli

Backend Developer

Konsulttina Veikkauksella

Ohjelmistokehitystä pelaamisen maailmassa

Konsultin näkökulma

Uudistamassa Veikkauksen myyntiä

Asiakkaalla töissä

HSL-projektin parissa

Tilaa Poplatekin uutiskirje

Tilaamalla uutiskirjeen pysyt kärryillä Poplatekin tapahtumista ja saat tietoa digitalisaation mahdollisuuksista ja menestystarinoista suoraan sähköpostiisi.