Jan
Sviland

The experienced
Fullstack Dev C# / .NET Dev JavaScript Frameworks API Development Cloud solutions Test Driven Development Agile development SCRUM Security

Employment

10/2015 - 03/2019
Focus Software, Asker, Norway
Software Developer

03/2019 - Current
Systek, Oslo, Norway
IT Consultant

03/2019 - 10/2022
Ice, Oslo, Norway
IT Consultant (project)

01/2022 - Current
Sviland Invest AS, Oslo, Norway
Daglig leder / Eier

10/2022 - Current
Miljødirektoratet, Oslo, Norway
IT Consultant (project)

Miljødirektoratet

MALIN

Prosjektdata

Dato:
10/2022 - Current
Katagori:
Klima og miljø
Tags:

IT-løsning for luftmåledata er en ny løsning for innhenting, prosessering og rapportering av luftkvalitetsmålinger. Premisset for den nye løsningen er en API-first sky-arkitektur som skal utvikles i Miljødirektoratets sky (Azure), hvor vi skal ha eierskap i hele verdikjeden i løsningen. Dette gjør det enkelt for eksterne løsninger å integrere og bruke data ved å konsumere de tilgjengelige APIene som vi vil gjøre tilgjengelig. Selve websiden konsumerer også APIer, skreddersydd for applikasjonen, som igjen konsumerer interne APIer.

En skybasert arkitektur gir mulighet for en rask og bred skalering, geografisk uavhengighet, redundans på strøm, nettilgang og så videre. Ferdigutviklede verktøy gir oversikt over status og riktig oppsett i forhold til organisasjonens krav for sikkerhet, personvern, logging, data governance og tilgjengelighet. Løsningen skal bruke etatens nye brukerhåndteringsløsning for autentisering/autorisasjon (basert på Azure AD/B2C), samt Maskinporten for maskin-til-maskin autentisering.

Skyløsningen for luftmåledata skal gi en stabil og responsiv plattform der måledata leses inn, gis et første automatisk kvalitetsstempel, og skaleres, kvalitetssjekkes, aggregeres og flagges for overskridelser av brukere etter gjeldende regelverk og prosedyrer. Løsningen lar brukere gjøre oppgaver som videre kvalitetskontroll, godkjenning og rapportering.

Løsningen består i hovedtrekk av et responsivt administrasjonsgrensesnitt, en dataplattform for innsamling, transformasjon og håndtering av data, rapporteringsverktøy og en integrasjonsplattform for tilgjengeliggjøring og deling av data.

Min oppgave i dette prosjektet er back-end C# utvikling av systemet som vil utføre blant annet; Samle inn måledata fra hundrevis av målestasjoner som sender kontinuerlige verdier om luftkvalitet i hele Norge, det vil si måling av forurensningskonsentrasjonen Svoveldioksid (SO2), Nitrogendioksid (NO2), Svevestøv (PM10), Karbonmonoksid (CO) etc. i luften.

Deretter gjør vi automatisk kvalitetsstempel av data, skalering, kvalitetssjekker, aggregering av data og flagger data for overskridelser. Måling og beregning av lokal luftkvalitet er kritisk for menneskers helse og for å beskytte vegetasjon og økosystemer i Norge.

Koden skrives med TTD, ettersom det er ekstremt viktig at all utregning er korrekt, skalering er korrekt, at vi registrerer overskridelser korrekt så skrives detaljerte Unit Tester før hver metode, hvor vi på forhånd regner ut hvilke resultater som er korrekte og passer på at vi verifiserer dette nøye. Dette systemet passer på mennesker sin helse så det er ekstremt viktig at vi ikke overser noe. Dette gjør også systemet robust, godt dokumentert, enkelt å vedlikeholde og med lite (helst ingen) bugs.

Har også jobbet med et hobbyprosjekt ved siden av som er relatert: Bygg ditt eget luftkvalitetssystem med Raspberry Pi og Azure

Ice

Diego

Prosjektdata

Dato:
2019 - 10/2022
Katagori:
Telecom
Tags:

Jeg er en del av Sales Portal teamet i Ice. Jobben går ut på vedlikehold og videreutvikling av flere interne portaler brukt av Ice for blant annet salg og administrering av Ice abonnementer, håndtering av kontrakter og kundesupport. Prosjektene er skrevet i C# .Net Core og .Net Framework som back-end. Med flere forskjellige teknologier for front-end, blant annet ASP.Net MVC, React, Angular og JQuery. Prosjektene består av et eller flere back-end APIer som tar i bruk flere komponenter utviklet på tvers av flere team i Ice, for logging, autorisering, credit check, fraud check, betaling, digital-signering, frakt osv og en funksjonell front-end som brukes internt av Ice ansatte som driver med salg i butikk, telesales eller support.

Jeg jobber i et team på tolv personer. Vi utvikler i i henhold til kanban metodikken, med daily stand-ups, digitalt kanban board knyttet til Jira. I teamet, og generelt i Ice, fokuserer vi på å følge SOLID prinsippene nøye og holde kodekvaliteten høy så andre kan gjenbruke og videreutvikle koden uten å gjøre store endringer i eksisterende kodebase, hver pull request reviewes av minst to personer. Ingenting blir merget til master og rullet ut i produksjon før flere seniorutviklere har gått over koden og alle er enige om at kvaliteten er god nok. Vi skriver unit tester for all ny funksjonalitet, både i Angular med karma/Jasmine og C# med xUnit og NUnit. Vi skriver ende til ende tester / integrasjons tester i både front-end og back-end med Cypress for ende til ende testing i Angular og xUnit/NUnit for integrasjonstester i C#.

Hovedprosjekt jeg har jobbet med er utviklingen av en ny salgs-portal. Dette innebærer kommunikasjon med veldig mange tjenester innad i ice; ordre behandling, logistikk, credit check, betalingsløsninger, digital signering, utsending av SMS/Mail osv. Prosjektet er skrevet i Angular 10+, med Material Design UI komponenter / Custom componenter, Ngxs/Redux for state-handling, unit testing med karma/jasmine og full ende-til-ende testing med Cypress satt opp i TeamCity og Octopus. Jeg jobber også med back-end delen og lager API endepunkt som blir konsumert av front-end, back-enden er et dot net core prosjekt skrevet i C#, med XUnit for testing. Dette nye systemet har over min tid i Ice blitt lagd fra bunnen av, lansert og nå erstattet ikke bare ett, men tre forskjellige legacy salgs systemer i Ice.

Vi har etter lansering jobbet veldig smidig, med kort vei fra tilbakemelding fra ende-bruker til ny forbedret versjon av produktet. Etter lansering av vår MVP (Minimum Viable Product), lagde vi en integrasjon med Slack, hvor ende-bruker kunne komme med tilbakemeldinger som ble postet direkte i utviklerne sin slack kanal, synlig for alle i Ice. Dette var veldig nyttig for å utvikle et produkt ende-bruker var fornøyd med. Ved å konstant hente inn tilbakemeldinger fra aktive brukere så kunne vi peile oss inn på rett kurs for å lage det beste produktet for kunden.

Nå er det flere tusen selgere i Norge som bruker dette systemet hver dag, med over 10.000 ordre hver uke som går gjennom dette nye systemet, med stadig økende bruk. Vi får stadig flere positive tilbakemeldinger og fornøyde brukere, takket være høy prioritering av opplevelsen til ende-bruker og deres innspill. Det nye systemet har nå erstattet tre legacy salgssystemer som har nå blitt skrudd av til fordel for vårt nye system.

Et annet prosjekt jeg har jobbet med var å utvikle en "kontrakt template engine". Ice produserer veldig mange kontrakter i form av et PDF dokument som må signeres digitalt med bankId. Forskjellige interne prosjekter i Ice trenger forskjellige variasjoner av kontrakter, på SMS, Mail eller i PDF form. Derfor valgte vårt team å lage et internt API som alle utviklere i Ice kunne benytte seg av, til å sette opp sine kontrakt-maler og generere, signere og lagre disse kontraktene et sentralt sted (Azure Blob Storage). Flere team tar nå i bruk dette APIet for å lage kontrakter de trenger. Ice produserer flere tusen kontrakter hver måned med dette API-endepunktet.

Jeg gjør også en del dev-ops relaterte oppgaver, oppsett av nye tjenester i TeamCity og Octopus, Cake script for bygg, automatisert ende-til-ende testing og unit testing, oppsett av nye domener. Jeg har også satt opp skytjenester, hovedsakelig i Microsoft Azure. Azure Service Bus for å sende meldinger mellom mikrotjenester, Azure Blob Storage for å lagre kontrakter, REST APIer satt opp med Azure Web Services og Azure SQL Server for databaser, for å nevne noen.

Focus Software

Focus Beskrivelse

Prosjektdata

Dato:
2017 - 2019
Katagori:
Byggebransjen
Tags:

Jan jobbet i et SCRUM team på fem personer hvor de utviklet en løsning fra konsept til et ferdig produkt. Han har vært med på utvikling av et godt dokumentert API med C# / .NET og Swagger. Et autoriseringssystem med JWT web tokens og et brukervennlig responsivt web design med Angular / bootstrap. Han gjorde alt av konfigurering og oppsett av web applikasjoner i Microsoft Azure, kobling til domenet, oppsett av HTTPS sertifikat, opplasting av prosjekt via FTP og mer.

I tillegg til smidig utvikling med SCRUM, utviklet Jan i henhold til testdrevet utvikling metodikken (TDD), hvor tester skrives før implementering. I den grad det var mulig skrev Jan enhetstester for alle tenkelige scenario og sørget for god feilhåndtering og logging. Jan utviklet enhetstester både for C# backend med xUnit og frontend Javascript-rammeverket med Jasmine og Karma.

Focus Software

EM/VM App

Prosjektdata

Dato:
2016
Katagori:
Byggebransjen
Tags:

I forbindelse med EM, utviklet Jan selvstendig en applikasjon som tillot alle ansatte å registrere seg, logge seg inn og tippe på alle kampene under EM. Prosjektet inkluderte en et godt dokumentert API skrevet i C# / .NET, en SQL database og en Angular frontend.

Alle 50 ansatte i bedriften var med på en konkurranse som innebar tipping på hver enkelt kamp under EM, dette var tidligere håndtert med Excel og tok mye unødvendig tid og administrering. Jan tok saken i egnene hender å utviklet en app som automatiserte dette arbeidet.

Focus Software

NS 3420 Leser

Prosjektdata

Dato:
2015 - 2017
Katagori:
Byggebransjen
Tags:

Focus Software leverer programvare innen alt fra beregning, armering, til design, planer, rør, grøfter og veier. Jan jobbet selvstendig med å utvikle en one-page web applikasjon med integrasjon mot et C# backend API for å hente ut informasjon etter Norsk Standard NS 3459 og NS 3420.

Web applikasjonen henter ut detaljerte json dokumenter som beskriver standarder innen bygg- og anleggsnæringen. Dette brukes til å utarbeide beskrivelser og mengdelister i forbindelse med konkurransegrunnlag, kalkulasjon av forespørsler og under utførelses-og avviklingsfasen av byggeprosjekter.

NS 3420 leseren gjør det enkelt for arkitekter å legge til detaljerte NS 3420 beskrivelser direkte på 3D modeller i Autocard. Dette sparer flerfoldige timer arbeid og skaper mye mer detaljerte beskrivelser av prosjekter.