Profilbilde av Finn J Johnsen

Finn J Johnsen

Utvikler

+47 97 00 59 68
finn@kodemaker.no

Utvikler med 23 års erfaring

  • Fullstack
  • Web
  • Native Mobil (Android og iOS)
  • DevOps

«Finn has worked for us at AllClearID for several periods as a Software engineer and all of us really enjoy working with Finn, first of all because he’s a very skilled developer that fast get things and delivers very good. But another important aspect with Finn that we have identified is that he is really helping us with our team building, he is that sort of person that when you bring him onboard to a team he helps the other members a lot and makes them even more productive.

So, in other words working with Finn and hiring him is a case where you get 1+1=3. On top of that he is a very social person that attends to all our social events and feels like he has been in the company for a long time.»

- Johan Sörmling, Director Software Engineering at AllClear ID

Om Finn

Finn er en sosial og positiv humørspreder, og bidrar til god stemning i oppdragene sine. Han er allsidig og trivest godt med å jobbe i alle lag av systemene han er med å utvikle. Han har bred erfaring fra både nystartede prosjekter og systemer som har eksistert en stund.

Han sier at i arbeidshverdagen trives han med noen få stikkord ivaretatt; hurtig utviklingssyklus, tidlig feedback, enkel kode og godt samarbeid i teamet.

FINN

App Gateway hos FINN.NO

Animalia

Fullstack web-utvikler med ClojureScript og Grails

NSB

Android App for ombordpersonell hos NSB

NSB

Full-stack utvikler på intern webløsning for formidling av avviksinformasjon hos NSB; til de reisende og internt.

Animalia

Native App på hhv Android og iOS

Teknologi


Programmeringsspråk


Devops

Docker, Google cloud messaging, Jenkins, Amazon Web Services (AWS), Kubernetes, OKD, Ansible, Vault og Terraform


Web- og apputvikling

REST, Spring, Tomcat, Grails, Html5, JBoss, Jetty, HTTPS, JBoss Portal og Spring boot


Utvikling

JUnit, Spock, Apple Push Notification Service, Google cloud to device android push, Unit testing, TestNG, jQuery Mobile og Selenium


Database

Oracle, Hibernate, JPA, MySQL, Microsoft SQL Server, SQL, DynamoDB, MongoDB og Gorm


Data

ActiveMQ, JMS, JBoss Messaging, BlazeDS, Kafka og MQTT


Webutvikling

React, re-frame, Reagent, AngularJS, CSS, HTTP, jQuery og Twitter Bootstrap


Plattform

Android, Bluetooth, EJB, Arduino, Windows server, Linux, CentOS og iOS


Annet

Git, Subversion, Maven, SOAP, PlatformIO, Webservices, DevOps, Kryptografi, Raspberry pi, Gradle, JIRA, Confluence, SSL, Hamcrest og Home assistant


Prosjekter


Arbeidsgiver

Kodemaker Systemutvikling AS


Animalia
10.2021 -

Utvikler Clojure

Fullstack på Animalia sine egenutviklede produkter mot landbruket og dyrehold. ‘Livdyrattester’ for kjøp og salg av storfe. Utvikler på ‘Storfekjøttkontrollen’ og ‘Sauekontrollen’. Utvikler på nysatsingen ‘Lesestav’ App som er en iOS og Android App for lesing av øremerker på husdyr.

Bluetooth, Kotlin, iOS, Android, iOS, Clojure, ClojureScript, React, Oracle, Microsoft SQL Server, OKD, Reagent, re-frame, Docker og Kubernetes


Mercell
10.2020 -

Utvikling av ny samarbeidstjeneste for leverandører i en anbudsportal.

Mercell er en av de ledende aktørerne i Europa innen anbudsformidling. De har en offensiv vekststrategi og har gjennom flere oppkjøp vokst fort de siste par årene. Mercell er i ferd med å lage en ny felles plattform for leverandører. I starten av vårt engasjement skulle vi analysere og identifisere behovet for tjenesten vi skulle utvikle. Ved hjelp av brukerintervjuer og intern kunnskap fant vi et gap i tjenestetilbudet for leverandører som ble vårt team sin satsning (Mercell Workboard).

Vårt oppdrag blei da å utvikle en tjeneste som gir en totaloversikt over en leverandørs pågående anbudsprosesser. Vi skulle også utvikle tjenester som gir mulighet for leverandører til samarbeid og samhandling i fasene for evaluering av anbud og innlevering av tilbud. Teamet vårt er et autonomt domeneteam og vi har stor frihet i valg av teknologi og arbeidsmetodikk. Vi har valgt en reactive inspirert arkitektur og benytter oss av Javalin/Kotlin på backend og React/Typescript på frontend. Kommunikasjon mellom backend og frontend skjer via Websockets (for lesing) og REST/commands (for skriving). Integrasjon mot andre team/domener foregår med meldingsutveksling i Kafka.

Rolle: Utvikler

Kotlin, TypeScript, Docker, Kafka, Amazon Web Services (AWS), React, DynamoDB, Terraform og DevOps


Animalia
01.2020 -

Utvikler Clojure

Clojure-utvikler på 2 forskjellige systemer for dyrehold. Forplan for Sau og livdyrattester for kjøp/salg av Storfe.

Clojure, ClojureScript, React, Oracle, Microsoft SQL Server, OKD, Reagent, re-frame, Docker og DevOps


Politiet
10.2019 -

Javautvikler, devops

Migrering til Kubernetes. Arkitektur, dokumentasjon, estimering og utforming av ny proxy-løsninger for biometriske data

Kubernetes, Docker, Java og Vault


Encap
10.2018 -

Javautvikler i Encap sin autentiseringsplattform

Videreutvikling av Encap sitt kjerneprodukt.

Java, REST, MySQL, Kryptografi, Spring, Jenkins, Oracle, REST, SOAP og Docker


FINN
2017

Javautvikler i FINN sitt Apps Core -team.

FINN sin Apps gateway er en modul ansvarlig for distribusjon av App (iOS og Android) sin datatrafikk til FINN sine underliggende interne tjenester. FINN sin App er helt sentralt i FINN sin satsning for å nå sine kunder, derfor er ytelse, overvåkning og driftsstabilitet helt avgjørende for å lykkes med denne nye modulen.

Java, REST og Spring boot


Encap
2017

Javautvikler i Encap sin autentiseringsplattform.

Encap sin mobile autentiseringsløsning vokser og står foran en stor release med mange nye krav. Encap leverer et distribuerbart produkt med sikkerhet i kjernen. Utviklere har ikke tilgang til produksjonssystemet, som byr på andre utfordringer enn en gjerne er vant med i tradisjonell web.

Java, Jetty, SOAP, Hibernate, Oracle, MySQL og Kryptografi


NSB
2016-2017

StatusPush videreutvikling

Ombordpersonell varsles i sitt nettbrett om avvikssituasjoner fra NSBs sentrale DROPS-enhet. Serveren sentralt sender push notifications (v/Google Cloud Messaging) når en avvikssituasjon blir registret i NSB-Status. StatusPush backend får disse avviksituasjonene fra Status via JMS. Det er vektlagt at app-en skal ha enkelt brukergrensesnitt.

Android, Google cloud messaging, Groovy, JMS, ActiveMQ, Tomcat, React og AngularJS


Schibsted
2016

Implementasjon av MasterCard/MasterPass i Adapter teamet i Schibsted Payment.

MasterPass hos Schibsted Prosjekt: Integrasjon av MasterPass hos Schibsted. Oppgaver: Utvikler. Schibsted trengte bistand for innføring av MasterPass i sin betalingsplattform. I tillegg blei det litt plukkoppgaver i diverse andre integrasjonspunkter.

Java, SOAP og Amazon Web Services (AWS)


NSB
2015

StatusPush - Android App

Ombordpersonell varsles i sitt nettbrett om avvikssituasjoner fra NSBs sentrale DROPS-enhet. Serveren sentralt sender push notifications (v/Google Cloud Messaging) når en avvikssituasjon blir registret i NSB-Status. StatusPush backend får disse avviksituasjonene fra Status via JMS. Det er vektlagt at app-en skal ha enkelt brukergrensesnitt.

Android App som brukes til internt personell hos NSB; fortrinnsvis Konduktører og førere. Ved avvik i trafikken vil app-en få en push som beskriver forholdene.

Android, Google cloud messaging, Groovy, JMS, ActiveMQ og Tomcat


NSB
2012

Status web-applikasjon

Status Prosjekt: Status. Oppgaver: Utvikler. Integrasjonspunkter: CIM, Hafas Information Manager/Siri-standarden, ESBEN via WebServices, TrainSnapshot via JMS og WebServices, Putin: SMS og e-mail via webservices. Funksjonell og teknisk beskrivelse: Status distribuerer informasjon internt i NSB, samt eksternt, ved oppståtte avvik. De forskjellige i Status informasjonsmekanismene kalles kanaler. Applikasjonen er logisk inndelt i hhv Stasjon, Tog og Infrastruktur. De forskjellige kanalene bety alltid en integrasjon mot et annet system, derfor er Status på mange måter et integrasjonsprosjekt. Status er basert på microservices -arkitektur for implementasjon av integrasjon mot de forskjellige kanalene, slik at web-frontend modulen ikke blir påvirket av ny eller endret kanalhåndtering. Brukergrensesnittene til Status er single page webapps laget med angular og react.

Groovy, JavaScript, Grails, Gorm, Gradle, Oracle, Windows server, CentOS, Ansible, Tomcat, AngularJS, React, Html5, CSS, Twitter Bootstrap, Spock, Webservices og REST


NSB
2011

Eksportmodul fra NSB til Jernbaneverket, DPS

Utvikler Eksportmodul fra NSB til Jernbaneverket, DPS. Spesifikasjonsarbeid i forbindelse med nytt kundeinformasjonssystem (Status). Grafbassert rapporteringsmodul, Streken. Videreutvikling av aktiv kart, Troll. Status, StatusPush Android App for personale. Oppgaver: Utvikler.

Android, Groovy, Grails, JavaScript, Html5, CSS, Flex, Spock, Jenkins, Subversion og SpringSource Tool Suite


Intelecom
2011

NSB App (Android & iOS)

NSB app Deltok i et Scrum -team som utviklet mobil-app for NSB. Android og iPhone. Oppgaver: Backendutvikler.

REST, Apple Push Notification Service, Google cloud to device android push, JBoss, Webservices, Jetty, Subversion, Hudson og Maven


NSB
2011

Rapp

Rapp Utvikling av en applikasjon for oppsett og mottak av undersøkelser / skjema på nett. Oppgaver: Utvikler, frontend og backend.

Groovy, Grails, Html5, jQuery, jQuery Mobile, JUnit, Subversion, MySQL, MongoDB, SOAP, REST og Html5


NSB
2010

Aktivt kart, Troll

Aktiv Kart Utvikling av en applikasjon for visualisering av hvor togene er i øyeblikket. Oppgaver: Senior Javautvikler / frontendutvikler..

Tomcat, Groovy, Grails, Java, Flex, BlazeDS, Spring, JUnit, Subversion og Maven


Statens Pensjonskasse
2008

Java- og Flexutvikler.

Nytt bak- og saksbehandlingssystem Statens Pensjonskasse skriver om det aller meste av sin back-end og sitt saksbehandlingssystem fra C++ til Java. Jobbet i 6 mnd i back-end team, og 1 år i front-end Flex -team. Oppgaver: Backend Javautvikler J2EE. Front-end Flex..

Java, Hibernate, JPA, Spring, Hudson, JUnit, Hamcrest, Subversion, Maven og Flex


Arbeidsgiver

Conduct AS


Nordic Lottery Systems
2007-2008

Internettspill

Internettspill Utvikling av et nytt internettspill med svært høye oppetids- og ytelseskrav Oppgaver: Backend Javautvikler J2EE. Litt frontend og JBoss Portal.

Java, JBoss Portal, EJB, Hibernate, JPA, Oracle, Spring, JBoss Messaging, Selenium, JUnit, TestNG, Subversion, CVS og Maven


Norwegian ASA
2006-2007

Billettering back-end javautvikler. J2EE/Jboss.

Forvaltning av baksystem for bilettering Utvilker på forvaltningsteamet for baksystemetet for billettransaksjoner. Oppgaver: Backend Javautvikler J2EE.

Java, JBoss, EJB, Hibernate, JPA, Spring, ActiveMQ, JUnit, Subversion, CVS, Maven, JIRA og Confluence


Arbeidsgiver

Mobitech AS


Mobitech AS (fast ansatt)
2001, 2006

Utvikler i diverse kollektivtrafikk -systemer

Mobitech leverer produkter og tjenester til kollektivtilbydere. Hos Mobitech var Finn med i utviklingen av flere av Mobitech sine produkter: Mobitechs billetéring back office, Point of sale for bl.a NSB/Narvesen, programvare for billettautomater, passasjerinformasjonssystem / infomonitor busskur (i Tromsø og på Gardermoen)

Borland Delphi, C# og SQL


Anbefalinger


Johan Sörmling

Director Software Engineering at AllClear ID

«Finn has worked for us at AllClearID for several periods as a Software engineer and all of us really enjoy working with Finn, first of all because he’s a very skilled developer that fast get things and delivers very good. But another important aspect with Finn that we have identified is that he is really helping us with our team building, he is that sort of person that when you bring him onboard to a team he helps the other members a lot and makes them even more productive.

So, in other words working with Finn and hiring him is a case where you get 1+1=3. On top of that he is a very social person that attends to all our social events and feels like he has been in the company for a long time.»


Tatiana Mostovykh

Developer at AllClear ID

«Finn is a master of Git, guru of Java and lord of containers. He combines deep knowledge of well-known technologies with an interest and attention to the new ones.

Difficulties in task solving only spur his interest. Being a good developer, Finn is also nice and supportive person with a good sense of humor, which makes working with him very pleasant. I hope I’ll get a chance to work with Finn again. »


Elvis Nuñez

Apps Team Lead at FINN.no

«Finn was a consultant in my team for almost 1.5 years, we had a great collaboration and we were able to push our architecture forward.

Finn is a great guy and an even better developer, if anybody needs a high-level Java developer/architect that can not only get things done on the development side but also talk with people and organize architectural changes then he’s your guy.»


Sertifiseringer og kurs


2019

  • Styrekurs for daglig leder og styremedlemmer

2010

  • Retorikk

2006

  • Certified Scrum Master
  • Sun Certified Programmer Java 1.5

Utdanning


1999-2001

Den Polytekniske høyskole

Høyskolekandidat IT


Andre faglige bidrag


Smarthus

Familien til Finn har et feriehus i Agder; og dette har blitt et hobbyprosjekt å overvåke og passe på når det står tomt. I huset finnes sensorer som sender data via MQTT for å vise i oversiktelig dashboard i Home Assistant

Artikkel: Bluetooth Low Energy API

Bluetooth Low Energy (BLE) høres kanskje ut som noe klurete lavnivå-greier for dingser. Jeg synes absolutt ikke det. BLE har en ganske enkel og elegant måte implementerterer data-endepunkter på, og har inspirert meg i tanker rundt superenkelt API design generelt.

Dette utarbeida og utbredte API-designet brukes på milliarder av ting, og du bruker det sannsynligvis daglig enten du er klar over det eller ikke.

Artikkel: Rømme fra parantesene

Clojure, og lisp har en forbannelse; parantesene skremmer bort folk

(((bø(((((((((((( 😱)))))))))hoho))))))

Dette blir en kort post, men la oss se på litt kode som gjør det mer behagelig å skrive og å lese kode i Clojure.

Artikkel: Clojure sin 'elevator pitch' nr 1

Etter å ha hoppet inn og ut av Clojure-prosjekter i de siste årene så har det blitt åpenbart for meg at det er særlig en ting jeg setter stor pris på i min arbeidshverdag med Clojure.

Hint; det er hverken lisp, funksjonell programmering eller immutability.

Artikkel: KotlinConf 2023

I forrige uke var vi 10 Kodemakere som dro til KotlinConf’23 i Amsterdam, Nederland. Jeg glad for at jeg var en av de som dro.

Det oser av ambisjoner i Kotlin-community og det er vanskelig å ikke bli smittet. Her kommer min take-away og høydepunkter slik jeg opplevde det.

Artikkel: 25 kroner

Din egen webserver på splitter ny hardware til 25 kroner.

Artikkel: Unreal Engine 5, manuelt minimalt prosjekt

Unreal Engine 5 er et beist! I denne blogposten skal vi temme beistet litt ved å manuelt lage et prosjekt med filene som den trenger, kompilere dem og starte opp det nye prosjektet fra kommandolinja.

Artikkel: HTTPS-sertifikater og tillitsnivåer

Du har kanskje sett at når du browser nettbanken din så står hele navnet på banken ved siden av URL-en. Hva er dette for noe?