Dela

Mats Blomdahl

  • Lead Developer
  • DevOps Engineer
  • Scrum Master

Översikt

Egenskaper

Mats är en glad prick! Våldsamt kompetent och med ett oerhört entreprenörsdriv. Han brinner för att effektivisera, lösa problem och förbättra projektprocesser. Främsta mottot är "lead by example" och han blir särskilt glad när han ser sina teammedlemmar växa.

Konsultens CV

  • Smith Micro Software, Inc.

    2017 - 17

    Software Developer (2017-05–2017-09)

    Mats tog sig an uppdraget att lägga till Mapbox – jämte Google Maps – som kartleverantör för webbkomponenten i SMSIs flaggskeppsprodukt. Sin vana trogen passade han även på att införa en rad kvalitetsförbättringar i den 4 år gamla kodbasen; refaktorerade och städade upp för att möjliggöra interaktiv debugging via WebStorm, införde "strict mode" JavaScript, formaliserade befintlig kodstil med ESLint, m.m.

    EXEMPEL
    Ett par delkomponenter:
    – https://github.com/mblomdahl/mapbox-gl-circle
    – https://github.com/mblomdahl/mapbox-gl-geocoder

    TEKNIKER
    AngularJS, npm, ESLint, WebStorm, Mapbox.js, Mapbox GL, Turf.js, Browserify, Grunt, ES2015, LESS, Nginx, Wildfly, Docker

  • Smith Micro Software, Inc.

    2016 - 17

    Interim Director of Dev Infrastructure (2016-08–)

    Mats tog sig an uppgiften att modernisera SMSIs utvecklingsinfrastruktur och centralisera den till datacentret i Aliso Viejo [AV]. Uppdraget bestod i fyra parallella spår under 12 månader:
    – Migrera in Stockholm-kontorets JIRA i huvudkontorets JIRA
    – Migrera alla produkter från Subversion till Git och utbilda ca 100 utvecklare & testingenjörer i att använda den nya miljön
    – Ta över existerande CI (Jenkins) och migrera dem till ett Bamboo-baserat kluster
    – Ersätta befintlig release-hantering med Gitflow Workflow och vidareutveckla serverprodukternas byggplaner (Docker-images, RPM:er, automatisk deploy till EC2 & vCenter)

    JIRA-MIGRERING
    Mats städade upp Stockholm-kontorets JIRA genom att anpassa workflows, notifieringsschema, roller/rättighetsnivåer och tidrapporter. Därefter kunde han genomföra en komplett import i huvudkontorets 8 år gamla JIRA, bland 500 andra projekt.

    GIT-MIGRERING
    Mats satte upp en ny RHEL 7-server i AV med Bitbucket Server, migrerade över existerande Git-repon från Stockholm-kontoret, integrerade med JIRA/Crowd/Bamboo och ledde en workshop där alla utvecklare introducerades till de nya systemen. Därefter tog han ett team i taget och migrerade över deras SVN-historik till Git (och strukturerade om historiska releaser enligt Gitflow-modell) under helgerna så de kunde fortsätta i Git direkt på måndag morgon utan downtime. Detta följdes av uppföljningsmöten, löpande vägledning kring pull requests (peer review), commit-hygien, m.m. tills utvecklarna kände sig hemma i de nya processerna. Upprepades för totalt 5 teams i Pittsburg, Belgrad och Aliso Viejo.

    CI-MIGRERING
    Mats satte upp ytterligare en RHEL 7-server i AV med Bamboo, tillsammans med ett antal byggagenter med Windows Server 2012, macOS och CentOS 6/7, och integrerade med JIRA, Crowd och Bitbucket.

    De 5 Linux-baserade byggagenterna (som står för >95 % av jobben) skapades med komplett provisionering via Ansible. Inga systeminställningar ändras via manuell SSH-inloggning. Med en tom installation av CentOS 6/7 tar det 40 minuter för servern att provisionera sig och vara redo att ta emot jobb från Bamboo-mastern. Då har den allt från Android SDK, Scala, Docker, MongoDB, en uppsjö Oracle JDK-/OpenJDK-versioner, Ant, Maven, Node.js, olika Python-runtimes m.m., till en opriviligerad Bamboo-användare med autofs-mounts mot de interna Windows File Share-servrarna. När en utvecklare behöver något nytt är det bara att öppna en pull request och så snart Linux-servrarna i perfekt synk. :)

    I samband med att ett utvecklingsteam fått in sina produkter i Bitbucket så tog Mats över underhåll av deras Jenkins-byggen och för att se till de matchade den nya kodstrukturen, varpå de återimplementerades i Bamboo.

    RELEASE-HANTERING
    För kundens serverprodukter ersatte Mats den gamla CI-miljöns release-hantering med en fullt automatiserad lösning enligt Gitflow och (globalt) unika versionsidentifierare:
    1. Varje gång en ändring pushas på någon Gitflow-branch skapas en unik version enligt PEP-440, varpå ett antal artefakter byggs och taggas med identifieraren
    2. Ifall ändringen sker på develop-branchen så uppdateras en utvecklingserver i EC2 med den nya mjukvaran (via Ansible, naturligtvis!)
    3. Sker ändringen en release-branch så går deployas uppdateringen istället till en staging-server för QE
    4. En merge till master-branchen definierar en ny release, dessa artefakter skeppas till kundens interna YUM- resp. Docker-repository som överlämning till TechOps och/eller deployas till produktionsserver

    Med den nya lösningen på plats kan utvecklarna fokusera på att jobba i Bitbucket. De fall där de behöver befatta sig med CI-miljön är om de fått en notifiering om att deras kod inte passerat något test eller ifall de vill ladda ner ett specifikt bygge.

    TEKNIKER
    Vagrant, Ansible, Jenkins, EC2, vCenter, Bitbucket, Bamboo, CentOS, macOS, Windows Server, iptables, firewalld, Oracle JDK, OpenJDK, Java/Ant/Maven/Ivy, Gradle, Android SDK/NDK, Docker, SCL, MongoDB, Python, MariaDB, PostgreSQL, Scala/SBT, Bower, Ruby, SASS, NPM, Nginx, AutoFS, Git, Spark, JIRA, Tomcat, RPM

  • Birdstep Technology

    2015 - 17

    Scrum Master + Lead DevOps Engineer (2015-11–)

    Mats ansvarade för design och implementation av en ny lösning som kom att ersätta föregående generation av Birdsteps analytics-erbjudande för teleoperatörer; ett praktexempel i best practices:
    – Ny dataöverföringsprotokoll med strikt JSON Schema-validering och KPI-monitorering
    – API-integrering med kundens policy-server för kontextuell berikning av inkommande data
    – Solid plugin-arkitektur redan från grunden; input-data splittas och streamas asynkront till alla aktiverade mottagare efter initial validering – MongoDB, kund-API:er, AWS S3, Elasticsearch, Spark, m.fl.
    – Utmärkt horisontell skalbarhet – helt utan shared state
    – Dokumentation i världsklass, över 500 aktuella och strikt underhållna testfall, med mjukvaran distribuerat som RPM-paket för RHEL 6 och 7
    – Självmonitorering och analytics-rapporter via Elastic Stack

    Mats tog även över som systemägare för kundens JIRA och genomdrev en rad förbättringar i företagets projektprocesser. Med detta så gick dunkla och löst specificerade user stories sitt öde till mötes. Ingen user story kommer längre in i en sprint hos Server Engineering-teamet utan väldefinierade acceptanskriterier samt tids- och komplexitetsestimat, baserat på en tydlig förståelse för 1) vem vill ha det, 2) vad vill de ha och 3) i vilket syfte. Och bäst av allt; ett par år senare är det fortfarande normen vid varje sprintplaneringsmöte!

    TEKNIKER
    Python, Sphinx, reST, Bitbucket, JSON Schema, Elastic Stack, Redis, RabbitMQ, Nginx, CentOS, Vagrant, Ansible, JIRA, Bamboo, Spark, Tomcat, Docker, RPM, Celery, S3

  • Birdstep Technology

    2014 - 17

    Test Automation Evangelist & DevOps (2014-06–)

    Mats tog sig an att modernisera kundens utvecklingsmetodik och tackla en rejäl DevOps-utmaning, i form av att aggregera ett dagligt inflöde miljarder IoT-events.

    KODKVALITET, FÖRE
    Noll test coverage. Utvecklarna använde texteditorer istället för IDE:er för serverprodukterna, skrev aldrig en enda docstring och saknade peer review-förfarande. För varje ny release till kund krävdes flera månader av regressionstestning och buggfixar. Man saknade också CI-miljö och strukturerad release-hantering.

    KODKVALITET, EFTER
    All kod migrerad från Mercurial till Bitbucket. Alla serverutvecklare har lärt sig skriva enhets- och integrationstester, använder IDE:er och gemensam kodstil, ackompanjerar sina commits med testfall och deltar aktivt i code review-diskussioner innan något mergas in i master/develop. Endast ett minimum av buggar kommer tillbaka från QA och release-cykeln har reducerats till några veckor.

    Mats införde även Continuous Integration & Delivery, med release-hantering enligt Gitflow Workflow. Nu kan till och med en projektledare genomföra en serveruppgradering genom att klicka på några knappar i Bamboo.

    DEVOPS-UTMANINGEN
    På DevOps-sidan arbetade Mats med Birdsteps analytics-produkt för teleoperatörer, bl.a.
    – utvecklade nya analysverktyg i Pandas för CSV-rapporter
    – ersatte den visuella rapporteringen med nytt webbgränssnitt och tillhörande backend (95 % test coverage)
    – ersatte datainsamlingsmodulen med en kraftigt effektiviserad komponent som reducerade antalet fysiska servrar med 50 % och loggade ut detaljerade KPI-värden till Kibana (98 % test coverage)
    – utvecklade en kartlösning med statiskt genererade "heat maps" (KDE) som overlays till Google Maps för löpande övervakning av nätprestanda.

    Med tiden växte Mats in i rollen som inhouse-auktoritet på automatiserad server-orkestrering och konfigurationshantering. Mot slutet av uppdraget kom han att lägga mycket engagemang på att dela med sig av kunskapen till IT/Operations och göra Ansible till ett naturligt verktyg i vardagen.

    TEKNIKER
    Cassandra, Python, Nosetests, Sphinx, reST, Bash, MySQL, Redis, RabbitMQ, Elasticsearch, SQLAlchemy, Pandas, Mercurial, Bitbucket/Git, JIRA, Bamboo, PHP, ES5, HTML5, Sencha ExtJS 5, CentOS, Elasticsearch, Logstash, Kibana, Nginx, Ansible, Gunicorn, Flask, Docker, Tomcat, Celery

  • Feministiskt Perspektiv

    2014 - 15

    CTO and Scrum Master (2014-05–2015-02)

    Jämte övriga uppdrag lyckades Mats klämma in ett halvtidsåtagande med att introducera JIRA och agila metoder för organisationen, samt bistod produktägaren i att skapa välartade user stories. Mats hann även med att modernisera kundens IT-infrastruktur lite genom migrera Django-plattformen till Git.

    TEKNIKER
    Python, Django, Mercurial, Bitbucket/Git, JIRA

  • Svensk Mäklarstatistik AB

    2012 - 14

    Lead Software Engineer (2012-08–2014-11)

    Mats ansvarade för arkitektur, design, implementation, drift och sedermera underhåll av ett molnbaserat informationslager och CRM för Svensk Mäklarstatistiks företagstjänster.

    Det nya systemet ersatte SCBs inläsningsrutin med att manuellt korrigera och importera de (ofta trasiga) CSV-filer som fastighetsmäklarsystemen mailat in. Istället tog systemets PaaS-backend hand om att parsa, korrigera och kategorisera inkommande CSV-emails, för att slutligen importera försäljningarna till NoSQL-databasen (numer i strikt typat och normaliserat format).

    Den manuella hanteringen av abonnenter, vilka parametrar de betalar för samt uppdateringsfrekvens ersattes med ett webbaserat användarhanteringssystem i ExtJS. Via den webbaserade kundportalen kan även abonnenterna se vilka parametrar som är tillgängliga, hämta sin API-nyckel och tillgodogöra sig API-dokumentationen.

    Innan JSON-API:et introducerade skulle kunden istället laddat ner en stor CSV från SCBs FTP-server. För abonnenter som ville hålla kvar vid detta approach så utvecklade Mats ett enkelt cross-platform CLI som återskapade CSV-filen på disk i utbyte mot en API-nyckel.

    EXEMPEL
    Se http://linkedin.com/in/mblomdahl/

    TEKNIKER
    Python, Sencha ExtJS, NoSQL, Google App Engine, Cloud Datastore, BigQuery, G Suite, Bitbucket/Git, JIRA

  • Kungliga Vetenskapsakademien

    2011 - 16

    Lead Software Developer (2011-12–2016-06)

    Mats ansvarade för arkitektur, implementation, drift, underhåll och löpande vidareutveckling av ett datalager för forskarna vid Beijerinstitutet.

    Systemet byggdes som en PaaS-applikation i Google Cloud Platform, med huvudsyfte att
    – kontinuerligt monitorera ett par dussin utvalda parametrar på ca 50 000 webbsidor via distribuerade web crawlers
    – föra en detaljerad journal över tillkomna/borttagna sidor samt alla ändringar i parametervärden under sidans livstid
    – läsa in, transformera och arkivera utvalt bildmaterial kopplat till webbsidorna
    – normalisera inläst adress- och koordinatinformation via geocoding
    – validera, deduplicera och sammanställa inläst data via med hjälp av interna referensdatabaser.

    För att tillgängliggöra de massiva datamängderna för forskargruppen så utvecklades en webbportal där användarna kunde sammanställa komplexa sökningar via ett menysystem och exportera data från NoSQL-databasen med MapReduce-jobb.

    I en vidareutvecklingsinsats kompletterade Mats webbgränssnittet med periodiska exporter till BigQuery, där forskarna kunde utföra tyngre aggregeringar och rådata-exporter via Hive-liknande SQL-queries.

    I den tredje och sista generationen ersattes webbgränssnittet med en asynkron replikering från NoSQL-databasen till Cloud SQL, för att möjliggöra bättre geospatiala analyser i PostgreSQL.

    TEKNIKER
    Web Crawling, lxml, Big Data, MapReduce, NoSQL, PostgreSQL, Python, Sencha ExtJS, Google App Engine, Cloud SQL, Cloud Datastore, BigQuery, Cloud Storage, Bitbucket/Git, JIRA

  • Stormfors Digitalbyrå

    2011 - 14

    Solution Architect and Presales (2011-05–2014-05)

    Utveckling och presales för SPAs med inriktning på mobila enheter, långt innan HTML5/JavaScript blev mainstream. :) Mats gjorde även sin beskärda del av CMS-utveckling, nätverksinstallationer, backendutveckling och allmänt DevOps-arbete.

    EXEMPEL
    Ett av Mats första JavaScript-projekt daterat 2011-12-14 (aldrig underhållet): http://showroom.neonode.com/story/

    TEKNIKER
    Sencha Touch, jQuery Mobile, ES5, HTML5, SASS, Python, Google App Engine, MySQL, Drupal, Drupal, PHP, WordPress, Ubuntu, Photoshop, Illustrator, Bitbucket/Git, JIRA

Kompetensområden

  • - Operativsystem/plattformar

    Apache HTTP Server, Windows 95, Windows 98, Android, iOS, Windows 2008 Server, Windows 7, Windows XP, Red Hat, Linux, Mac OS X

  • - Databashanterare

    mySQL, Postgresql, SQLite

  • - Verktyg & Middleware

    Adobe Dreamweaver, ArcGIS, Atlassian Fisheye, CVS, Eclipse, Gradle, JBoss, Maven, Netbeans, Perforce, Tableau, Tomcat, Wildfly, Xcode, Adobe Illustrator, Adobe InDesign, Adobe Photoshop, Ant, Jenkins, Subversion, Docker, Elasticsearch, MySQL Workbench, Node.js, RabbitMQ, Atlassian Bamboo, Atlassian Jira, Atlassian Stash, Git

  • - Utvecklingsspråk

    Android, Assembler, C, C++, JUnit, Matlab, PowerShell, Ruby, SOAP, Swift, Angular 2, Typescript, AngularJS, HTML5, Javascript, Python, Unix Shell script

  • - Hårdvara

    Mac, PC

  • - Standarder

    IEEE Software Engineering Standards

  • - Verksamhetsutveckling och Strategi

    Ledarskap, rekrytering, personalutveckling, Produktledning, Turnaround, Change Management, Förändringsledning, Kravanalys, Processinförande, Processutveckling, Programledning, Projektledning, Utredning, Verksamhetsanalys, Verksamhetsarkitektur, Workshopledning

  • - Försäljning

    Anbudsförfarande, Avtal och Förhandling, Försäljning, Säljsupport

  • - IT-strategi

    IT-arkitektur - företagsnivå, Teknikutredning, Val av utvecklings- och produktionsmiljö

  • - Upphandling

    Beställarstöd, Inköp och förhandling, Kravformulering, Leverantörsanalys, Offertutvärdering, Resurs i upphandlingsprocess

  • - Metoder & Processer

    LEAN, Continious Delivery, Continuous Integration, KANBAN, Processer och metoder allmänt, Scrum, TDD - Test Driven Development, Workflow management, Agila metoder allmänt

  • - Ledarskap

    Beteendevetenskap, Outsourcing, Psykologi, Rekrytering & Personalutveckling, Grupprocesser, Interimsledning, Ledarskap allmänt, Operativ ledning, Organisationskultur och värdegrund, Det coachande ledarskapet

  • - Projektfaser

    Drift, Förstudie, Införande och överlämning, Produktionsinförande, Projektering, Test, Implementation, Systemering/Design/Krav, Utveckling/Genomförande

  • - Projektledning

    Inköp, Administrativ delprojektledning, Administrativ huvudprojektledning, Agile project systems, Projektadministratör/assistent, Projektledning, Teknisk projektledning

  • - Kvalitetsstyrning

    Digital Analytics, Kvalitetsledning, Kvalitetssäkring/ Reliability engineering, Change Management, Dokumentation

  • - Test & Verifiering

    Systemtestning, Tillgänglighet, Validering & Test - Mjukvara, Integrationstest, Testautomatisering, Testprocessutveckling

  • - Elektronikkonstruktion

    CAD-layout, FPGA, Strömförsörjning

  • - Trådlös datakommunikation

    NFC, WiMax, WLAN

  • - Fast datakommunikation

    WAN, Datakommunikation allmänt, Ethernet, TCP/IP, Unix

  • - Drift/Support/Service

    Användarsupport, Datadrift/övervakning, Drift/Support/Service allmänt, Installation/underhåll, Nätverksadministration

  • - Mobila Telesystem

    App strategy, Basstation, GSM, LTE, WCDMA (3G)

  • - IT-säkerhet

    Informationssäkerhetsspecialist, Kryptering, Säkerhetsarkitekturer, Datasäkerhet/sårbarhetsanalys, Riskanalys, IT-säkerhet allmänt

  • - Databaser

    Databasadministration, Databaskonstruktion, Databaser allmänt, Datamodellering, DBA, MongoDB, Postgresql, Datalager, Datawarehousing

  • - Systemtyper

    Windowsapplikationer, Beslutstöd- och BI-system, Systemtyper allmänt, Mobilapplikationer, Nätverk och kommunikation, Systemförvaltning, Systemintegration, Data Warehouse, Mjukvaruarkitektur - programnivå, Systemarkitektur - systemnivå, Webb- och Internetbaserade system

  • - Tillämpningar

    Billing-system, e-handel, Instant Messaging, Internet of Things, GIS, AJAX, Ärendehanteringssystem

  • - Branscherfarenhet

    Fordon, Ideell organisation, Service/Tjänster, Skola och utbildningsväsende, Byggindustri, Teleoperatörer

  • - Roller

    Upphandlare, Databasadministratör, Produktledare, Produktägare, Utredare, Kravanalytiker, Projektadministratör, Scrum master, Teknisk projektledare, Utbildningsledare, Workshopledare, Kvalitetsansvarig, Lösningsarkitekt, Team-ledare, Utvecklare/Programmerare

  • - Kommunikation & Information

    3D-modellering, Brand Management, Grafisk identitet och profil, Marknadskommunikation, Videoredigering, Animering, Infographics, Kriskommunikation, Mobila medier, Presentationsteknik, Förändringskommunikation, Internkommunikation, Intranät, Utbildningsmaterial, Engelska

Anställningar

  • 2008 - 2008

    Estimator/elinstallatör (2008-05–2008-09), AB El & Ventilation Sörmland

  • 2006 - 2006

    Elektriker (2006-01–2006-07), Nynäshamns Energi

  • 2006 - 2008

    Förman/arbetsledare (2006-06–2008-05), Metrima Home Solutions AB

Utbildningar

  • 2011 - 11

    Statistik, Stockholms Universitet

  • 2008 - 10

    Civ.ing. Datateknik, Kungliga Tekniska Högskolan

  • 2004 - 04

    Redovisningsassistent, Frans Schartau

  • 2004 - 05

    Elektrikerprogrammet, Lernia AB

  • 2002 - 04

    Webbutvecklare och nätverkstekniker (CCNA), NTI-Skolan, Åsö Komvux

  • 1999 - 02

    Natur/Matematik, Leksands gymnasium

Visa mer

Intresserad? Kontakta

Anders Eriksson
Kundansvarig på Kvadrat Stockholm AB
0733-58 36 50
Marit Barklund
Kundansvarig på Kvadrat Stockholm AB
073-360 70 07
Henrik Widström
Kundansvarig på Kvadrat Stockholm AB
070-276 44 68
Isac Hellwig
Kundansvarig på Kvadrat Stockholm AB
070-7220557
Sebastian Monadjemzadeh
Kundansvarig på Kvadrat Stockholm AB
0739613171
Anna Bohlin Archer
Kundansvarig på Kvadrat Stockholm AB
070-3705363
Carolin Mihic
Kundansvarig på Kvadrat Stockholm AB
070-4444941