Ladda ner PDF

Martin Flodin

Webbutvecklare · Stockholm

Jag är en social och kreativ person som gillar att lära mig nytt och ligga i framkant när det gäller ny teknik. Jag försöker lära mig något nytt varje dag och testar gärna de senaste webbteknikerna och ramverken. På senare tid har det inneburit att testa olika AI-tjänster och agenter. Som exempel har jag använt Claude för att modernisera uppsättningen av min egen sajt, samt få igång mina gamla demoer som var byggda på dåvarande experimentella funktioner. Jag har också låtit Claude designa just den här sidan. =) Jag brinner för användbarhet och tillgänglighet och att tänka på användarnas bästa.

När jag inte jobbar spelar jag gitarr i tre olika band och försöker numera också lära mig att spela banjo. Jag gillar även segling och VR och kollar på väldigt mycket vetenskapsvideor på Youtube.

2016–nu

Sveriges Television

Webbutvecklare

mars 2016 – nu

Jag har främst arbetat som webbutvecklare för SVT Nyheter (svt.se/nyheter) och SVT Valkompass (valkompass.svt.se). Jag har även arbetat tillsammans med teamet på SVT Verifierar i deras arbete att verifiera nyhetsstoryer.

Jag har varit på SVT i rätt många år nu då jag har trivts väldigt bra, men känner nu att jag behöver lite nya utmaningar. Jag började arbeta i ett av teamen som bygger SVT:s nyhetstjänst SVT Nyheter precis när de hade gått över till att bygga frontend i React och låta sitt CMS (content management system) bara returnera JSON istället för HTML. Men då tillgänglighet, användbarhet och driftsäkerhet är väldigt viktigt för SVT jobbade vi väldigt aktivt med serverrendering även under en tid då resten av React-världen verkade gå mot ren klientrendering. Det har varit kul att se hur det har svängt till att serverrendering numera är en grundsten i alla de stora ramverken.

SVT har sedan många år tillbaka byggt en valkompass för att hjälpa väljarna göra informerade val i de nationella valen och EU-valet. Jag var med första gången för EU-valet 2019 och det var första gången vi byggde kompassen med React och Next.js som var väldigt nytt då. Sedan dess har jag blivit en given del av teamet som utvecklar kompassen och tagit på mig mer och mer ansvar för projektet. Jag har varit med och byggt valkompassen EU 2019, 2022, EU 2024 och nu till valet nu i höst. Till skillnad från många andra valkompasser låter vi partierna själva svara på frågorna och matchar dem mot vad användarna svarar. Vi har även utöver riksdagspartierna även tusentals riksdagskandidater (och motsvarande i EU-valet), samt även partier i alla kommun- och region-val. Så utöver själva kompassen i sig är det även ett enormt arbete med att dels ta fram frågorna på alla nivåer och även samla in svaren från partier och kandidater. Vi samarbetar med olika undersökningsföretag för själva insamlandet, så arbetet kräver också en hel del anpassning till externa system. Vi värnar också för användarnas integritet, så vi sparar ingen användardata, utan all sammanställning av användarens svar sker på klienten.

Förra året när det inte var något val hoppade jag in i teamet SVT Verifierar som är ett gäng journalister med uppdrag att verifiera olika nyhetsstorys. Och även om de själva också är väldigt tekniska var jag med i teamet för att bistå med mer teknisk kunskap samt bygga små hjälp-applikationer som de kunde använda för att underlätta sitt arbete.

  • Javascript
  • Typescript
  • HTML
  • CSS
  • React
  • Remix
  • Next.js
  • Kubernetes
  • Gitlab
  • Claude
  • Codex
  • Akamai
  • Continuous delivery
2021–2024

Haptikfabriken

Medgrundare

feb 2021 – dec 2024

Medgrundare av Haptikfabriken – The Swedish Haptics Factory. Vi designade, tillverkade och sålde högkvalitativa 3D-haptikenheter.

Detta var en spinoff av företaget Forsslund Systems, med mer fokus på själva haptikenheterna. Vi såg själva ett behov av en modern haptikenhet av hög kvalitet och med moderna anslutningar och bestämde oss för att tillverka egna. Främst för våra egna behov i tandläkarsimulatorn Kobra, men även till försäljning. Här var jag även med och fysiskt tillverkade några enheter då vi byggde alla för hand till en början även om tanken var att kunna outsourca produktionen framöver. Det var kul och spännade att lära sig väldigt mycket på kort tid om tillverkning och elektronik.

  • C++
  • Ubuntu
  • Hardware assembly
  • Manufacturing
  • Electronics
  • JavaScript
  • CSS
  • HTML
2011–2016

HiQ

Konsult

jan 2011 – feb 2016

På HiQ arbetade jag som konsult hos olika kunder. Min huvudsakliga kompetens var webbutveckling.

Jag började med att mest arbeta med backend, men gick över till framför allt frontend de sista åren. Utöver mina uppdrag var jag även instruktör för vår interna utbildning i kurser som Responsiv utveckling och Bygga webbapplikationer med JavaScript, samt ledare för det interna frontendgillet. Jag var också en av dem som ansvarade för att arrangera den årliga HiQ Music Festival där ett tiotal olika band (alla från HiQ) uppträdde.

Uppdrag

  1. Ica

    aug 2015 – feb 2016

    Frontendutvecklare

    På ICA var jag en del av ett team som utvecklade huvudsajten för Icas butiker (ica.se). Sajten var byggd på EPiServer med jQuery ovanpå, men var på väg mot en mer frontendtung lösning. Jag fokuserade mest på frontend, men gjorde även en del backendutveckling under backendtunga sprintar. Ett exempel på en uppgift var att lägga till öppettiderna för varje butik på sajten.

    • C#
    • ASP.NET
    • EPiServer
    • JavaScript
    • jQuery
    • CSS
    • Gulp
  2. Giesecke & Devrient

    apr 2015 – juli 2015

    Frontendutvecklare

    Jag implementerade ett tema för Java-webbramverket Vaadin som företaget använde. Temat bestod huvudsakligen av css/sass, men innehöll även layoutmallar i html och byggde på en tidigare framtagen styleguide. Uppdraget innebar stor frihet och stort ansvar eftersom det var mycket självständigt. Jag förenklade och snabbade också upp utvecklingsprocessen genom automatisering med Grunt. Dessutom byggde jag ett tillägg till Chrome som hjälpte applikationsutvecklarna att spåra layoutproblem. Under andra halvan av uppdraget var jag även mentor åt en praktikant som började då.

    • SASS
    • CSS
    • HTML
    • JavaScript
    • Grunt
    • Maven
    • Vaadin
    • Java
  3. Scania

    sep 2013 – mars 2015

    Frontendutvecklare · Lead developer

    Jag var en del av ett stort team som utvecklade en säljportal för Scanias återförsäljare. Uppdraget var tänkt att vara kortvarigt under en föräldraledighet, men jag var så uppskattad att det förlängdes flera gånger. Jag arbetade i frontendteamet och byggde en single page-webbapplikation med JavaScript-ramverket Dojo. Jag blev snabbt en viktig del i planeringen och definitionen av ny funktionalitet. Jag satte upp enhetstestning för frontend i projektet med Mocha och Chai. Jag byggde också en lokal utvecklings- och byggmiljö med Grunt som snabbade upp utvecklingsprocessen, och skrev skript i Python och node.js för att automatisera återkommande manuella steg. När teamet växte tog jag rollen som lead developer med ansvar för kodgranskning samt riktlinjer och best practices för frontendutveckling.

    • JavaScript
    • Dojo
    • HTML
    • CSS
    • REST
    • node.js
    • Python
    • Grunt
    • Mocha
    • Chai
    • Git
  4. Maquet Critical Care

    feb 2011 – aug 2013

    Utvecklare · Förvaltning · Designer · Systemarkitekt

    Jag designade, planerade och var med och utvecklade ett flertal interna och externa webbapplikationer för olika avdelningar. Jag tog ledningen i flera projekt och tillämpade en användarcentrerad process med kontinuerlig återkoppling från användarna. Jag ansvarade även för driftsättning och förvaltning av olika projekt. I ett av projekten gjorde jag om jobbansökningssajten till en responsiv webbapplikation.

    • C#
    • ASP.NET
    • JavaScript
    • CSS
    • Windows Server
    • SQL Server
2010–2021

Forsslund Systems

Delägare

maj 2010 – feb 2021

Forsslund Systems var ett startup-bolag som utvecklade medicinska simulatorer med haptisk återkoppling. Vi byggde en simulator för oralkirurgi att använda i tandläkarutbildningen.

Efter min tid som anställd satt jag kvar i styrelsen och blev delägare, och arbetade en del med projekten på fritiden. Vi sålde till universitet i Lettland, Tyskland och Taiwan och jag var med och monterade simulatorerna samt levererade och installerade dem på plats. Utrustningen användes även i Karolinska institutets utbildning, men då till låns från oss som en del i utvecklingen av själva simulatorn.

  • C++
  • Ubuntu
  • Hardware assembly
  • JavaScript
  • CSS
  • HTML
2010–2011

Enkrona AB

Webbutvecklare / CTO

feb 2010 – jan 2011

Utvecklare · Lead developer · Förvaltning · Designer · CTO

enkrona.se var en auktionssajt som skulle göra det roligt att handla. Jag arbetade mest med backend och byggde verktyg som administratörerna använde för att sköta huvudsajten. 2010 blev jag dessutom CTO med ansvar för den tekniska utvecklingen.

Enkrona var en auktionssajt på nätet där jag ansvarade för den dagliga driften och utvecklingen av sajten och back office-sajten. Jag var också med och utvecklade ett skräddarsytt lagerhanteringssystem och integrerade det med ett TA-system för kommunikation med logistikföretag. De sista fyra månaderna tog jag över som lead developer när den tidigare ledaren slutade.

  • C#
  • ASP.NET
  • JavaScript
  • CSS
  • Windows Server
  • SQL Server
2009–2010

Forsslund Systems

Utvecklare / CTO

maj 2009 – mars 2010

Jag ansvarade för utvecklingen av en simulator för käkkirurgi för att träna tandläkarstudenter.

Efter att ha gjort mitt examensarbete på Forsslund Systems i samarbete med HiQ började jag arbeta där. Forsslund Systems var ett litet startup-bolag med fokus på simuleringar med haptisk återkoppling, men vi tog även andra uppdrag för att finansiera huvudmålen.

Huvudprojektet var att utveckla en simulator för visdomstandskirurgi att använda i tandläkarutbildningen. Projektet använder avancerad 3D-grafik, OpenGL och volymrendering, samt haptik – kraftåterkoppling i form av en robotarm, en så kallad haptikenhet. Under prototypstadiet användes simulatorn på Karolinska Institutet i ett forskningsprojekt för att undersöka hur simulatorer kan hjälpa studenter att lära sig bättre. Som en del av utvecklingen av den färdiga produkten byggde jag ett webbgränssnitt för simulatorns huvudgränssnitt, som vi sedan visade på en surfplatta monterad på simulatorn. Det gjorde att vi kunde separera utvecklingen av själva simuleringsapplikationen från arbetet med användargränssnittet.

Jag ledde och deltog också i utvecklingen av ett talaradministrationssystem för Grön Ungdom att använda under deras riksårsmöte. Utvecklingen var användarcentrerad med mycket kontakt och löpande utvärdering tillsammans med kunden. Applikationen byggdes i Java och anpassades senare även för Djurens Rätt.

  • Linux
  • C++
  • JavaScript
  • HTML
  • CSS
  • Qt
  • Bazaar
  • Scrum
  • OpenGL
  • OpenHaptics
  • H3D
  • MySQL
2008–2010

HiQ

Examensarbete

okt 2008 – mars 2010

Jag gjorde mitt examensarbete på Forsslund Systems i samarbete med HiQ om vikten av 3d-grafik och stereoskopi i käkkirurgisimulatorn.

2001–2010

Game

Säljare

okt 2001 – mars 2010

Jag arbetade deltid som säljare på GAME i Stockholm. Största delen av tiden jobbade jag i butiken i Solna, men då och då arbetade jag i någon av kedjans andra butiker i Stockholm. Under en sommar arbetade jag dessutom på det svenska huvudkontoret, där jag gjorde veckobrevet till butikerna och hjälpte till med lanseringen av företagets bonuskortssystem.

2000–2015

Kungliga Tekniska högskolan

Civilingenjör i medieteknik

aug 2000 – juli 2015

Tidsspannet är lite missvisande. Jag började visserligen 2000 och tog min examen 2015, men min huvudsakliga utbildning ägde rum ungefär mellan 2003 och 2009. Dessförinnan läste jag datateknik i ett och ett halvt år innan jag tog en paus från studierna och arbetade istället. Under pausen läste jag fortfarande några kvällskurser, men jag arbetade nästan heltid under en period. 2003 började jag om på medieteknikprogrammet. 2009 gjorde jag mitt examensarbete och fick sedan ett jobb som tog all fokus, vilket gjorde att det dröjde till 2015 innan jag blev klar med de sista uppgifterna och tog ut examen.

2024

Async

nov 2024

Jag besökte Brightons lokala JS-meetup Async när jag var där för att gå på frontendkonferensen ffconf. Min presentation handlade om ett visuellt fenomen jag precis hade upptäckt och var (är) väldigt fascinerad av. Det visar sig att vår syn också delvis baseras på rörelse, precis som t-rex syn påstås göra i Jurassic Park.

2017

Stockholm ReactJS Meetup

okt 2017

Jag hjälpte till att anordna eventet, samt agerade konferencier och presenterade talarna.

2015

sthlm.js

sep 2015

Jag hjälpte till att anordna eventet och höll en presentation som visade upp awe.js, ett JavaScript-ramverk för att bygga webbapplikationer med förstärkt verklighet (AR).

Odd1Out

På fritiden spelar jag gitarr i några band, bland annat Odd1Out. Och med min roll som webbutvecklare föll det naturligt på mig att bygga bandets webbsida. Sångaren Rickard Linder står för designen.

The Dark Side of Web Audio

Jag skapade en visualisering baserad på Pink Floyds ikoniska skivomslag till Dark Side of the Moon med hjälp av Web Audio och WebRTC. Till en början använde jag SoundClouds API för att faktiskt spela Pink Floyd-låtar, men API:et har senare låsts ner och låtarna tagits bort, så nu är det en egen kort demolåt jag använder. Byggde även en version där man kan använda ljud från mikrofonen för att trigga visualiseringen.

Password generator

Efter att ha läst XKCD-serien Password Strength började jag använda https://correcthorsebatterystaple.net/ för att generera mina lösenord. Men en dag låg sajten nere, och jag trodde att den kanske var borta för gott, så jag bestämde mig för att bygga en egen avskalad version.

Vecka

Jag gillar verkligen vecka.nu, men jag ville ha ännu enklare tillgång till att se vilken vecka det är, så jag skapade min egen version där veckonumret även visades i faviconen. Något vecka.nu inte gjorde då. Det gjorde att jag kunde ha en fäst flik som alltid visade mig vilken vecka det var. Senare fick vecka.nu också den funktionen, och jag vill gärna tro att jag hade något med det att göra, men det är nog bara önsketänkande.

WebGL

Då jag ville testa WebGL som var väldigt nytt då valde jag att göra en av inlämningsuppgifterna i grafikkursen jag gick i WebGL istället för OpenGL som var det egentliga uppgiften. Är rätt imponerad att den fortfarande fungerar då WebGL var rätt experimentellt på den tiden. Jag har gjort några småfixar med åren, men inte alls särskilt mycket.