Bak en ganske anonym sort port i parallell-gata til Karl Johan, Grensen, midt i Oslo sentrum, blir en av Norges største nettsider - og ikke minst apper, som står for halve trafikken - skapt.
Det er en snedig følelse å vandre rundt i kontorlandskapet til Finn; en slags fysisk representasjon av den digitale appen man har i lomma si. Nesten som i 80-tallsfilmen "Kjære jeg krympet barna" med Rick Moranis, føles det som man har blitt forminsket og kan vandre mellom mikrochips og miniatyr-ingeniører og utforske.
Men det er altså ikke minatyr-ingeniører inni appen din som lager Finn. Over 300 mennesker jobber daglig med tjenesten alle i Norge har et forhold til.
180 av dem er teknologer, og fem av disse igjen jobber i søketeamet, som kode24 fikk audiens hos før Norges utviklere ble korona-forvist til hjemmekontorene sine.
Vi var nemlig nysgjerrige på hvordan Finn-søket kan være så raskt, hvordan det henger sammen, og ikke minst hvorfor de har valgt teknologien de bruker.
Vi blir stående å se oss rundt i resepsjonen mens vi venter på vårt følge for dagen. Veggbrodier, respatex-bord, en Tiki-bar og en utskåret trollfigur med blå bukse og store briller; et slags tversnitt av Finn-torget har alle fått plass.
- Den der var rar, stusser fotograf for dagen, redaktør Ole Petter Baugerød Stokke, når han får øye på trollfiguren i tre.
Før han sekundet etter utbryter: "Å jaaaa, det er han fyren fra Finn-reklamene".
I samme sekund tar utvikler på søketeamet Marte Helene Austhdahl oss i mot, og vi vandrer videre inn i lokalet blant gamle skåler, mix-mastere og kontorpulter.
To i sekundet
Austhdahl forteller at hun har jobbet i Finn mer eller mindre siden 2013. Godt over gjennomsnittlig tid hos en arbeidsgiver vi er vant til å høre om fra andre utviklere.
- Det skjer mye her hele tiden, og vil man prøve noe nytt, kan man alltids prøve seg på et annet team, forteller hun.
Akkurat nå jobber hun altså for søketeamet, et team som visstnok kalles Team Kanarifugl internt.
- Det er fordi vårt dashboard alltid lyser gult først når noe er galt, flirer Austdahl.
Søketeamet i Finn forvalter mange av tjenestene rundt annonsene som ramler inn i Finn-systemet - rundt to stykker i sekundet for å være helt nøyaktig.
En del av systemet er alt som skjer når brukeren ber om noe. For eksempel når du søker etter elektriske driller av merket Makita på torget.
En annen holder oversikt over brukernes ti millioner lagrede søk. Hver gang en annonse kommer inn i systemet spinnes det nemlig i gang en matche-tjeneste som ser etter treff i søkene dine.
Én annonse matcher i snitt 10.000 lagrede søk, og hver morgen, mellom klokka fem og seks, går det ut 1,4 millioner søketreff-e-poster fra Finn. I løpet av dagen går det dessuten rundt 50 millioner push-meldinger.
SolR vs. ElasticSearch
Sentralt i søket til Finn sitter søkeplatformen Apache Solr. En platform Finn har brukt siden 2006/2007, forteller utvikler og teknisk ansvarlig på søketeamet, Fredrik Rødland.
Han har jobbet i Finn siden 2005, og kjenner godt til historikken.
- Schibsted hadde en stor avtale med søkemotoren Fast. Avtalen var kjempedyr og helt urimelig. Planen deres var å ta over verden og etablere en norsk søkemotor, humrer Rødland.
- Vi mente at vi ikke trengte dyre søkeavtaler med Fast og lagde en proof of concept. I 2006/2007 var Solr greia, og nå er vi altså bundet ganske hardt til den.
Og Solr ser ut til å holde koken. Rødland forteller at et gjennomsnittlig Finn-søk tar rundt 80 millisekunder.
- Vi hadde en liten workshop, fordi vi trodde søket hadde dårlig ytelse. Men så viste det seg at det var ganske raskt, likevel, flirer Austdahl fra sida.
«Vi har begynt å ta i bruk Elasticsearch. Den er jo litt hippere om dagen.»
Rødland tegner og viser på tavla hvordan løpet for annonser er i Finn, fra de først kommer inn i Apache Kafka sin kø-strøm, til de blir plukket opp, beriket og stappet i SolR-basen.
Deretter kjører matchekoden og gjør utdrag fra Solr. Men, gjengen snuser også på andre databaseløsninger.
- Vi har begynt å ta i bruk Elasticsearch. Den er jo litt hippere om dagen, er open source, og basert på Lucene akkurat som Solr. Men det aller viktigste er at den har matchmaking innebygget, forteller Rødland.
Gjengen har likevel måttet gjøre et par justeringer. Elasticsearch ville nemlig iterere på alle annonser hver gang, noe som ikke egnet seg for Finns enorme annonsebase. Gjengen ser ut til å ha troen på Elasticsearch fremover.
- Det er veldig kult, blocket.se skal faktisk bytte over til dem, forteller Rødland entusiastisk.
Legacy er Java
Teknisk sjef Rødland forteller at de i Finn har en policy på at man eier hele stacken, fra bunn til topp.
- Men kompetansemessig er vi bedre på backend, og vi har andre team som er mye bedre på frontend. For selv om søkesidene i Finn.no sin nett-tjeneste har vært en Java-webapp med JavaServer Pages og Mustache-templates, er et annet team i full sving med å rulle ut en flunkende ny webapp basert på Next.js.
Det er nemlig et helt annet språk enn JavaScript søkegjengen har falt for.
- Vi var på KotlinConf i fjor og i år, det ser bare så mye bedre ut enn Java, også funker det bra i IntelliJ, forteller søketeam-utvikler Henrik Falch.
- Vi testet Kotlin tidlig, og nå er det vårt teams språk, forteller Rødland.
Teamet må innrømme at det er mye legacy-kode i Finn. Det meste skrevet i Java, noe i Scala.
- Noen falt veldig for Scala her, men det fikk ikke så mye traction, humrer Rødland.
- Alt nytt vi skriver er i Kotlin.
Excel-ark fra sjefene
I hverdagen har gjengen et ganske avslappet forhold til arbeidsprosesser.
- Vi jobber som det passer oss best. Før lunsj snur vi stolene, og tar en fot i bakken. Man går jo litt ut av flyt før lunsj. Så rundt 11:28 snur vi stolene, og 11:30 går vi til lunsj, forteller Austdahl.
«Vi jobber som det passer oss best.»
- Finn begynte med Scrum rundt 2007/2008, så utvikla det seg videre internt, og vi tilpasset det til oss, utdyper hun.
De store oppgavene derimot, kommer fra noe teamet kaller "Excel-arket", som ja, er et tradisjonelt Excel-ark.
- Excel-arket har oppgaver i størrelse 1-2 måneder. Det er en liste for hele selskapet. Akkurat nå er det et par oppgaver som treffer oss der. Da er det veldig viktig at vi leverer på det. I praksis går de oppgavene nå på at vi skal vise noen nye anbefalinger i e-postene vi sender ut, forteller Rødland.
- Vi har forresten også mulighet til å få ting inn på lista, så lenge vi klarer å overtale en arkitekt eller andre at det er viktig for Finn. Slik som når vi nå skal over på Google Cloud for hosting, forteller Rødland.
Blocket ser til Finn
- Om vi har noen internasjonale siter vi ser opp til? Tja, det er nok kanskje Amazon og Etsy, forteller Austdahl, og gir egentlig inntrykk av at det er få ledestjerner for Norges største rubrikkmarked.
- Google hadde søk man kunne lagre og få varsel på det, og appen IFTTT har vi også latt oss inspirere av. Men på matchingen var vi såpass frampå at det var det ikke så mange som hadde gjort.
- Hva med blocket.se, Sverige største rubrikkmarked-tjeneste, ser dere opp til dem?
- Blocket.se? De ser jo til oss! flirer Rødland.
Kanskje er det derfor Finn har utviklere som har holdt koken i syv år, som Austdahl og Falch. Og ikke minst Rødland, som har vært involvert i Finn i nærmere 15 år.
Også appene lager Finn selv, og av 180 teknologer, er visstnok under ti innleide konsulenter. Uvanlig for et utviklingsprosjekt av Finn.no sin størrelse i Norge. Gjengen kommer faktisk bare på én konsulent, som visstnok heter Nils; konsulent-Nils på folkemunne.
- Det er bra her, forteller Rødland
- Flere av oss har vært ute i perioder, for å prøve noe nytt. Men de fleste kommer tilbake til trygge Finn.
Nina skal få FINNs 800 mikrotjenester ut i skyen
- Mye å tenke på, forteller Ukas Koder Nina Angelvik i FINN.no.