"Uusien teknologioiden oppiminen, ongelmien ratkaisu ja onnistumisen tunne toteutuvat tässä työssä mitä parhaiten"

BACKEND

Yleisimmin käytetyt ohjelmointikielet Almassa ovat TypeScript/JavaScript ( NodeJS), Go, Python, Kotlin ja Java, mutta myös muitakin kieliä löytyy, kuten PHP ja Ruby.

Devaajien omat kehitysympäristöt ovat pääosin macOS tai GNU/Linux -pohjaisia, osa tiimeistä käyttää konttiteknologioita (kuten Docker) ja niissä kehitettyjä verkkopalvelujen taustajärjestelmiä ajetaan pääosin Amazonin pilvessä tuotteiden kuten Lambda, Fargate, ECS, Beanstalk tai EC2 avulla.

Kuukausitasolla Alman eri verkkopalvelut kerryttävät yhteensä yli 750 miljoonaa sivulatausta, joten meiltä taatusti löytyy skaalaan liittyviä mielenkiintoisia haasteita!

Python-ohjelmointikieltä käytetään paljon datan parissa työskentelyyn esim. AWS EMR, Glue ETL ja SageMaker -työkalujen kanssa. Lisäksi datan kanssa työskennellessä käytämme myös Google Cloud-pilveä.

CI/CD

Lähdekoodit asuvat Github-versionhallinnassa, josta tuotantoonviennit on pitkälti automatisoitu käyttäen Continuous integration & deployment -malleja (CI/CD) muun muassa TravisCI- ja CodePipeline-tuotteiden avulla.

CI/CD-putki vastaa muun muassa yksikkö- & end-to-end -testien suorittamisesta ja koodin kääntämisestä, jonka jälkeen projektista riippuen muutokset viedään eri ympäristöihin esikatseltavaksi & testattavaksi ennen varsinaista tuotantoonvientiä.

Yleensä tuotantoonvientejä on useita päivässä!

FRONTEND & MOBIILI

Alman sivustojen käyttöliittymäkehitys on viime vuosina keskittynyt ReactJS frameworkin päälle. Erityisesti Alman kuluttajille suunnatuista verkkosivustoista valtaosa on nykyään ReactJS pohjaisia sivustoja. Lisäksi olemme lähteneet kehittämään uutissivustojemme mobiiliapplikaatioalustaa React Nativella, mikä mahdollistaa luontevan siirtymän webbidevauksen maailmasta myös mobiilidevaukseen.

Erityisesti vuoden 2019 aikana TypeScript kasvatti suosiotaan ja on jo monessa tiimissä oletusarvoinen tapa tuottaa JavaScript-koodia. Usein CSS-tyylit määritellään joko Sass-kielellä tai React Styled Components -kirjastolla. Selaintestausta varten käytämme mm. BrowserStack-palvelua.

INFRASTRUCTURE AS CODE

Almassa olemme käyttäneet julkisia pilvipalveluita jo vuodesta 2012 ja nykyisin suurin osa toteutuksistamme elää Amazonin pilvessä. Uskomme vahvasti “ Infrastructure as Code ” -ajatteluun, jossa pilviympäristöt on määritelty työkaluilla kuten Cloud​Formation, CDK tai Terraform.

Infrastruktuurin konfiguraatiotiedostot on versioitu Git-versionhallinnassa jolloin pilvi-infrastruktuuri todellakin on osa koodia ja muutokset infrastruktuuriin on helposti jäljitettävissä sekä parametrisoinnin avulla usein eri ympäristöjen (projektista riippuen, esim. DEVELOPMENT, FEATURE, STAGING, QA, PREPRODUCTION & PRODUCTION) määrittäminen saman konfiguraatiotiedoston pohjalta on helppoa.

SERVERLESS

Olemme Almassa myös innostuneet serverless-toteutustavasta jossa hyödynnetään muun muassa AWS:n Lambda-funktioita ja hallinnoituja palveluita (esim. DynamoDB, Aurora Serverless, S3, Kinesis ja SNS).

Serverless-toteutusten osalta hienoa on, että niiden ansiosta omien virtuaalipalvelinten ylläpitotarve pilvessä on vähäisempi ja voimme keskittyä uusien toiminnallisuuksien kehittämiseen.

Serverless-mallilla teemme monenlaisia rajapintoja (RESTful ja GraphQL) ja esimerkiksi suoritamme ReactJS-sivustojen server-side renderöintiä.

Skaalasta kertoo jotain se että Alman AWS-tileillä on kuukausitasolla noin kaksi miljardia Lambda-funktiokutsua kuukaudessa!

UX & DESIGN

Viime vuosina useissa tiimeissä on siirrytty käyttämään Figma-työkalua uusien tuotteiden suunnitteluun ja erityisesti käyttökokemuksen testaukseen.

Figma mahdollista paremmin suunnittelun tekemisen yhdessä muiden suunnittelijoiden tai muun tiimin kanssa sekä esimerkiksi käyttäjätestauksen prototyyppitasolla oikeiden loppukäyttäjien kanssa!

Lisäksi käytössä on Affinity ja Adobe Creative Cloud -grafiikkaohjelmat rasteri- & vektorigrafiikan luomiseen.

Iteratiivinen tekemismalli tukee jatkuvaa käyttökokemuksen parantamista ja tuotteet kuten Google Optimize mahdollistavat A/B-testauksen tekemisen oikeilla loppukäyttäjillä!

KOMMUNIKAATIO

Almalta löytyy noin 700 hengen aktiivinen Slack-yhteisö jossa tiimi- & projektikohtaisten kanavien lisäksi löytyy muun muassa eri aihealueiden (esim. Frontend, Golang tai AWS-pilvi) ympärille keskittyviä avoimia kanavia.

Useiden toimipisteiden ja laajasti hyödynnetyn etätyömahdollisuuden vuoksi Almassa on satsattu myös palaveriteknologiaan, joten palaverit onnistuvat vaikka olisitkin etänä!

DATA, ANALYTIIKKA & KONEOPPIMINEN

Data on kriittinen osa liiketoimintaa nykypäivänä ja sitä löytyy Almastakin monessa muodossa ja useilla työkaluilla hyödynnettynä: Esimerkiksiksi Amazonin pilvessä dataa tallennetaan & käsitellään tuotteilla kuten S3, Redshift, DynamoDB ja Athena. Massiivisin, satojen teratavujen kokoinen, datavarasto löytyy Google Cloud Platform -pilven BigQuery-palvelusta jonka, ohella Googlelta käytetään Data Studio ja Analytics -tuotteita. Lisäksi käytössä myös Microsoft Power BI.

Koneoppimisessa tärkeä työväline meille on AWS SageMaker. Dataa käsitellään paljon AWS:n EMR ja Glue ETL -työkalujen avulla. Datan ohjelmallisessa käsittelyssä Python on yleisin ohjelmointikieli.