I en serie intervjuer får vi träffa några av Citerus utvecklare ute på uppdrag. Här träffar vi Ola Rende som på ett fintechbolag jobbar experimentdrivet i ett autonomt team.
Hej Ola! Berätta kort om ditt uppdrag.
Jag arbetar som backendutvecklare och scrum master på ett fintechbolag där jag ingår i ett kanban-team som bygger ett distribuerat system skrivet i Java och Groovy, vilket kommunicerar med tjänster skapade av andra team inom bolaget och med tredjepartssystem. Vi arbetar autonomt och sköter därför själva alla delar av processen, från planering, implementation och testning till produktionssättning och drift.
Hur kommer det sig att både Java och Groovy används?
Generellt sett har teamen här i väldigt stor utsträckning fria händer gällande vilka verktyg som används för att lösa sina uppgifter. Java är visserligen det vanligaste språket, men vi har även team som använder Groovy, Scala och Kotlin. Alla dessa JVM-språk kan anropa Java-kod, vilket gör att vi kan dela bibliotek skrivna i Java mellan teamen. I mitt teams fall så används Java för kod som vi vill dela med andra team, medan Groovy används dels för att skriva tester och dels för att skapa DSL:er (domänspecifika språk) som analytikerna lättare kan ta till sig och använda.
Hur är Groovy när det kommer till DSL:er. Blir det rent, tydligt och bra?
Ja, Groovys syntax är mycket lättviktig. Det går att utelämna både semikolon, parenteser, return-nyckelord och variablers datatyper, vilket kanske låter märkligt om man är van vid Java. Resultatet blir dock en mer läslig kod.
Vad känner du särskilt att du bidragit med in till teamet och uppdraget?
Några av mina viktigaste bidrag har nog varit att dela vad jag lärt mig om att bygga små applikationer för att lösa specifika problem framför stora applikationer som löser många problem, vanan att arbeta data-drivet (genom att göra experiment, samla data, dra slutsatser och göra nya experiment) liksom vanan att göra små inkrementella leveranser framför större leveranser med längre mellanrum.
Vilka är de viktigaste lärdomar du gjort?
Uppdraget har varit ett oerhört lärorikt uppdrag på många sätt, och bland de viktigaste lärdomarna jag gjort så utmärker sig ett par saker:
- Docker är inte bara utmärkt för att lätt skapa infrastruktur-som-kod vid nyutveckling utan det kan även användas för att isolera och hantera legacy-system och hur de kommunicerar med andra system.
- Att ha tillräcklig monitorering och loggning av distribuerade system är av yttersta vikt för att kunna underhålla och förbättra dem.
- Dagens molntjänster har blivit oerhört imponerande. Det är lättare än någonsin tidigare att skapa applikationer som automatiskt kan anpassa sig efter varierande trafikmängder och oväntade fel.
Tack Ola!
Vill du jobba med Ola? Kolla gärna här!