Developer with great passion for the web and for open source.
I love to try out the newest technologies and I do most of my work in JavaScript and React.js. I prefer to use TypeScript whenever I deal with JavaScript. The code gets easier to reason about when using types, better overview of the functions, auto-completion and suggestions for the editor are also nice. I'm also interested in other languages such as Rust, Elm, ReasonML, and Haskell. I'm very interested in functional programming and functional languages.
https://github.com/drager
Experience
Beanloop AB
Owner, Senior Fullstack Developer
Jan 2016 -
Present
Stockholm
Full time
I 'm a cofounder of Beanloop and we started the company in 2016. Since then we had both large and small customers. Examples of customers we have worked with are, Bygghemma (https://www.bygghemma.se/), Södra skogsägarna (https://www.sodra.com/), Bontouch (https://www.bontouch.com/), ATG (https://www.atg.se/), Infomaker/Naviga (https://www.infomaker.se/), Svalna (iOS and Android), and Socialview (https://socialviewagency.com/). We started Beanloop for our great passion, programming, and to develop great software with techniques that we really love and stand for. We work mostly with Amazon's cloud services, where we build systems using a microservice architecture, we use Amazon's lambda services, queues, databases, and their service for handling Docker containers etc. We always ship code via a CI system like Travis or Circle CI.
Fullstack developer
Software developer
React.js
React Native
JavaScript
Apollo GraphQL
GraphQL
Rust
App development
Web development
ATG
Team lead - ATG appen
Jan 2020 -
Present
Stockholm
Full time
Jag har i nästan 3 år varit lead för utveckling av ATGs mobilapp. Appen finns till både Android och iOS. I appen kan man bl.a. spela på de olika hästsporterna (V75, V86 etc), se loppen live med möjlighet att casta till sin chromecast eller via airplay och även sätta in pengar till sitt ATG-konto via Swish, bankkort etc, samt ta ut pengar.
När jag började för 3 år sedan så fanns egentligen bara ett enklare utbud för häst i appen, men på ATGs webbsida, atg.se finns även vertikalerna sport och casino, samt butiksandelar för häst och sport. Målet med appen var att ta hela ATGs utbud från webbsidan till appen. Under min tid som lead, så har jag ansvarat för att utveckla stora delar av sport och casino-delen i appen. Jag har dessutom ansvarat för att releasa appen på AppStore och Google Play. Under 2021 var jag ansvarig för projektet Big 9, ett helt nytt poolspel för sport. Jag har dessutom byggt om hela appens inloggning som nu även stöder BankID och FrejaID.
ReactNative
Redux
TypeScript
Redux-saga
GraphQL
Node.js
AWS
Lambda functions
Serverless
Team lead
Pinpointest AB
Tech lead / Senior fullstack utvecklare
May 2019 -
Dec 2019
Kalmar
Full time
Pinpoint är en startup med kontor i Stockholm. Beanloop hjälpte Pinpoint att utveckla en webbaserad plattform helt ifrån grunden. I plattformen kan användarna registrera sig med BankID och lämna estimat på noterade bolag på en rad olika nyckeltal, som vinst per aktie, nettoomsättning, intäkter och kassaflöde för kommande kvartal och/eller helår.
Jag är tech-lead för backendteamet i pinpoint-projektet och har tagit fram systemets arkitektur, databasmodellering och driftsatt hela systemet (backend och frontend) på AWS i bland annat Kubernetes och S3. Hela driftsättningen är automatiserad via ett CI-flöde. Backend består av flera olika servicerar som har ansvar för olika delar av systemet. Dessa kan driftsättas helt separat och har sitt egna CI-flöde. Backend teamet är remote-baserat och består av mig och två till. Mina arbetsuppgifter är att leda backend-teamet, planering, programmering och att ha avstämningar med Pinpoints CTO. Vi har även planeringsmöten och avstämningar med frontend
Tech lead
Lead developer
Arkitektur
Microservices
Node.js
Kubernetes
Docker
AWS
TypeScript
GraphQL
Svalna aktiebolag
ReactNative programmerare
Oct 2018 -
May 2019
Kalmar
Full time
Svalna (https://svalna.se) forskar om hållbar konsumtion vid Chalmers tekniska högskola och utvecklar en tjänst riktad mot privatpersoner och organisationer för att spåra deras egna klimatpåverkan och bidra till att minska den. Tjänsten har utvecklats i samarbete med Göteborgs Stad och med ekonomiskt stöd från Västra Götalandsregionen, Chalmers tekniska högskola och Energimyndigheten. Jag har varit med i teamet på Beanloop som utvecklar Svalna-appen för Android och iOS med React Native tillsammans med Redux och Apollo GraphQL.
ReactNative
TypeScript
Performance
Optimization
Redux
GraphQL
CSS
Inquinova
Senior fullstackutvecklare, CI/CD
Sep 2017 -
Feb 2019
Kalmar
Full time
Ett projekt där jag medverkat som konsult under 1,5 år.
Detta gällde utveckling av ett digitalt arbetsverktyg som effektiviserar arbetet med tillsyn och platsbesiktningar/egenkontroll. Jag hade följande arbetsuppgifter:
- Ansvar för att sätta upp en rad olika tjänster på Azure. Dessa tjänster var bland annat CosmosDB (MongoDB), Azure Functions (lambda), Redis, AppService, AppInsights, BlobStorage m.fl. - Uppsättning av CI via Jenkins för att driftsätta alla delar av systemet till Azure. - Backups hos Azure, genom att återställa till gamla backups om något gått fel i systemet och felaktig data hade sparats. - En tjänst i systemet som hanterade inloggningstokens samt refresh och revocation av dessa. - En tjänst som hanterar GDPR, där användare av systemet kan begära ut all data men även rensa upp/maskera data om användaren så önskar. - Schemaläggningar (cron jobs), då olika delar av systemet körs vid olika tillfällen. Arbetade även med cachning av data i Redis för snabbare åtkomst.
C#
.NET core
TypeScript
Node.js
Microservices
CI/CD
GDPR
Socialmatch AB
Fullstackutvecklare, CI/CD
Feb 2017 -
Sep 2017
Kalmar
Full time
En micro-influencer plattform som för samman marknadsförare och micro influencers. Vi på Beanloop har utvecklat hela systemet från grunden och min roll har varit projektledning samt att medverka i jobbet med att sätta upp arkitektur och tjänster på AWS men också att ta fram en skalbar databasmodell. I detta projekt använder vi Docker och nyttjar AWS tjänster för hantering av Docker-containers, EC2-instanser och databaser. Servern är utvecklad i Node.js med TypeScript och GraphQL. Klienten är byggd i React.js tillsammas med Apollo & Redux. Jag utvecklade även en särskild service som är en “digital plånbok” som har koppling till Stripe. Servicen är ett separat system som kan pluggas in i vilket annat system som helst. Den driftsattes på AWS i en docker-container och anslöt till AWS databas-tjänster. Servicen utvecklades i språket Rust.
Microservice
Arkitektur
Postgres
AWS
Rust
Digital plånbok
Node.js
TypeScript
GraphQL
Snaplit
Programmerare Node.js
Sep 2016 -
Nov 2016
Kalmar
Full time
Vi på Beanloop utvecklade en desktopapplikation för att digitalisera och därmed effektivisera hanteringen av inkommande data åt företaget Snaplit, som är en e-handel för studentliteratur. Desktopapplikationen används internt för att effektivisera hanteringen av väldigt stora leverantörsfiler som kommer från bokförlagen i XML format. Applikationen kan hantera flera leverantörsfiler parallellt eftersom den är byggd i Node.js och Rxjs. För detta projekt liksom många fler använde vi TypeScript. Innan Beanloop hjälpte Snaplit bygga appen fick personal lägga dagar per vecka på att manuellt extrahera nödvändig data ur leverantörsfilerna, data som behövdes som input till andra system.
Parser
Rxjs
Functional programming
Node.js
Desktop application
Linnaeus University
Tutor in the course Web Framework
Jan 2016 -
Dec 2016
Kalmar, Remote
Full time
In the course the students learn how to use web frameworks such as Ruby on Rails and Angular.js. The students created a RESTful API using Ruby on Rails. Then they built a JavaScript application using Angular.js that leverages that API. I handled tutoring for this course.
Infomaker Scandinavia
Fullstack developer
Jun 2015 -
Sep 2015
Kalmar
Full time
I worked as a fullstack developer at Infomaker. My focus was mainly on Node.js and JavaScript. Developed everything from small Node.js servers to larger web applications that used frameworks such as Angular.js or Ember.js. Also had customer contact with larger newspapers, as I developed web systems they would use.
Angular.js
Node.js
JavaScript
HTML
CSS
Fullstack developer
Linnaeus University
Teaching assistant in the course Programming and Problem Solving
Jan 2015 -
Dec 2016
Kalmar, Remote
Full time
The course is about programming and problem solving. Students learn to solve different problems and apply algorithms. I worked with tutoring and grading on the students submissions in the course.
Tutor
Grading
Algorithms
Problem solving
Nordic.js
Registration and information, controlling parts of the projector
Jan 2015 -
Dec 2015
Stockholm
Full time
Nordic.js is a two-day JavaScript conference in Stockholm, Sweden. The goal of Nordic.js is to inspire and to get inspired, to meet and learn from others and to bring the community closer together. Many different talks are presented each year at Nordic.js. Everything from how the JavaScript VM works to how to build a PWA app.
I worked at the conference those two days, mainly with registration and information as well as handling the projector.
JavaScript
Node.js
Conference
Nordic.js
Mizetto AB
Web developer
Jan 2014 -
Dec 2014
Kalmar
Full time
Worked as a web developer at Mizetto. Helped to develop a web system where Mizetto could upload all of their products with various images, product specification papers and other information about their products.
Used to show ads, campaigns, communication and offers etc. that we think you are interested in, and that are personalised after your preferences.
Functional (improve the website)
We use functional tracking to analyse how our website is being used. This data helps us to discover errors and develop new designs. It also allows us to test the effectiveness of our website, and to improve the support functionality on the website.
Required (give website access)
We use cookies to enable essential website operations and to ensure certain features work properly, like the option to log in or add a product to your shopping cart. This tracking is always enabled, otherwise, you can’t login to the website.