Passionerad systemutvecklare med lång erfarenhet och certifierad inom AWS och Azure. Johan har alltid som målsättning att leverera system av högsta kvalitet och drivs av att utveckla kritiska och komplexa applikationer. Han har erfarenhet av att arbeta agilt och korsfunktionellt och kan ansvara för såväl backend- som frontend-applikationer.
Om Johan
Johan har lätt för att sätta sig in i ny teknik och trivs att arbeta i team. Med sin trygghet och positiva anda är han en mycket uppskattad medarbetare och projektmedlem.
Johans CV
Funnel AB
Systemutvecklare
2025 -
Johan är senior utvecklare i ett team som utvecklar ett ramverk för att skapa en generell lösning för att hantera kopplingen till olika externa marknadsföringsplattformar. Ramverkets lösning bygger på att definiera deklarativ konfiguration i YAML istället för att behöva skapa unika lösningar för varje plattform. Det ska även underlätta utveckling och integration med olika AI-verktyg. Johan är ansvarig för att förbättra observerbarheten och testningen för detta ramverk.
Han utvecklar också ny funktionalitet och förbättrar webbappar som används för att konfigurera och visualisera flödet för kopplingarna.
Johan hade en senior roll och var tech lead för ett team som utvecklade mikrotjänster som exponerade REST API:er för att hantera video- och röstsamtal mellan Sinch klienter via protokoll som SIP och WebRTC. Dessa mikrotjänster hade mycket stor last, integrerade med andra system och var transaktionsintensiva. Så stort fokus låg på robusthet, skalbarhet och observerbarhet.
Mikrotjänsterna kördes globalt på AWS och Johan ansvarade för att förbättra bygg- och releaseprocesserna genom att sätta upp pipelines i GitLab, införa GitOps och migrera från Docker Swarm till Kubernetes. Mikrotjänsterna integrerade med olika open-source produkter som användes för kommunikationen under samtalen. Johan var ansvarig för att konfigurera och förvalta dessa open-source produkter. Han implementerade även system- och prestandatester för hela lösningen.
I ett viktigt projekt för Sinch jobbade Johan med att utveckla en helt ny produkt från grunden för att hämta upp information och metadata om telefonnummer. Andra större projekt där han var ansvarig utvecklare var att implementera stöd för att spela in samtal och att bygga en egen pub/sub lösning istället för att använda en extern produkt.
Johan var också med och utvecklade ett JavaScript SDK som användes av Sinch kunder för att ringa video- och röstsamtal via webbläsare. SDK:et integrerade mot Sinch underliggande system via REST API:er och använde pub/sub-meddelanden och WebRTC för kommunikation under samtalen.
Han satte upp pipelines i GitLab för att hantera bygg- och releaseflödet av SDK:et på ett enkelt och smidigt sätt. Han förvaltade också E2E-tester för SDK:et. Dessa E2E-tester var generella tester som också användes för att testa iOS och Android SDK:erna.
Johan hade en senior roll i ett Scrum-team som utvecklade grafiska användargränssnitt och applikationer till Kambis olika kunder som bestod av speloperatörer och kasinon i hela världen.
Produkterna som utvecklas är fysiska sportsbetting-terminaler som kunder kan betta på via pekskärmar, terminaler som används av expediter för att placera bets och administrera sin kassa, uppvisning av odds på stora tv-skärmar och administrativa verktyg för att hantera dessa applikationer.
Applikationerna kommunicerar via WebSocket, GraphQL och REST API:er med underliggande mjukvara och tjänster. I arbetet ingår att utveckla, designa och förbättra produkterna samt att vägleda juniora utvecklare. Ett större projekt var att utveckla en omnichannel-lösning så att det skulle gå att sömlöst växla mellan online och retail. Ett annat viktigt projekt bestod av att sätta upp ett headless CMS där Kambis kunder kan konfigurera sina landningssidor. Johan har också varit drivande att automatisera bygg- och release-processerna genom att använda Jenkins Pipeline och implementera testautomatisering.
Johan har även varit Scrum Master för teamet och varit ansvarig för att hålla i möten och se till att teamet levererar optimalt.
Teknologier och ramverk: JavaScript, TypeScript, Java, React, Redux, Redux-Saga, AngularJS, Backbone, Ramda, Lodash, Apollo Client, GraphQL, Jest, JBehave, Selenium, Cypress, Percy, Prettier, webpack, Gulp, Yarn, npm, Node.js, Koa, PM2, HTML, Material-UI, JSS, Sass, CSS, Strapi, Kafka, ZooKeeper, Ansible, Docker, PostgreSQL, AWS, Postman, Swagger, Sentry, LogRocket, Kibana, Google Analytics, Google Tag Manager, Jira, Git, Bitbucket, Jenkins, Scrum
Ticket Leisure Travel Group AB
Systemutvecklare
2017 - 2018
Johan började med att ingå i ett mindre utvecklingsteam och har under sitt uppdrag på Ticket varit en viktig del i flera projekt.
Det första projektet var att utveckla Tickets nya mobila webbsida för flygbokningar. Johan och teamet skapade och uppdaterade design, dataflöden och kopplingar till underliggande säljsystem.
Det andra projektet var att expandera webbplatsen till fem nya länder i Europa. Dataflöden, konfiguration och integration av CMS och säljsystem uppdaterades och ändrades för att anpassas för de nya marknaderna.
Johan har också utvecklat integrationstester för hela systemet för att se till att alla flöden fungerar och byggt upp pipelines för att skapa förutsättningar för continuous delivery.
I slutet av uppdraget gick Ticket över till en produktorganisation och Johan var med i ett produktteam som utvecklade och ansvarade för betalningar och tilläggsprodukter. I arbetet ingick att skapa och förbättra integrationer mot olika betalväxlar, utveckla nya tilläggsprodukter för att öka försäljningen och bryta upp en monolit-arkitektur till mikrotjänster för att förenkla utvecklingen och bättre matcha den nya produktorganisationen.
SVT ville på ett enkelt sätt via en webbapplikation kunna visualisera publikstatistik för både broadcast och online samtidigt.
Projektet bestod av ett korsfunktionellt Scrum-team där Johan var ansvarig för både frontend och backend-utvecklingen. Backend-lösningen var en Java-applikation som kommunicerade med underliggande databas för att hämta ut information om publikstatistik som exponerades i ett JSON REST API.
Frontend-applikationen byggdes med React, Flux och Bootstrap. Den anropade REST API:t för att hämta ut information för att kunna visa upp det i diagram och tabeller.
Publikkollen blev mycket uppskattad av intressenter på SVT som på ett enkelt sätt kunde se hur många och vilken målgrupp som tittat på deras program.
SVT hade tidigare använt Subversion. Johan var ansvarig och drivande för att flytta all kod till Bitbucket och istället använda Git.
Samtidigt sågs deploy-hanteringen över och förbättringar av olika script gjordes för att automatisera flera processer och skapa bättre pipelines. Johan konfigurerade vidare alla applikationer så att de loggade i ett format som kunde hanteras av Logstash och senare göras sökbara i Kibana.
Detta arbete var mycket uppskattat av framförallt devops-gruppen som kunde felsöka och hantera plattformen på ett enklare sätt.
SVT hade byggt ett eget system för att hantera undertexter. Systemet hade ett webbgränssnitt med en editor där flera undertextare samtidigt kunde editera samma undertext på ett liknande sätt som Google Docs. Systemet användes också för att direkttexta nyheter. Kommunikationen mellan klient och server skedde via WebSocket med Protocol Buffers och REST.
Johan utvecklade kontinuerliga förbättringar i webbgränssnittet och dess backend-system, som var byggt i Scala.
SVT hade utvecklat en integrationsplattform som var byggd med en mikrotjänst-arkitektur. Integrationsplattformen integrerade underliggande kärnsystem och exponerade REST-tjänster. Till exempel levererades information om rättigheter för hur länge ett program skulle få ligga uppe på SVT Play eller vad som var den korrekta titeln för ett program från tjänsterna. Integrationsplattformen innehöll också applikationer för att hantera automatisering av olika broadcast-system och statistik för sändningar och webbpubliceringar.
På integrationsplattformen utvecklade Johan ständiga förbättringar och ny funktionalitet. Han skapade även webbgränssnitt för att möjliggöra administrering av plattformen och var drivande i att införa Spring Boot vid utveckling av nya applikationer.
En annan större förbättring han gjorde var att uppdatera ActiveMQ till senaste versionen och såg till att den använde en master/slave-konfiguration för att skapa en stabilare plattform.
SBAB utvecklade nya banktjänster för området spara och betala. Johan var en del av Scrum-teamet som utvecklade en integrationsplattform som exponerade webbtjänster med SOAP.
I detta projekt var det tjänster för att hantera kort, bankgirobetalningar och överföringar som framförallt utvecklades. Integrationsplattformen kommunicerade med interna databaser, inköpta banksystem och externa system.
I teamet lades stor vikt vid code reviews vilket underlättades med hjälp av användning av Stash. Johan fick också hjälpa till att felsöka integrationsplattformen med Splunk till exempel när kunder inte kunde utföra en banköverföring.
SBAB utvecklade nya banktjänster för området spara och betala.
Johan var en del av ett Scrum-team som ansvarade för att utveckla webbapplikationer för den nya internetbanken där det ingick funktionalitet som att betala räkningar, e-faktura och banköverföringar. Webbapplikationerna anropade SBAB:s integrationsplattform med SOAP.
SBAB ville göra om hela sin webbplats till att ha en responsiv webbdesign. Så att den fungerade lika bra oavsett vilken sorts enhet som användes.
I ett dedikerat team för projektet var Johan ansvarig för att se till att alla SBAB:s webbapplikationer skulle anpassas till den nya CSS:en och fungera via mobila gränssnitt. Det gjordes modifieringar av JavaScript, HTML och mallar.
Detta blev ett mycket lyckat projekt och SBAB vann priser för webbens nya utseende.
Teknologier och ramverk: JavaScript, HTML, CSS, JSP, Velocity, SiteVision, Git
SBAB Bank AB
Systemutvecklare, Webbanalys
2012 - 2012
SBAB önskade byta sitt webbanalys-verktyg till Google Analytics.
Johan ansvarade för att implementera övergången till Google Analytics för alla SBAB:s webbapplikationer.
Genom att implementera anrop till Google Analytics vid viktiga steg i kalkyler, låneansökningar m.m. kunde man få en bra överblick hur kunder agerade och göra anpassningar där det behövdes.
Teknologier och ramverk: JavaScript, Google Analytics, Git
SBAB Bank AB
Systemutvecklare, Hemnet-kalkyl
2012 - 2012
Hemnet var en mycket viktig kanal för att locka kunder till SBAB.
På Hemnet fanns det länkar till olika bankers kalkyler för att beräkna bolån. En funktionalitet som önskades var att från kalkylen skulle man kunna komma direkt till lånelöftesansökan och låneansökan med förinmatade värden utifrån vad som matats in i kalkylen. Kalkylen byggdes som en JavaScript-applikation som anropade ett JSON REST API som hämtade data från SBAB:s integrationsplattform via SOAP.
Johan var ansvarig utvecklare för kalkylen och efter att den släpptes steg trafiken från Hemnet till SBAB.
SBAB hade behov av att ständigt förbättra och förnya sin internetbank, integration mot sitt CMS SiteVision och webbapplikationer.
Johan ingick i Scrum-teamet som tog hand om och förbättrade dessa produkter. Han hjälpte även redaktörer i olika frågor hur man använde och konfigurerade SiteVision på bästa sätt.
SBAB ville förnya processerna för låneansökan, lånelöftesansökan och lånekalkyler via webben. De skulle bli snabbare, enklare och få ett helt nytt utseende.
Johan ingick i Scrum-teamet som utvecklade SPA:s byggda i JavaScript och ett JSON REST API byggt i Java som kommunicerade med SBAB:s integrationsplattform via SOAP.
Efter detta projekt hade slutförts blev det en markant ökning av ansökningar via webben.
Stockholms universitet ville ta fram ett nytt system som skulle underlätta handledningsprocessen vid examensarbeten.
Systemet var en form av ärendehanteringssystem där studenten kunde kommunicera med handledaren, se vad den skulle göra härnäst samtidigt som handledarna kunde se vilken fas deras studenter låg i.
Johan ingick i teamet som designade och utvecklade systemet. Han var också ansvarig för att utveckla en iPhone-applikation som integrerade mot systemet via ett REST API. I iPhone-applikationen fanns den viktigaste funktionaliteten från webbapplikationen plus att den skickade ut push-notiser när någon skickade ett meddelande.
Stockholms universitet behövde ett system för att matcha handledare med studenter för examensarbeten.
Johan ingick i teamet som designade och utvecklade detta system. Han var även ansvarig för matchningsalgoritmen som byggde på studenternas och handledarnas val av intresseområden.
Projektet hade en fast deadline innan vårterminen startade och levererades i tid.