Utviklerprofilen

– Jeg utfordret meg selv til å bruke MotionLayout, og det fungerte overraskende bra

Les ukens utviklerintervju.

Ernest Saidu Kamara holdt i 2019 et introduksjonskurs i IoT i Freetown, Sierra Leone.
Ernest Saidu Kamara holdt i 2019 et introduksjonskurs i IoT i Freetown, Sierra Leone. (Foto: Privat)

Les ukens utviklerintervju.

Hei, dette er en Ekstra-sak som noen har delt med deg.
Lyst til å lese mer? Få fri tilgang for kun 235,- i måneden.
Bli Ekstra-abonnent »

Denne gangen er det Ernest Saidu Kamara (32), konsulent hos Shortcut, som har stilt opp som utviklerprofil.

Kan du kort beskrive stillingen og oppgavene dine?
Jeg er senior Android-utvikler, for tiden konsulent i DNB MinBank i Oslo. Min hovedoppgave er å utvikle utmerkede skalerbare mobilapplikasjoner (apper) og tjenester for våre kunder med moderne teknologi for å passe til deres mål. Normalt koder jeg (utvikler, tester og distribuerer) og gjennomgår kode skrevet av andre utviklere. Imidlertid bidrar jeg noen ganger til brainstorming, planlegging og diskusjoner på høyt nivå med teamledere.

Jeg liker å lage mobilapper som gir verdi til folks liv.

Hvorfor valgte du akkurat denne arbeidsgiveren?
Jeg liker å lage mobilapper som gir verdi til folks liv, og jeg liker å jobbe på en flerkulturell arbeidsplass. Shortcut har disse attributtene og var et godt valg, etter min mening.

Hvor jobber du mest, på kontoret, på hjemmekontoret eller ute hos kunder?
Før koronapandemien jobbet jeg ofte på kundens kontor, det vil si DNBs hovedkontor i Bjørvika. Siden da har det blitt mye hjemmekontor. Men jeg jobber på kontoret på fredager for korte synkroniseringer og forretningsoppdateringer, i tillegg til forfriskninger med andre konsulenter fra Shortcut.

Hvordan påvirker korona-pandemien din arbeidssituasjon?
Koronapandemien har gjort meg mindre produktiv, blant annet ved at jeg har fått ryggsmerter på grunn av feil sittestilling. Å jobbe hjemmefra i løpet av den første måneden var vanskelig siden barnehagen var stengt og vi har en to år gammel datter og en stesønn på fjorten. Ellers er jeg takknemlig for å beholde jobben min, mens flere erfarne og dyktige utviklere er uten jobb.

Kan du fortelle oss litt om prosjektet / prosjektene du har jobbet med i det siste?
Som jeg nevnte ovenfor, koder jeg ofte på DNBs MinBank Android-app og gjør en del code-reviews. Så vi jobber som et team der det ikke er vanskelig å spørre om hjelp. Mitt første store prosjekt hos DNB var «Theming».

DNB deler opp bankkundene sine i tre typer brukere: Standard, Saga og Privatbank. Alle disse brukerne har et distinkt tema og alternativ for å bruke Dark-temaet. En utvikler og jeg bygde et temabasert komponentbibliotek for DNBs Android-apper. Hver komponent er stilbasert på spesifikasjoner og funksjoner. Det er enkelt å bruke disse komponentene og krever ingen spesielle Android-utviklingsferdigheter.

I tillegg har jeg jobbet med å renovere betalingsfunksjonene i Android-appen. DNB har nye og forbedrede betalings-API-er med nye funksjoner og ytelsesforbedring for sine mobilapper.

Hvor lenge har du jobbet som utvikler?
Min utviklerreise begynte noen år etter fødselen av Apples App Store i 2008, mens jeg var student på høyskolen. Nå har jeg utviklet mobilapplikasjoner i over ti år.

Har du vært ansatt på samme sted hele tiden?
Nei, jeg var hos Evry finansielle tjenester i Trondheim i et år, etter syv år i Zedge. Både hos Evry og Zedge jobbet jeg som Android-utvikler.

Dessverre eide jeg aldri en data-maskin, heller ikke et dataspill, før i 2005.

Hvor gammel var du da du først begynte å lære deg programmering?
Interessant nok skrev jeg mine første kodelinjer først da jeg var 20 år, for omtrent 12 år siden, i løpet av mitt første år på høyskolen. Dessverre eide jeg aldri en datamaskin, heller ikke et dataspill, før i 2005, to år etter at jeg flyttet (flyktning) til Norge med familien på grunn av borgerkrigen i Sierra Leone, mitt fødeland. Deretter ble jeg en selvlært mobilapp-utvikler og IoT-entusiast.

Hva slags utdanning har du?
Jeg har en bachelor i Dataingeniør, med hovedfag i programvareutvikling fra Høgskolen i Sør-Trøndelag, Fakultet for informatikk og e-læring. Nå sammenslått med Norges teknisk-naturvitenskapelige universitet, NTNU.

Hvilke plattformer utvikler du vanligvis på?
Primært utvikler jeg for Android (mobil), men jeg utvikler også noen ganger på iOS, og på kryssplattformer som Flutter og React Native.

Hvilken pc-plattform/OS foretrekker du selv å bruke?
Helst Mac eller Linux, men jeg har ingen problemer med å bruke Windows.

Som Mac-bruker (fanboy) i de siste ti årene liker jeg Apples programvare og produkter, fordi produktene deres er innovative og fungerer sømløst sammen. Mac-maskiner trenger ikke drivere som PC-er og er veldig bærbare.

Hvilke programmeringsspråk bruker du?
Som Android-utvikler kan du enten bruk Java eller Kotlin, eller begge deler. For øyeblikket er kodebasen hos DNB stort sett Kotlin.

Java er uten tvil mitt favoritt-programmerings-språk.

Hva er favorittspråket ditt, og hvorfor?
Java er uten tvil mitt favoritt-programmeringsspråk. Jeg er veldig komfortabel med det, og har skrevet mer kode i Java enn noen andre programmeringsspråk. Kotlin lukker imidlertid gapet, og er mitt foretrukne programmeringsspråk.

Hvilke to verktøy kan du ikke klare deg uten, og hvorfor?
Det er utfordrende å utvikle en Android-app (Native) uten Android Studio, så for utvikling kan jeg ikke klare meg uten det. Kommandolinjegrensesnitt (iTerm for å være presis) er det andre verktøyet jeg bruker daglig for automatisering og installasjon av apper og binære pakker via Homebrew. Det er et åpen kildekodesystem for styring av programvarepakker, noe som forenkler installasjonen av programvare på Apples MacOS-operativsystem og Linux.

Hva slags oppgaver liker du å jobbe best?
Ærlig talt, jeg liker utfordrende oppgaver så lenge det er spennende. Jeg liker jeg oppgaver der jeg kan bruke kreativiteten min til å løse komplekse designproblemer ved hjelp av Android-rammeverk.

Et godt eksempel er hvordan jeg brukte MotionLayout for å skape onboarding-skjermene til «Pengebruk», en tjeneste i DNBs Android-app som hjelper deg med å få bedre økonomisk oversikt på pengene dine. MotionLayout er en layouttype på Android som hjelper deg med å administrere bevegelses- og widget-animasjoner i appen din.

Jeg utfordret meg selv til å bruke MotionLayout, og det fungerte overraskende bra

Vanligvis ville jeg implementere en slik onboarding-skjerm med en ViewPager (en lysbildefremvisning-lignende komponent i Android-rammeverket) og animere mellom disse skjermbildene ved å bruke overganger. Men jeg utfordret meg selv til å bruke MotionLayout, og det fungerte overraskende bra. Selv skrev jeg en Medium-artikkel der jeg delte mine erfaringer.

Hvordan sørger du for å holde deg faglig oppdatert?
Jeg får Android-oppdateringene mine via Android Weekly, et nyhetsbrev om Android- og Kotlin-utvikling som inneholder nye artikler, opplæringsprogrammer, biblioteker og kommende Android-konferanser. Det er et utmerket nettsted, og jeg anbefaler det til alle Android-utviklere. Jeg holder meg også oppdatert ved å delta på lokale meetups og konferanser så mye som mulig. Jeg var medarrangør for Google Developer Group (GDG) Trondheim og begynte nylig i GDG-Oslo teamet.

I hvilken grad har metoder og teknologier som DevOps, maskinlæring, nettsky og konteinere endret måten du jobber på?
Alle disse teknologiene har fullstendig forandret måten vi jobber i dag, sammenlignet med for noen år siden. Det er enklere å flytte programvareutviklingen din til skyen uten avansert kunnskap innen cloud computing eller DevOps. Mange repeterende oppgaver er nå automatisert, noe som forbedrer effektiviteten og sparer kostnader.

Ser du noen trender framover som virkelig vil forandre hverdagen til utviklere?
Jeg tror alle disse nye trendene nevnte over kommer til å forme hverdagen til utviklere, noe som gjør programvareutvikling mye mer spennende og mer behagelig.

Hvilke teknologier eller fagområder skulle du gjerne kunnet mer om?
Jeg vil lære mer om IoT, Machine Learning (ML) og AI. IoT har mange muligheter som kan forvandle utviklingsland som Sierra Leone, et land jeg vil gi noe tilbake til. Tenk hvor kraftig det vil være, å utvikle noen IoT-ferdigheter med ML og AI ved å automatisere og analysere av data for å løse problemer.

I fjor ga jeg et introduksjonskurs i IoT i Freetown, Sierra Leone.

I fjor ga jeg et introduksjonskurs i IoT i Freetown, Sierra Leone. Jeg delte behovet for IoT og bruk i hverdagen, smarte byer, landbruk og helsevesen. Tilslutt bygde vi en mini-værstasjon som kjørte på en lokal server ved hjelp av en ESP32-mikrokontroller (MC) og en temperatur- og fuktighetssensor.

Få måneder før dette kurset bygde en bekjent og jeg et IoT-basert system for vannforvaltning (prototype) for regjeringen i Sierra Leone, i samarbeid med Direktoratet for vitenskap, teknologi og innovasjon (DSTI). Dette systemet skulle hjelpe til med å akselerere påfylling og overvåking av vanntanker fordelt over Freetown på grunn av skadet infrastruktur for vannforsyning. Enheten samler og sender periodisk payload med målinger via SMS til en server (Raspberry Pi 3), som deretter analyseres og virtualiseres (Grafana) for videre handlinger. Og det er nettopp der interessen min for IoT starter.

 Deltar du jevnlig på konferanser? I så fall, hvilken er den viktigste for deg?
Jeg deltar regelmessig på konferanser, og det er alltid en flott opplevelse. Jeg har vært på Google I/O i California en gang, noen få DroidCon UK i London, Trondheim Developer Conference(TDC) og Mobile Era de siste ti årene. Alle disse konferansene har vært ekstremt verdifulle for meg, men Google I/O er uten tvil den mest prestisjefylte. Det er Googles årlige utviklerkonferanse, hvor nye teknologier, enheter og tjenester blir avduket.

Jeg bidrar litt til noen få Android-biblioteker på Github.

Bidrar du, enten i jobben eller på fritiden, til noe åpen kildekode-prosjekt – i så fall, hvilke(t)?
Ja, jeg bidrar litt til noen få Android-biblioteker på Github. EasyPermissions, et Android M-systemstillatelsesbibliotek av Google, AnyTextView (utdatert) av Hans Petter Eide. Jeg flagger også problemer (issues) på noen biblioteker, inkludert Robolectric, et rammeverk for enhetstesting for Android.

Hvor mye programmerer du på fritiden?
Veldig lite i det siste årene, siden jeg er nå småbarnsfar. Før det pleide jeg å programmere mye på fritiden for prototyping, testing av nye Android-rammeverker og opplæring.

Har du noen (andre) hobbyer?
Jeg har en lidenskap for fotball og fotografering. Så jeg spiller med venner og kolleger når jeg har tid og tar bilder på DSLR-kameraet mitt når jeg går tur.

Hva gleder du deg mest over ved å jobbe som utvikler?
Først og fremst nyter jeg muligheten til å samarbeide med andre intelligente mennesker for å løse komplekse problemer med teknologi for å gjøre folks liv mer praktisk. Min favorittdel av å være utvikler er imidlertid mengden kunnskap man kan tilegne seg i løpet av en kort periode. Det er alltid mer å lære og muligheter til å forbedre ferdighetene.

Hva er den beste frynsegodet du får?
Uten tvil, Googles Galaxy Nexus mobiltelefon, Nexus 7 nettbrett og Nexus Q alt på en dag på Google I/O-konferanse i 2012. Ingen ord kan uttrykke hvordan jeg følte den dagen.

Du finner mange flere utviklerintervjuer på vår samleside »

Les også

Kommentarer (0)

Kommentarer (0)
Til toppen