Profilbilde av Nils Larsgård

Nils Larsgård

Programmerer

+47 9053 6771
nils@kodemaker.no

Utvikler med 15 års erfaring

  • Fullstackutvikler med fokus på backend og integrasjon
  • Selvstendig, effektiv og løsningsorientert
  • Hjelper kunder med å finne enkle løsninger på vanskelige problemer
  • Variert erfaring fra mobil, backend og frontend

«Nils er en svært allsidig og dyktig utvikler. Han setter seg raskt inn i nye teknologier og er flink til å dele kunnskap og få med seg de andre på teamet. I Thomson Reuters jobbet han med utvikling av nytt system for å distribuere tidsserier og prognosedata i sanntid. Han videreutviklet og forbedret distribuerte beregninger med Spark/Hadoop og streaming av store datamengder med bruk av Kafka og HBase. Jeg kan varmt anbefale Nils og er sikker på at han vil være et solid tilskudd til de prosjektene han deltar på i fremtiden.»

- Sigve Litsheim, Lead Architect, Thomson Reuters

Om Nils

Nils er genuint interessert i teknologi og liker alt som kan programmeres, automatiseres og optimaliseres. Han lærer fort og er opptatt av at programvareutvikling er et håndverk man skal være stolt av. Han er glad i utfordringer og liker å samarbeide for å finne de beste løsningene.

Finn

Utvikling av system for anbefaling av rubrikk-annonser. Java, Kotlin, Kafka og Postgresql.

Thomson Reuters

Utvikling av løsning for distribusjon av tidsseriedata fra ulike markeder ved hjelp av Spark, Kafka, Hadoop og HBase.

Mnemonic

Utvikle mobil applikasjon for sakssystem for Android og iOS med rammeverket flutter.

Teknologi


Programmeringsspråk


Utviklingsverktøy

Maven, Eclipse, Nexus, Make, IntelliJ IDEA, Gradle, Ant, Subversion, Sonar og Git


Devops

Docker, Kubernetes, Bamboo, Apache Spark, Kibana, Hudson, Google Cloud Platform, Crucible, TeamCity, Terraform, Hystrix, Docker compose og Google appengine


Web- og apputvikling

CXF, Spring boot, Spring, Play, Portlets, Swagger, Geronimo, Websphere, Jsr 168, JSF, Websphere portal, JBoss, Ktor, REST, Struts 2, Jetty og GraphQL


Utvikling

JUnit, Flutter, Vertx, Maskinlæring, Google guice, Castor xml, gRPC, Tensorflow, Itext, Arrow, TestNG, Fitnesse og Mockito


Data

PostgreSQL, Hibernate, Hbase, Zookeeper, SQL, JDBC, Sybase, MS SQL Server, Influx DB, Oracle, Cassandra, SQuirreL SQL og DB2


Webutvikling

CSS, HTML, jQuery, Openlayers, Dojo og React


Metode og tilnærming

Tjeneste-drevet arkitektur (SOA), Webservices, Kontinuerlig integrasjon, TDD, Scrum og Web services


Annet

Kafka, Android, JIRA, JavaFX, Linux kernel, Meldinger, Spring batch, Prebidjs, Bluetooth, Linux, SSL, Prolink, Protocol buffers, Oauth, Seapine, BankID, Pki, Quickr, IBM Rational Application Developer og iOS


Prosjekter


Arbeidsgiver

Kodemaker Systemutvikling AS


Finn
2021-2022

Videreutvikle og fornye systemer for å lagre statistikk for annonser på finn.

Utbedre systemer som håndterer innkommende klikk og hendelser for annonser på finn.no. Utbedre ytelse ved å ta i bruk Cassandra som database for annonse-klikk istedenfor elastisearch.

Kotlin, Kafka, Kubernetes, Cassandra, Docker, PostgreSQL og Spring boot


Mercell
2021

Utvikling salgsløsning for anbudsportal.

Utvikle salgsløsning for anbudsportal. Mercell er en stor europeisk aktør innen anbudsformidling og har vokst mye gjennom oppkjøp. De lager en felles løsning for hele Mercell og trenger en salgsløsning på nett for å kunne betjene den voksende kundemassen og for å kunne nå ut til flere kunder. Tidligere har salg bare foregått over telefon og man ønsker med den nye løsningen å flytte salget over på nett.

Kotlin, TypeScript, React, Kubernetes, Terraform, PostgreSQL og Arrow


Mnemonic
2020-2021

Utvikling av mobil applikasjon for sakssystem.

Utvikle mobil app for iOS og Android med kryssplatform-rammeverket flutter. Appen bruker biometri for brukerverifisering og verifisering/bruk av kryptografiske nøkler. Den har støtte for push-varsler og enkel redigering av saker.

Dart, Flutter, iOS, Android, GraphQL og REST


Finn
2019-2020

Videreutvikle og fornye system for annonser med effekt-produkter.

Distribusjon av annonser med økt synlighet. Prosessere meldinger for endring på annonser og håndtere livssyklus for effekt-produkter for annonser på finn.no.

Java, Kotlin, Kafka, Kubernetes, Elm, Docker, PostgreSQL og Spring boot


Posten AS
2019

Utvikle backend for tjenesten 'Innenfor' - levering av pakker innenfor døren med digitale låser.

Integrasjon mellom mobile apper, låser og postens systemer for å kunne la sjåførene levere pakker innenfor dør hos kunder. Håndtere signering av koder, private og public keys for engangskoder og sikkerhetsaspekter rundt kryptering, lagring og uthenting av koder. Laget en mock-server i Go for mobil-appene for å kunne teste uten å involvere tunge legacy-systemer.

Kotlin, PostgreSQL, Ktor, Oauth, Go og Swagger


Finn
2018-2019

Videreutvikle og fornye system for anbefalte annonser og oppsalgsprodukter for ekstra effekt.

System for å øke synlighet til utvalgte annonser. Prosessere meldinger for endring på annonser og håndtere aktivering/deaktivering av Blink. Integrere anbefalte annonser på kart.finn.no. Jobbe med tilrettelegging av annonse-bud med prebid.js.

Java, Kotlin, Kafka, Kubernetes, Elm, Docker, PostgreSQL, Spring boot, Node.js, Openlayers og Prebidjs


Tieto
2017-2018

Videreutvikling av system for virtuelle bankkontoer og nyutvikling av applikasjon for automatiske betalinger.

Modernisere utviklingsplatform og heve kodekvalitet. Modernisering av legacy kode. Videreutvikle kjernesystemer for bankvirksomhet.

Java, Docker, Docker compose, Spring, Hibernate, DB2 og Maven


Western Geco
2017

Utviklig av kontrollsystem for innsamling av seismisk data på land.

Utvikling av nytt produkt for landseismikk. Administrere sensorer og data-innhøsting fra sensorer. Scripting av installasjon på redhat.

Java, Bash, gRPC, Protocol buffers, JavaFX og Docker


Thomson Reuters
2016-2017

Utvikling av løsning for intern distribusjon av fremskrevne tidsserier

Utvikling av løsning for intern distribusjon av fremskrevne tidsserier fra forskjellige markeder ved hjelp av bl.a. Spark, Kafka, Hadoop og HBase.

Java, Vertx, Kafka, Apache Spark, Hbase, Zookeeper og Kibana


Arbeidsgiver

Bytecode AS


Thomson Reuters
2016

Utvikling av løsning for intern distribusjon av fremskrevne tidsserier

Utvikling av løsning for intern distribusjon av fremskrevne tidsserier fra forskjellige markeder ved hjelp av bl.a. Spark, Kafka, Hadoop og HBase.

Hbase, Apache Spark, Kafka, Java, Zookeeper, Vertx, Kibana og Java


Arbeidsgiver

Webstep


Norwegian Air Shuttle
2012-2016

Utvikling og vedlikehold av backend for booking-systemet

Utvikling og vedlikehold av backend for booking-systemet. Videreutvikling av reiseassistent for Android.

Java, CXF, Google guice, Android, JBoss, JUnit, Maven, Oracle, Java, JBoss, Hibernate, Bash, Groovy, Play, jQuery, IntelliJ IDEA, JUnit, TestNG, Git og Hystrix


Storebrand Aktuarsystemer
2011-2012

Kundeportal og integrasjon av fagsystem.

Ny kundeportal for pensjonskassene som forvaltes av Storebrand Pensjonstjenester.

Java, HTML, CSS, JavaScript, jQuery, MS SQL Server, Struts 2, CXF, IntelliJ IDEA, Gradle, Maven, Nexus, TeamCity, Seapine, Bamboo, JUnit, Itext, Subversion og JDBC


Arbeidsgiver

Accenture ANS


Statens Pensjonskasse, PERFORM
2009

PERFORM, Uvikling av kjernefunksjonalitet for pensjonsreformen.

Oppgaver: Utvikling av kjernesystemet i pensjonsbehandlings-systemet etter nye regler om pensjonsreformen.

Spring batch, Spring, Java, Eclipse, JSF, JUnit, Fitnesse, JIRA, Crucible, Hibernate, Java, Maven, Hudson, Scrum, Spring, Sybase, SQuirreL SQL, Jetty, Mockito, Sonar, TDD, Kontinuerlig integrasjon, Web services og CXF


Storebrand Livsforsikring
2008

Ytelsesvurdering av kjernesystem, fondskjøp med BankID

Oppgaver: Første integrasjon med BankID for Storebrand for kjøp av fond på nett. Lage sparekalkulator med anbefaling av fondsvalg. Evaluering av fagsystem for kjøp og salg av fond. Ytelsesvurdering og vurdering av integrasjonsmetoden mot fagsystemet.

BankID, Java, Bamboo, Nexus, Tjeneste-drevet arkitektur (SOA), Maven, Ant, Eclipse, JIRA, Castor xml, Prolink, CSS og JavaScript


Arbeidsgiver

IBM


Karolinska Institutet, Genbanken
2008

Portal for gen-banken.

Oppgaver: Lage en sikker portal for genbanken slik at store datasett av genomer skal kunne deles mellom forskere.

Portlets, Websphere portal, Websphere, Geronimo, Pki, SSL, Java, JUnit og Jsr 168


Norsk Boligbyggerlag, NBBL
2007

Utvikling av web-portal med timeregistrering og billagsføring.

Oppgaver: I samarbeid med BOB (Bergen og Omegn Boligbyggerlag) lage en portal for å samle all nett-aktiviteten til NBBL. Lage web-applikasjoner for timeregistrering og bilagsregistrering.

Quickr, Java, JUnit, Eclipse, IBM Rational Application Developer, Dojo, JavaScript, CSS, HTML og Webservices


Arbeidsgiver

Atmel Microcontrollers


Atmel Corporation
2006

Porte UI biblioteker til ny prosessortype.

Atmel designer og produserer micro-controllere. Porte GUI biblioteker for linux til ny 32-bits microcontroller(AVR32). Siden AVR32 bruker big-endian var det nødvendig med en del tilpasninger i biblioteker for å kunne brukes. Det var også en del utfordringer til at ny compiler oppførte seg annerledes enn gcc på en del corner-cases som f.eks var-args .

C, Bash, Linux kernel og Linux


Arbeidsgiver

Deltidsarbeid under studier


NTNU
2002-2007

Studentassistent i IT-intro. Undervisningsassistent i Menneske-Maskin-Interaksjon(MMI) og Mikrokontrollere

Java, Fortran, SQL, HTML, CSS og C


Anbefalinger


Joakim von Brandis

Head of Development, mnemonic as

«Vi var heldige å få Nils inn på et kritisk tidspunkt i prosjektet med utvikling av ny mobilapp. Nils tar utfordringer på strak arm, og setter seg raskt inn i nye problemstillinger og løsninger. Han er en hyggelig og omgjengelig utvikler å ha i teamet, og er samvittighetsfull og løsningsorientert.

Jeg kan trygt anbefale Nils som et solid tilskudd til fremtidige prosjekter.»


Thor Marius Henrichsen

Tech Lead, Finn.no

«Nils er en fantastisk utvikler å ha i ethvert utviklingteam. Han har dyp teknisk forståelse i en mengde språk, og han behersker mange tilhørende rammeverk. Han er enormt effektiv, og løser komplekse oppgaver på løpende bånd. Er det noe han ikke kan, bruker han dessuten svært kort tid å å lære seg nye ting.

For vårt team i FINN.no har Nils' Kafka ekspertise vært spesielt verdifull. Han har også vært en viktig ressurs i forbindelse med Kotlin og Elm adopsjon i teamet.

Nils er alltid blid og imøtekommende, og har en lun personlighet som smitter over på omgivelsene. Jeg kan trygt anbefale Nils videre til alle som trenger en super utvikler.»


Sigve Litsheim

Lead Architect, Thomson Reuters

«Nils er en svært allsidig og dyktig utvikler. Han setter seg raskt inn i nye teknologier og er flink til å dele kunnskap og få med seg de andre på teamet. I Thomson Reuters jobbet han med utvikling av nytt system for å distribuere tidsserier og prognosedata i sanntid. Han videreutviklet og forbedret distribuerte beregninger med Spark/Hadoop og streaming av store datamengder med bruk av Kafka og HBase. Jeg kan varmt anbefale Nils og er sikker på at han vil være et solid tilskudd til de prosjektene han deltar på i fremtiden.»


Øystein Slørdahl Hjertvik

Head, Solution and Architecture at Payment & Cash Management, Tieto

«Jeg hadde gleden av få Nils inn hos oss for å jobbe med den teknologiske plattformen hos oss. Nils viste meget høy teknisk og faglig kompetanse, og var med på å gi programvaren vår et signifikant løft. Nils evnet å sette seg inn i en stor og kompleks kodebase, og raskt finne ut hvor og hvordan de tekniske og funksjonelle kravene skulle løses. Nils er konstruktiv og løsningsorientert, og jobbet meget godt sammen med de andre i teamet rund seg. Han er omgjengelig hyggelig som person, og en person jeg gjerne anbefaler til andre.»


Sertifiseringer og kurs


2020

  • Cryptography I, Coursera/Stanford

2018

  • Certified Scrum Master

2017


2014

  • Programming Mobile Applications for Android Handheld Systems by University of Maryland, College Park - Course certificate
  • TOGAF 9 Part 1 and 2

2013


2010

  • Spring Core

2008

  • Sun Certified Java Web Component Developer

2007

  • Sun Java Certified Programmer

Utdanning


2001-2007

NTNU

Sivilingeniør/Master Datateknikk


2004-2005

NTNU/USP

Utvekslingsår ved Universidade de São Paulo(USP), Brasil


Presentasjoner




Bidrag til fri programvare


  • grib - Et bibliotek for å parse værdata-filer i det binære formatet ‘grib’. Biblioteket er skrevet i Go og er en videreutvikling av et forlatt bibliotek. Utviklet funksjoner som gjør det mulig å streame grib-filer samtidig som man filtrerer på innholdet.
  • Silhouette Words - En webapp laget for lærere som driver med alfabetisering.
  • wsdl2java - Et plugin for gradle for å generere java-kode fra webservice-kontrakter.
  • Har bidratt til Retriable Kafka Consumer, Ktor-Swagger, Go, Unleash-go-client og Influx/Telegraf

Andre faglige bidrag


vintilbud.no

Vintilbud er en app som overvåker alle varene på vinmonopolet og finner varer som blir satt ned i pris. Tilbudene blir presentert i en Android-app og en web-side der man kan filtrere på type og sortere på ulike parametere. Backend er skrevet i go, appen er skrevet i flutter.

Analyse av værdata

Et system for å samle inn og organisere data om vær og bruke dataene for å finne korrelasjoner med andre tidsserier. Skrevet for det meste i go og deployet på google cloud platformen med kubernetes.

Artikkel: Respect my https_proxy!

Hva gjør du når du sitter bak en proxy og verktøyet ditt ikke spiller på lag med proxyer?

Artikkel: Konfig for Flutter-apper

Som utvikler med mye erfaring fra backend så vet jeg akkurat hvordan jeg liker å konfigurere applikasjonene mine. Men hva er alternativene for mobile apper som er skrevet med flutter?

Artikkel: Hack slack sin URL-redirect

Har du også irritert deg over Slack sin trege redirect-funksjon? Her her en oppskrift for å redusere irritasjonen med din egen URL-redirecter.

Artikkel: Profilering av kode i Go

Noen ganger er ytelse kritisk for at ting skal fungere ordentlig. Et bibliotek for parsing av binære værdata er en av de gangene. Med Go har vi mulighet til å kunne si akkurat hvilken kodelinje som tar tid eller som allokerer minne.

Artikkel: Kontinuerlig bygging med make

Kontinuerlig integrasjon, javel. Hva med kontinuerlig bygging når du allerede bruker make(fordi du leste min forrige bloggpost)?

Artikkel: Hva i $@ $< * er en Makefile

Etter å ha slåss mot og med maven, gradle, grunt og diverse moderne byggeverktøy så er det deilig å se at den gamle traveren make ofte er et bedre og enklere alternativ.

Artikkel: La applikasjonen din overleve et Kafka-krasj

Du kan sikre deg mot å miste kritiske meldinger når kafka er nede ved å bruke “store-and-forward” i de applikasjonene dine som produserer meldinger til kafka.

Artikkel: Using your tensorflow model with go

En forklaring på hva som skal til for å bruke en ferdig-trent tensorflow-model fra go med kode for å trene en enkel modell i python og kode for å bruke modellen fra go.