Kan være tilgængelig
(Opdateret 2023-02-06)Senior backendutvikler
Oslo, Norge
Modersmål Norwegian, English, Flydende Danish, Svenska
- 3 års erfaring med Kotlin
- 7 års erfaring med Java
- 5 års erfaring med spring
Kvalifikationer (49)
TESTING
KOMMUNIKASJON
PROSJEKTANSVARLIG
Java
Java / Spring
DevOps
JSON
ANSVAR
OPPLÆRING
Kanban
SYSTEMER
HJELP
LOGGING
Programmering
Git
XML
ANALYSE
PROGRAMMER
VERKTØY
Docker
Subversion
HTML
Prosjektledelse
SIKKERHET
REAL TIME
SANNTID
Node.js
MILJØ
TILBUD
OMSTRUKTURERING
MAC
APOTEK
Solr
Trygg
KRYPTERING
BESTILLING
Design
MAC OS
GENERELT
PROGRAMMET
STILLING
PLANLEGGE
UTMERKET MULTITASKER
krav
GraphQL
SAMTIDIG
APPLIKASJONENE
INNHOLD
SKRIVE
Resumé
Kim Frode har 6 års erfaring med utvikling av forretningskritiske systemer på Java-plattformen og har
en bachelor fra NITH i Oslo med fordypning innen enterprise programmering. Han har spesialisert seg
innenfor backend og har god erfaring med arkitektur og utvikling av mikrotjenester, hendelsesorientert
arkitektur og integrasjon. Han har også jobbet frontend for å skape gode brukergrensesnitt, med
HTML/CSS, JavaScript, og Java EE, i tillegg til å tilegne seg kompetanse i React. Han har tatt
ansvarsroller som tech-lead, funksjonelt ansvarlig, teamleder og Scrum Master i tillegg til rollen som
utvikler.
Han har erfaring fra store moderniseringsprosjekter i offentlig sektor; med forbedret og modernisert
saksbehandlingssystem for Statens Innkrevingssentral og med pensjonsprogrammet Pro25 for
Statens Pensjonskasse. Kim Frode har god erfaring med smidige prosjekter med Scrum og Kanban,
og er opptatt av strukturert og organisert utvikling. Han har også vært med å gå over fra Scrum til
Kanban. Han setter god testkvalitet høyt, og har mye erfaring med automatiserte tester.
Kim Frode er spesielt opptatt av gode løsninger, og god arkitektur. Han brenner for å finne og skape
de løsningene kunden faktisk trenger, samt lage de robuste nok til at de kan bli vedlikeholdt i lang tid.
Han har alltid øynene åpne for nye forbedringsmuligheter, som da han innførte Kotlin til teamet i SPK.
Han liker å jobbe i team, men trives også å jobbe selvstendig. Han er positiv, initiativrik, løsnings- og
serviceorientert og deler gladelig sin kunnskap med de rundt seg.
IT kompetanse
Programmeringsspråk: Java, Kotlin, Bash, HTTP, PL/SQL, Node.js, JavaScript,
XML/XSD, XML
Backendutvikling: Spring Boot, Spring, Hibernate, JMS, JMX, Apache ActiveMQ,
sikkerhet (sertifikater / kryptering), SLF4J, Spring Batch,
Logback, JPA, Java EE, GigaSpaces, Embeded
sanntidssystem, RFID Tracking., Real Time Web,
Testautomatisering, JSON, SOAP, Liquibase
Frontendutvikling: Primefaces, JSF, HTML, WebSockets, CSS, JSON, jQuery,
React
Integrasjonsteknologi: SOAP, Camel, REST
Samhandlingsverktøy: Slack, Confluence, Jira, Trello, Mattermost
Testrammeverk og -verktøy: JUnit, FitNesse, Jenkins, Akseptansetest, SoapUI, Mockito,
Mockk
Prosess / metode: TDD, Continous Integration, Smidig utvikling, Scrum,
Prosjektledelse, Ledelse, kommunikasjon, arkitektur, Kanban
Sikkerhet, Personvern og IAM: OAuth 2.0, Spring Security
Monitorering og overvåking: ELK-stack, Prometheus, Grafana, Kibana, Logstash, Splunk
Søketeknologi: Elasticsearch, Solr
Applikasjonsservere: WebLogic
Utviklingsverktøy: IntelliJ IDEA, Eclipse
Container- og Docker Swarm, Docker
virtualiseringsteknologi:
Database og lagringsteknologi: MySQL, Flyway, MongoDB, NoSQL, JDBC
DevOps: Git, Maven, Jenkins, Subversion, SonarQube, GitHub,
Rundeck
Operativsystem: Linux, Mac OS X
Sertifiseringer
2019 Lean - Yellow Belt
2018 Project Management: The Basics for Success
2018 PM-IT-001x: Strategic Applications of IT Project & Program
Management
2017 PRINCE2 Foundation
2016 Certified Scrum Master (CSM)
2016 1Z0-808 Java SE 8 Programmer I
Professionel erfaring
2022-09 - Nuværende
Oppgavene er å videreutvikle, endre og feilrette våre backend og frontend systemer. Teamet jobber tverrfaglig med utviklere, testere og fagressurser, og i tett samarbeid med andre team og prosjekter.
Skatteetatens moderne Javaplattform, Aurora, benyttes til utviklingen.
Kim Frode jobber som fullstackutvikler på teamet. Her jobber han både frontend med JavaScript og React, og backend med Java og Springteknologi. Han jobbet blant annet med skattekalkulatoren som ligger ute på skatteetatens sine hjemmesider.
Kim Frode jobber med å effektivisere teamet han er på. Han har blant annet innført faste tekniske møter, som er øremerket alt av tekniske diskusjoner. Dette arbeidet har forbedret kvaliteten til teamets arbeid, ved at vi leverer fra oss færre feil, og i høyere grad tar lærdom av uventede situasjoner som måtte oppstå. Det har også øke kompetansen blant utviklerne, da vi oftere diskuterer løsninger.
Han innførte også retrospektivmøter. Disse møtene har vært til stor hjelp, da de hjelper teamet å samle seg. Her fikk vi en arena å snakke sammen, og blant annet å diskutere teamets pågående omstrukturering.
I tillegg jobbet Kim Frode tett med gruppeleder/underdirektør for å gjøre større omstruktureringer på teamet. Her jobbet de blant annet med å dele opp et stort team i flere mindre team. De jobbet med ansvarsområder, forbedringer, og effektivisering av prosesser. Dette for å få til en mer logisk inndeling av team og ansvarsområder, og få til mer selvdrevne og autonome team. Øke graden av kompetansen til utviklerne, øke sikkerhet, og få ned antall feil.
Teknisk miljø: Java, Spring Boot, Liquibase, REST, XML, JSON, Splunk, JUnit, TDD, SLF4J, Mockito, Maven, Jira, Ledelse, Confluence, Logstash, IntelliJ IDEA, Mattermost, Mac OS X, SonarQube, Akseptansetest
2022-01 - Nuværende
2019-08 - 2022-07
Pensjonsprogrammet Pro25 ble startet i 2017 og skal vare helt frem til 2025. Hovedformålet med programmet er å gjøre SPK i stand til å håndtere den nye offentlige tjenestepensjonen og de samordningsreglene som følger med denne. Samtidig skal Pro25 også ta for seg andre utviklingstiltak og moderniseringsbehov.
Kim Frode hadde rolle som fullstackutvikler med vekt på backend.
Backend ble utviklet med Java og Spring Boot / Spring i en tjenesteorientert arkitektur basert på mikrotjenester. Det ble brukt Hibernate til å kontakte databasen (MSSQL), samt Flyway i noen applikasjoner. Kim Frode var også med å introdusere, og sette opp Flyway i disse applikasjonene.
I perioden har Kim Frode vært med på å migrere flere av applikasjonene fra et JEE-miljø til Docker Swarm.
Applikasjonene både tilbyr og tar i bruk REST og SOAP endepunkter mot NAV. Kim Frode har vært sentral i overgangen til en hendelsesdrevet arkitektur, der kun REST-endepunkter skulle benyttes.
Kim Frode var en pådriver for å holde teamet oppdatert på ny teknologi, og var med på å introdusere Kotlin. Her var han med å designe, og bygge flere applikasjoner fra bunnen av. Dette gav han mye verdifull erfaring innenfor design av systemer, og valg av teknologi. Teamet gikk over fra en kø-basert arkitektur, der applikasjoner vekslet data via ActiveMQ, til en hendelsesdrevet arkitektur. Her valgte Kim Frode å skrive en motor i Kotlin, som gjorde REST-kall for for å hente hendelser. Denne applikasjonen brukte Flyway til intern lagring. Denne konverteringen gjorde at vi fikk en mye mer robust arkitektur, med færre bevegelige deler.
I tillegg jobber Kim Frode aktivt med teknisk forbedring i teamet. Her har han blant annet innført faste tekniske møter, som er øremerket alt av tekniske diskusjoner. Dette arbeidet har forbedret kvaliteten til teamets arbeid, ved at vi leverer fra oss færre feil, og i høyere grad tar lærdom av uventede situasjoner som måtte oppstå.
Dette prosjektet inneholdt flere former for testing. Unittesting med jUnit, integrasjonstesting med Mockito, og regresjonstesting.
Regresjonstesten bygget vi som en REST-tjeneste i et testmiljø. Det var en Jenkins-jobb som kjørte regelmessig eller ved behov. Den kjørte et script som plukket opp lagrede requester fra MongoDB og sendte disse til den versjonen av REST-tjenesten som skulle testes.
For logging, brukte de ELK-stacken. Kim Frode jobbet mye å trekke ut gode data fra loggene, med Kibana. Her laget han grafer og statistikker som på veldig gode og oversiktlige måter kunne fortelle status på applikasjonene. Man kunne se f.eks. kjøretid, typen feil, antall kall, osv.
Kim Frode startet også et arbeid der applikasjonene selv skulle fortelle oss status, uten at vi skulle trenge å lese av logger. Til dette så introduserte han varsling på Slack, via Grafana. Da kunne applikasjonene selv fortelle oss status.
Systemansvarlig Kim Frode var systemansvarlig for samhandlingsdomene i Statens Pensjonskasse. Her lå ansvaret for domenet, med videreutvikling, planlegging, og å sikre god nok kvalitet. Denne rollen krevde høy kompetanse på det tekniske og det funksjonelle. Han sto også ansvarlig for analyse av kompliserte problemstillinger, som ofte har flere bevegelige deler utenfor domenet.
Samhandlingsdomenet tok seg av kommunikasjon mellom NAV og Statens Pensjonskasse. Det var viktig at det var lite kritiske feil, og at kommunikasjonen var av god kvalitet.
Scrum Master Kim Frode var Scrum Master for teamet. Scrum Master rollen krevde også at Kim Frode var kontaktpersonen inn til teamet. Han fungerte dermed som et knutepunkt mellom teamet, og teamene rundt.
Han var ansvarlig for at faste møter blir avholdt. Dette var møter som f.eks. standup, tekniske møter, retrospektiv møter, o.l. Han hadde ansvaret for at oppgaver og JIRA ble riktig utformet.
I denne rollen passet Kim Frode på at teamet hadde det de trengte.
Dette kunne være utstyr, opplæring, eller oppgaver.
Kim Frode var med på å avvikle Scrum i teamet, der de gikk over på Kanban. Dette krevde en smidig overgang i måten å planlegge, og organisere oppgaver.
Denne rollen krevde at Kim Frode hadde en god forståelse av Scrum, var god til å samarbeide med andre, klarte å sette seg inn i og analysere problemstillinger, og var komfortabel med å ta avgjørelser. Det er også viktig å kunne kommunisere godt, både for å få til diskusjon, og for å gi informasjon.
Teamleder Kim Frode var teamleder for teamet. I denne rollen hadde han ansvar for fremdriften i teamet. Teamet hadde stor frihet i prioriteringer for hva som skal gjøres, og Kim Frode hadde ansvar for at dette blir gjort. I denne rollen hadde han også en større tilknytning til ledelsen, for kommunikasjon om hva som ble gjort, og hva som var planlagt fremover.
I denne rollen jobbet Kim Frode for at teamet skulle bli et godt og selvgående team. Han tok ansvar, og startet en prosess for at teamet skulle få enda høyere eierskap til eget produkt. Dette innbar at at teamet skulle få ansvar for å kjøre applikasjonene de selv laget i produksjon. Teamet ville da få det fulle ansvaret for hva de laget, fra A til Å. Han jobbet for at teamet skulle være i stand til å håndtere dette på egenhånd, uten å måtte involvere andre.
Denne rollen krevde at Kim Frode tok ansvar for teamets fremdrift.
Han måtte være i stand til å se, og snakke om ting som kunne være vanskelig, og han måtte være i stand til å løfte frem og gi ros. Kim Frode rapporterte teamets valg og prioriteringer til ledelsen. Dette krevde god kommunikasjon og god forståelse for domener og produkter.
Et av målene som teamleder var å skape et uavhengig og selvdrevet team, som kunne stå på egne ben. Der teammedlemmene følte seg sett, og der teamet følte seg sikre på å ta egne beslutninger.
Teknisk miljø: Kotlin, Java, Spring Boot, Spring, REST, Hibernate, JMS, JMX, Bash, Slack, Apache ActiveMQ, HTTP, JUnit, TDD, sikkerhet (sertifikater / kryptering), ELK-stack, Elasticsearch, Docker, Continous Integration, Prometheus, Rundeck, SLF4J, Spring Batch, IntelliJ IDEA, Flyway, FitNesse, Git, Grafana, Confluence, Kibana, Linux, Logback, Logstash, Maven, Jenkins, MySQL, Ledelse, XML/XSD, JSON, SOAP, SoapUI, Mockito, Mockk, JDBC, Camel, Jira, Docker Swarm, Microservices, Kanban, Smidig utvikling, Spring Security, OAuth 2.0 Kunde: Statens Innkrevingssentral
2019-01 - 2022-01
2020-01 - 2020-01
2016-10 - 2019-07
Prosjektet er ikke en 1:1 konvertering av dagens løsning, men en total omskriving av alle sentrale skjermbilder og tilpasse disse til det en mer strømlinjeformet prosesstankegang. Prosjektet har til hensikt å forenkle saksbehandlingen, samt automatisere saksbehandling der det er mulig. Prosjektet stiller store krav til brukervennlighet innenfor spesialistsystemer og er tett integrert med et titalls systemer. Prosjekter består av en større analyse- og designjobb, samt teknisk implementering og utrulling. Dette er et omfattende moderniserings- og samarbeidsprosjekt med SI og har tidshorisont
2016-01 - 2019-01
2019-01 - 2019-01
2018-01 - 2018-01
2018-01 - 2018-01
Kommunikasjon. Prosjektmetodikk. Risiko.,
2017-01 - 2017-01
2017-01 - 2017-01
2017-01 - 2017-01
I prosjektet har Kim Frode tatt på seg ekstra ansvar, i form av teknisk og funksjonell analyse og design.
Han samarbeider mye med kunden for å gjøre om en bestilling, til en oppgave ferdig til implementasjon. Han er kontaktperson mellom kunde og prosjektteam, og han rapporterer regelmessig til prosjektleder. Han holder møter, samt demonstrasjonsmøtene med kunden. Han setter opp sprintmål for kommende sprint, og har ansvar for at brukerhistorier som er ferdige blir akseptert av kunden, via akseptansetester.
Kim Frode har vært en person som har gått igjennom kvaliteten på løsningene, og vært en pådriver for forbedring. Teamet jobbet kontinuerlig for å forbedre testing og logging. Dette gjorde at teamet fikk en merkbar forbedring av kvalitet, og at vi fikk en mye bedre oversikt over status på applikasjonen. Vi diskuterte kvalitet på tekniske møter, og holdt interne demoer for hverandre, der vi diskuterte løsningene på teknisk og funksjonelt nivå.
Ansvar for å skape en sammenheng mellom brukernes behov og krav, og de løsningene som blir skissert opp. Her jobber jeg sammen med kunden for å finne ut hva de trenger, og hvordan vi kan oppfylle disse ønskene. Her ser vi på tid/kost/nytte, samt om ønskene er noe som står i stil med løsningen. Her er det viktig å være med å finne ut hva det er som skaper verdi for kunden, og hvordan vi best mulig kan komme frem til en ferdig løsning.- Har også ansvar for at ønsker og krav som kommer fra kunden, er riktig spesifisert og gjennomførbart.
Her har jeg daglig kontakt med de forskjellige bestillerne fra kundesiden, for å bistå dem med spesifisering av oppgaver. Jeg satte også i gang et større skifte, da jeg så at vi trengte noen nye kjøreregler på spesifisering. Sammen med kunden, satte vi i gang et arbeid med å lage et standardisert oppsett på hvordan en brukerhistorie skal se ut, med beskrivelse, akseptansekriterier, testdata, skjermbilder ect. Målet var å gjøre det så enkelt for mulig for kunden å luke ut eventuelle usikkerheter med bestillingen, samt gjøre det mest mulig effektivt for utviklingsteamet å starte arbeidet.
Dette arbeidet har skapt en mye større trygghet for begge parter.
Har ansvar for daglige scrum aktiviteter og ritualer, og ser til at disse blir fulgt på en god og effektiv måte.
Har også ansvar for at utviklingsteamet kjører retrospektivmøter, og kommer opp med gode forbedringspunkter som de skal ta med seg til neste sprint. Ser til at utviklingsteamet jobber aktivt med disse punktene, samt følger de opp på påfølgende retrospektiv møte.
Som Scrum Master er jeg også bindeleddet mellom utviklingsteam, prosjektleder, og kunde. Så om det er noe de trenger, forbedringer som trenger å bli gjort, eller andre forespørsler, så er det mitt ansvar å starte prosessen og se til at den blir gjennomført.
Teknisk miljø: Java, Solr, MySQL, Primefaces, WebLogic, PL/SQL, JSF, Jira, Scrum, Subversion, Ledelse, JPA, Linux, JUnit, IntelliJ IDEA, Akseptansetest, kommunikasjon, Java EE, Prosjektledelse, TDD, SonarQube, Maven, Confluence, JavaScript, Eclipse, XML/XSD, JSON, Mockito Kunde: Nornir
2017-01 - 2017-01
2017-01 - 2017-01
2017-01 - 2017-01
2016-01 - 2017-01
Grunnen til at Kim Frode opprettet denne siden var for å lære seg Node.js.
Løsningen tilbyr et webgrensesnitt der man kan registrere bruker, og logge seg inn. Når man har registrert en bruker, og logget seg inn så kommer man inn på en ny side som er selve chatten.
Webgrensesnittet er skrevet i HTML, CSS og JavaScript, og da nærmere bestemt EJS filer som Node.js rendrer og sender til bruker.
• Ansvarlig for design og teknologivalg • Utvikling på hele stacken, fra frontend ned til database.
• Backend er skrevet i Node.js, sammen med socket.io for kommunikasjon mellom brukere.
• Database er MongoDB.
• Frontend er skrivet i HTML, CSS og JavaScript. Socket.io benyttes for kommunikasjon mot backend.
Teknisk miljø: HTML, MongoDB, WebSockets, Node.js, CSS, JavaScript, arkitektur, Git, GitHub, JSON, jQuery, Trello
2016-01 - 2016-06
Prosjektet var en reel kundecase fra Nornir. Dette systemet skulle benytte seg av egenutviklet teknologi fra Nornir, og målet var å tilby bedre nøyaktighet enn for eksempel GPS. I tillegg var det viktig at systemet fungerte innendørs.
Posisjoneringsverktøyet skulle enkelt kunne finne posisjonen til radiotagger i sanntid. Dette er små radiotagger som man for eksempel kan henge på verktøy eller mennesker man ønsker å spore. Radiotaggene sender informasjon til gatewayer (radiomottakere som settes opp på steder man ønsker posisjonering). Både gatewayer og radiotagger var teknologi som bedriften hadde klart før prosjektet.
Prosjektet bestod av å utvikle et generisk posisjoneringssystem.
Systemet skulle motta informasjon fra gatewayene ved å bruke Real Time Web (RTW), som er Nornir sin egenutviklede teknologi for kommunikasjon over internett. Informasjonen som gatewayene sendte ut, innhold data i fra de ulike radiotaggene. Systemet skulle på bakgrunn av disse dataene kunne kalkulere en rimelig nøyaktig posisjon for de enkelte radiotaggene.
Et krav for systemet var at det skulle være et distribuert system. På denne måten kunne man få muligheten til å skalere systemet opp og ned, og ha muligheten til å tilpasse systemet avhengig av for eksempel bruksområde, antall radiotagger og gatewayer i systemet, eller hvor mye det er i bruk. Tanken var at systemet skulle kunne håndtere alt fra én til, i teorien, et uendelig antall radiotagger. Dette gjør at det ferdige systemet kan tas i bruk på mange forskjellige områder, og blir et produkt som dekker et mye mer generelt behov.
Backend: Jobbet med backend og Java. Satte opp systemet som er distribuert system, og jobbet derfor mye med GigaSpaces rammeverket.
• Testrammeverk: Opprettet et testrammeverk i Node.js. Systemet skulle ta imot data fra Real Time Web (RTW) som var et HTTPendepunkt.
I starten av prosjektet så var det ikke data å hente fra RTW. Vi satte da opp noen servere i som vi utviklet i Node.js, som simulerte RTW, og der vi kunne hente test-data. Når vi kunne hente data fra RTW, så kunne vi enkelt bytte adresse.
Kim Frode ble valgt som kontaktperson i gruppen. Som kontaktperson var det Kim Frode som hadde ansvar for all kontakt inn og ut av gruppa.
Teknisk miljø: Real Time Web, Node.js, RFID Tracking., Java, GigaSpaces, Scrum, Embeded sanntidssystem, GitHub, Git, IntelliJ IDEA, JSON, Trello, REST Kunde: Hobby prosjekt
2016-01 - 2016-01
2015-01 - 2015-06
• Backend utvikling basert på Java EE.
• Persistering av data i en NoSQL database.
Kim Frode var Scrum Master. Han hadde da ansvar for kontakt ut til blant andre prosjektleder. Som Scrum Master hadde han også ansvar for å holde møter innad i gruppen, samt å holde møte med prosjektleder.
Teknisk miljø: Git, GitHub, Java, NoSQL, Scrum, JavaScript, JSON, REST Kurs og konferanser
2015-01 - 2015-01
Akademisk baggrund
2023-02 - 2016-01
2005-01 - 2006-01