utvikling

Tri (29) er en webentusiast som kombinerer kodingen med å undervise ved NTNU

Les ukens utviklerintervju.

Tri Nguyen i Kodeworks.
Tri Nguyen i Kodeworks.

Ukens utviklerprofil er Tri Nguyen (29), som er ansatt i Kodeworks, hvor han hovedsakelig jobber som konsulent.

Kan du kort beskrive stillingen og oppgavene dine?Mye utvikling og mye fag! Kodeworks er et ungt konsulentselskap, hvor vi alle er med og tråkker opp veien som vi går. Jeg har nå et fagansvar og fokuserer på det å bygge fagmiljø i Kodeworks. I det daglige jobber jeg som konsulent, utleid til kunder, og jobber hovedsakelig som utvikler.

Jeg har også et engasjement ved NTNU hvor jeg underviser i grunnleggende webteknologier. Da HTML og CSS, hvor jeg har hovedfokuset på JavaScript.

Jeg er glad i å lære bort, undervise og kunne bidra i en annens lærings-prosess.

Hvorfor valgte du akkurat denne arbeidsgiveren?Muligheten jeg fikk til å være med og bygge kultur fra tidlig av i et ferskt konsulentselskap, var det som trigget meg. Jeg er glad i å lære bort, undervise og kunne bidra i en annens læringsprosess. Det å få være med og se andre bane sin vei til å mestre noe, er sabla fint å se på!

Vi hadde også en tanke om at Kodeworks skulle være bygget rundt åpenhet. Vi tror på det å ha en åpen kultur – skulle det være salgsarbeid, bestemmelser eller lønn. Det er en type kultur jeg setter stor pris på.

Hvor jobber du mest, på kontoret, på hjemmekontoret eller ute hos kunder?Jeg sitter til daglig ute hos kunden. Det å kunne sitte tett på kunden og utviklingsteamet gjør at vi sammen kan ta mer del i planlegginga, til design og til implementasjon.

Kan du fortelle litt om prosjektet/prosjektene du har jobbet med i det siste?Jeg jobber per i dag hos Inatur, Norges største markedsplass for jakt, fiske og hytter i norsk natur. Her er vi et team på fem utviklere som daglig jobber med vedlikehold av systemene, og utvikling av ny funksjonalitet for både tilbydere og brukere av systemet.

Et annet interessant prosjekt jeg jobbet med tidligere i år var appen Vaskehjelp. En app hvor rengjørere kan tilby vasketjenester, og hvor den som vil ha hjemmet sitt vasket kan finne rengjørere i nærområdet som kan utføre det.

Vaskehjelps rolle her er å tilby plattformen hvor rengjører og kunde kan finne hverandre, samt ta av seg betaling og annet papirarbeid. Hos dem jobbet jeg hovedsakelig som iOS-utvikler. Her skrev vi applikasjonene på deres respektive plattformer, Swift for iOS og Kotlin til Android. Etterhvert gikk turen over til å jobbe på Android-appen hvor jeg jobbet mye med arkitektur, men også en hel del utvikling.

De to første årene på VGS var kanskje en liten kickstart på det jeg gjør i dag.

Hvor lenge har du jobbet som utvikler?Det er vanskelig å kunne fastsette eksakt starttidspunkt. De to første årene på VGS var kanskje en liten kickstart på det jeg gjør i dag. Der fikk jeg mye erfaring gjennom arbeid i ungdomsbedriften rundt det å finne kunder, planlegge og utføre prosjekter.

I 2008 oppretta jeg eget enkeltpersonsforetak og begynte å ta på meg ulike utviklingsoppdrag som freelance. Det var på den tid mye oppsett og skreddersydde design til både Drupal, Wordpress og Joomla. Egenskrevne små CMS-er var vel også en greie jeg leverte.

Det var vel først i 2011 hvor et internship i Opera Software gjorde utviklerjobben til en fulltidsjobb i en periode, og ikke noe jeg gjorde ved siden av skole. Etter endt studie begynte jeg i januar 2015 å jobbe fulltid som utvikler, og har gjort det siden.

Har du jobbet på samme sted hele tiden?Etter endt studie jobbet jeg for konsulentfirmaet Bekk Consulting i noen år. Turen gikk videre til Telenor hvor jeg jobbet som lead frontend-utvikler. To fine perioder jeg har fått mye bra erfaring fra. Her fikk jeg jobbe med mange spennende prosjekter, både internt, og for mange forskjellige kunder. Jeg fikk så mulighet til å være med og bygge opp konsulentselskapet Kodeworks og avdelinga vår i Trondheim.

Hvor gammel var du da du først begynte å lære deg programmering?Jeg husker mitt første møte med HTML og JavaScript. Det var vel på slutten av barneskolen/starten av ungdomsskolen. Jeg hadde en storebror som på den tid hadde printet ut noe kodeeksempler han drev og knota med. Om det var skoleoppgave eller bare ren nysgjerrighet, vet jeg ikke, men jeg ble veldig nysgjerrig på det han holdt på med.

På et tidspunkt spurte han om jeg kunne se på det også, og jeg fikk lov til å prøve å skrive denne koden han ikke fikk til. Det var noe visning og formatering av tid og dato. Den dag i dag vet jeg ennå ikke om det jeg gjorde den gang var riktig, han sa ingenting om.

I løpet av ungdomsskoletiden kom jeg over CSS.

I løpet av ungdomsskoletiden kom jeg over CSS. Noen fortalte meg at CSS var tingen og tabeller kunne jeg bare kaste. Det var da jeg bestemte meg for at CSS skulle jeg bli knallflink på.

Jeg begynte å modifisere sider på CSS Zen Garden, deltok i det som den gang het CSS Reboot, hvor tanken var å skrive om nettsider til å se helt annerledes ut ved kun bruk av HTML og CSS. Da jeg fant ut at My Opera tillot å skrive personlige CSS-filer for å gjøre om design på nettsiden, så la jeg ut CSS-koder som lot folk gjøre om deres design på sine My Opera -sider også.

Turen gikk så innom PHP og skriving av gjestebøker med lagring i flatfiler. Mange nettsider for datapartyer og IRC-kanaler ble lagd i mellomtiden. Det var ikke før på videregående at jeg vendte snuten tilbake mot JavaScript. Siden har det bare balla på seg med flere teknologier.

Hva slags utdannelse har du?

Jeg har en mastergrad i informatikk fra NTNU i Trondheim.

Hvilke plattformer utvikler du vanligvis for?Det har vært overvekt av web. Har også vært innom app-prosjekter, da hovedsak iOS, men også med innhopp av Android, på deres respektive plattformer. Det er plattformer jeg trives veldig godt på.

Hvilken pc-plattform/OS foretrekker du selv å bruke?Jeg ble tidlig introdusert til Linux ved Debian, og var selv veldig frampå å pushe Ubuntu på alle rundt meg da det kom i 2004. De sendte jo ut disse flotte CD-ene gratis som jeg kunne gi bort til andre. Jeg husker godt at en kompis fikk seg en iBook G4 i løpet av ungdomsskoletiden, og jeg ble fort veldig nysgjerrig på den.

I 2006 ble jeg med på Apples overgang fra PowerPC til Intel.

I 2006 ble jeg med på Apples overgang fra PowerPC til Intel da jeg fikk meg en MacBook. Det var i sammenheng med at jeg gikk Medier og Kommunikasjon på Ole Vig, i Stjørdal, og skulle hovedsakelig drive med foto og video. Noe jeg forøvrig var fast bestemt på skulle være karriereveien min, helt fram til siste året på VGS hvor jeg sa til meg selv at dette forblir hobby, og at studietiden skulle brukes på programmering.

Siden har jeg foretrukket macOS både til skole, jobb og fritid. Det har for meg vært en plattform som både er fleksibel, stabilt, og fin og se på. Samtidig som den kjører programvarer som Final Cut, Adobes programmer, blant andre «kreative» programmer, og at jeg samtidig får kjørt opp Emacs når kode skal produseres.

Det hender dog at jeg fyrer opp en runde Fortnite, eller Apex, eller Overwatch, på kveldingen. Hemmeligheten er vel at jeg har en godt utstyrt Windows-maskin stående bortgjemt under kontorpulten min hjemme som skal pushe litt FPS når det klør ekstra i fingra.

Hvilke programmeringsspråk benytter du?Jeg er en veldig nysgjerrig type, og veldig glad i å lære meg forskjellige språk. Hvilke språk jeg bruker til daglig, avhenger av prosjekter jeg jobber med – både hjemme og ute hos kunde.

Valg av språk er ofte avhengig av hvilke problemer jeg skal løse, plattform ting skal kjøres på, og gjerne andre krav. Jeg har skrevet mye Perl i jobbsammenheng. I prosjektet jeg jobber til daglig er det hovedsakelig JavaScript og Java, med litt innhopp av Kotlin. På fritiden går det mye i Swift nå.

Jeg har til og med vært innom det å skrive minne-effektiv CSS.

Hva er favorittspråket og hvorfor?Det er et vanskelig spørsmål. Det som kanskje vekker mest følelser når det kommer til programmering, er det at jeg har oversikt, og aller helst, kontroll over ressursbruk. CSS deler vel plassen over det som vekker mest følelser, så jeg må kanskje si CSS. Jeg har til og med vært innom det å skrive minneeffektiv CSS.

Språket jeg bruker mest tid på nå, er Swift. Både som språk for å skrive applikasjoner til iOS og macOS, men også som språk til å løse generelle problemer uavhengig av disse to plattformene.

Hvilke to verktøy greier du deg ikke uten, og hvorfor?Skal jeg velge ett verktøy, så er det Emacs, med min tilhørende konfigurasjon. Emacs er vel teksteditoren jeg har brukt mest tid på, i den grad noen vil kalle det en teksteditor. Samtidig bidrar det jo til litt ekstra spenning i en eventuell editordiskusjon! Det andre verktøyet jeg tar med meg over alt er vel Magit, som for øvrig er et grensesnitt på Git, inne i Emacs.

Foruten Emacs er jeg en veldig enkel sjel. Sånn generelt er jeg ikke veldig opptatt av enkeltverktøy. Jeg bruker IntelliJ når jeg skriver Java fordi det erfaringsmessig er mest behagelig for Java. Xcode når jeg lager iOS-apps, og jeg foretrekker gjerne en plain Terminal.app i macOS fremfor de såkalt mer «moderne» alternativene. Ting som visstnok skal gjøre meg mer effektiv, være smart, formatere kode for meg, og lignende, holder jeg meg som regel unna.

Skal jeg velge ett verktøy, så er det Emacs.

Hva slags oppgaver liker du best å jobbe med?Sånn veldig overordnet så er det oppgaver som hever brukeropplevelsen til et system, som motiverer meg mest – enten det er en app som skal løse noe i hverdagen din, eller om det er opprydding og omskriving av deler av et system for å forbedre brukeropplevelsen. Så lenge resultatet er at opplevelsen blir bedre for brukeren, og da gjerne meg, og deg, i det daglige. Da blir jeg gira.

Hvordan sørger du for å holde deg faglig oppdatert?Jeg følger med i diverse fora og hører på noen teknologipodcasts. Noen som er veldig spesifikke til språk, som Swift, men også noen som bare er vas fra teknologinyheter den siste tiden. I løpet av året blir det jo både store og små konferanser, og andre faglige samlinger. Samt at jeg selv setter meg ned og knoter med teknologier på fritiden.

I Kodeworks jobber vi også med å bygge et godt faglig miljø, og vi jobber hver dag med å lage en arena hvor vi i større grad kan dele kunnskap, lære av hverandre og holde hverandre oppdatert på fag.

I hvilken grad har metoder og teknologier som DevOps, maskinlæring, nettsky og konteinere endret måten du jobber på?På en måte mer komplisert, men det har samtidig også gjort arbeidshverdagen enklere. Det er blitt knagger en henger en eller annen form for forståelse av utvikling og teknologi på.

Ting som DevOps vil jeg si alltid har vært der i en eller annen form. I den daglige jobben varierer det fra prosjekt til prosjekt jeg jobber på. Noen kunder er mer frampå enn andre. Det jeg kanskje har merket best, er graden av eierskap en har til systemet en lager, og gjerne hele livsløpet til systemet.

I prosesser som inviterer til raske «feedback loops», fremheves gjerne dette enda mer ved at hver enkelt får sterkere knytning til det en lager. Fra kodelinjen produseres, til den kjøres live, til oppsett, og alt det måtte innebære av vedlikehold og feilhåndtering.

Ser du noen trender framover som virkelig vil forandre hverdagen til utviklere?Jeg ser ikke umiddelbart noe trender som virkelig skal forandre hverdagen min. Har dog vært en trist valp i det siste hvor jeg ser at alt blir forsøkt løst med JavaScript. For å dra det litt for langt, «inline-styling» har på en måte blitt kult igjen med alle disse CSS-i-JS alternativene.

En positiv trend som for så vidt ikke er nytt, og som det snakkes mye om, er at flere aktører har større fokus på IT og utvikling. Flere ser på, og godtar, teknologi og IT-systemer som noe som stadig utvikler seg.

Hvilke teknologier eller fagområder skulle du gjerne kunnet mer om?Jeg har ofte tenkt det at jeg skulle ønske jeg hadde noe fokus på kompilatorteknikk i løpet av studiet. Det hadde vært gøy å grave seg langt ned i den materien.

Deltar du jevnlig på konferanser? I så fall, hvilken er den viktigste for deg?Jeg drar på minst en konferanse årlig. Den siste interessante konferansen jeg var på var vel UIKonf i Berlin. En konferanse som tar for seg utvikling for iOS.

Favorittene er nok konferanser som spesialiserer seg innenfor én teknologi eller plattform.

Jeg er ikke veldig glad i generelle konferanser som skal dekke høyt og bredt, uten noe bestemt tema. Favorittene er nok konferanser som spesialiserer seg innenfor én teknologi eller plattform, som da gjerne inviterer til alt fra hvordan komme i gang, til et ekstra dypdykk.

For eksempel det å høre Uber under UIKonf utnytte språkegenskaper for å effektivisere generering av mock-data i Swift, for å gjøre hverdagen deres enklere i jobben med å utvikle appene deres, er ting jeg setter stor pris på.

Hvilket forhold har du til innebygd personvern?Jeg synes dette er viktig i alle utviklingsprosjekter. Vi som utviklere har et stort ansvar her for å ivareta personvern. Mange av systemene vi lager behandler personopplysning i forskjellige grad, og det må tas hensyn til personvern i alle utviklingsfaser, også design. Som bruker ønsker jeg også at systemer jeg bruker er åpne om hvordan mine opplysninger brukes og behandles.

Bidrar du, enten i jobben eller på fritiden, til noe åpen kildekode-prosjekt – i så fall, hvilke(t)?Jeg har ikke noe aktivt forhold til det. Skulle det falle naturlig inn å ta tak i et åpen kildekode-prosjekt, så gjør jeg det, men har ikke noe personlig mål å måtte bidra på gitte frekvenser. Det jeg derimot liker å tenke er at all kode jeg skriver gjerne kan være åpent for alle.

Hvor mye programmerer du på fritiden?Det går i bølger. Når jeg først har satt meg ned med et problem, så sitter jeg gjerne den tiden det tar for å få løst det. Det blir fort lange netter over flere dager og uker. Når jeg føler jeg har fått ordentlig oversikt over det jeg prøver å lære, eller problemet jeg prøver å løse, så blir det en tid uten noe særlig fritidsprogrammering.

Har du noen (andre) hobbyer?Det går mye i sykling, og generelt trening. Veldig glad i å holde meg fysisk aktiv. I sesong finner du meg gjerne på sykkelen 10-20 timer i uka langs landeveien. Nå på vinteren sitter jeg på sykkelrulla hjemme. Da finner du meg kanskje inne i Zwift (et virtuelt treningsprogram for løping og sykling). Målet er å gjennomføre Styrkeprøven, et sykkelritt som går fra Trondheim til Oslo, på raskere tid enn sist gang.

Det er en utrolig god følelse!

Hva gleder du deg mest over ved å jobbe som utvikler?Det å se folk bruke produktet jeg har jobbet på. Da jeg tilbake i 2011/2012 hørte folk stå på bussholdeplassen, eller i gangene på campus, eller på bussen, snakke om den fantastiske appen som sa når bussen skulle gå, og jeg visste at det var min app det var snakk om. Det er en utrolig god følelse!

Opplever du at jobben som utvikler har noen negative sider?Ikke noe særlig fra dag til dag, men det finnes helt klart noen negative sider, ikke ulikt andre yrker. Som utvikler kan man lett komme i en situasjon der en føler en hele tiden har dårlig tid. Det kan fort føre til at en blir utbrent. Det påvirker ikke bare jobben, men også hverdagen utenfor jobb. Her er det viktig at en selv, og arbeidsplassen, har et sunt forhold til det, og respekterer arbeidstid og fritid.

Powered by Labrador CMS