Senior Fullstack Web & Mobile Developer · Tokyo
I am a full stack developer with 14 years of professional experience across web, mobile and desktop — and I have built it in three countries: Sweden, Germany and Japan. Video streaming, e-books, hotel booking, phone insurance, car rental, optical retail, HR and affiliate marketing, mostly on large business-critical systems where being wrong is expensive.
I have led as well as built: tech lead of a team in Tokyo coordinating with a second team in Canada, engineering manager of a frontend team in Japan, and enough hiring — a couple of interviews a week for months at a stretch — to have real opinions about it. Today I work as a senior IC, which means a lot of my week goes into code review, and I prefer it that way.
I am a geek by nature and have always fiddled with computers and the web. My passion is to improve people's lives through technology. When I am not with my wife and kids I am usually building my latest hobby project — increasingly with agents doing the typing while I decide what gets built.
2022-06 - present
Senior Frontend Engineer
Japan also recalibrated how I work: the bar here is ship it right rather than ship it fast, and visibly caring about quality counts for as much as velocity.
Tech used: React (Next.js), GraphQL, Node.js, webpack, Docker, Github Actions, Nginx, Selenium, PHP
2021-08 - 2022-05
Frontend Team Manager / Tech Lead
Tabist Oyo Japan is a hotel services company serving
both guests and hotel owners. Their bookings all arrived through
OTAs such as Rakuten Travel — there was no direct channel at
all.
Tech used: React (Next.js), React Native (iOS & Android app), Node.js (Fastify), Docker, AWS (Fargate), GCP, Github Actions, Terraform, Selenium, Strapi CMS
2020-10 - 2021-07
Tech Lead & React Native Developer
Asurion is an insurance company specialized in mobile phone insurance. I was working on several projects which introduced new consumer services, such as delivery service and insurance. My responsibilities were mobile app and website development. I worked closely with BAs, managers, designers and other developers. The main technology I used was React Native to create an iOS and Android app.
Tech used: React Native, Objective-C (iOS), Java & Kotlin (Android), React, Graphql, Node.js, Docker, AWS, Appium, Jenkins
2018-12 - 2020-10
Tech Lead & React Native Developer
Rakuten Kobo is Rakuten's e-reading business. I joined as a consultant and later as an employee, as tech lead of the 5-developer team in Tokyo rebuilding the Kobo iOS and Android app in React Native, coordinating with a second team in Canada.
Tech used: React Native, Objective-C (iOS), Java & Kotlin (Android), Docker, Jenkins, Appium
2018-03 - 2018-12
Fullstack React Web/Mobile Developer
I worked in a team building a SaaS restaurant management solutions. My role was a fullstack developer and my focus was building frontend web applications using React. I was also building mobile apps with React Native. The backend was built with Java, Node.js and Python running on AWS with Docker. The work was organized in an agile fashion with Scrum as the main methodology. The role also included working on infrastructure managing EC2 instances and ECS docker containers.
Tech used: React, React Native, Objective-C (iOS), Java & Kotlin (Android), Java, Docker, AWS, Appium, Selenium, Python (Django)
2015-11 - 2018-03
Senior Consultant & Full Stack Developer
As a Netlight consultant, I was supporting clients on site with delivering software solutions by providing my technical and management expertise. The role was also to collaborate with sales to land new assignments and to mentor new recruits and support hr when hiring new talent.
| Client | Description |
|---|---|
| Prosieben, Munich, Germany |
Prosieben is one of Europe's largest media companies. They have several streaming platforms and I was working for one of them. I was hired because their media ingestion was using an inefficient third party monolith application. I was part of a team that was rewriting the monolith into microservices while trying to learn German. In the end we could speed up both the media ingestion and the metadata processing. Tech used: Node.js, Vue, PHP, Docker |
| Sixt, Munich, Germany |
Sixt is one of the world's biggest car rental companies. I joined their frontend team to improve the team performance by introducing agile methodology and to transform their old PHP stack into a modern React/Go stack. During my time at Sixt we created a new frontend from scratch and improved communicating with other teams such as marketing and adwords teams. Tech used: React, Go, PHP, Docker, AWS |
| Fielmann, Hamburg, Germany |
Fielmann is Germany's biggest optician. They were expanding their business in Switzerland and I joined to boost their productivity. I managed a team with 2 junior developers to improve the database migration. I was also working with the team that were adapting the whole application for use in Switzerland. We were using Agile methodologies by the book which was the first time I have experienced an organization fully invested in Agile, and it was working really well! Tech used: C#, Angular, MS SQL, Selenium, Docker |
2015-06 - 2015-11
Moved from Sweden to Germany, took some time off, and went to language school to get to a level where I could work in German.
2014-06 - 2015-06
Full Stack .NET Developer
Mecenat is an affiliate marketing company specialized in university students. It's the unofficial student identification in Sweden that gives you discounts in almost all shops in Sweden. I was working in the platform team that were managing the whole IT operation for the company. I took care of end to end, from frontend to network.
Tech used: ASP.NET (C#), MS SQL, Javascript
2013-10 - 2014-06
Eight months travelling the world. Highly recommended.
2012-04 - 2013-10
Mobile Web Developer
Flex is building HR Solutions. I joined to replace the iOS app with a mobile web app for both iOS and Android. I successfully created the web app which replaced the need for a native app which better served the business.
Tech used: Javascript, jQuery Mobile, Objective-C, ASP.NET (C#)
Accountant
I was working as an accountant for Renault where I did book
keeping, accounts payable, yearly financial report, etc. It's a
job where good structure and organization is key. It was during
this job that I realized that I would rather be the one creating
the systems, and started studying as an engineer.
Croupier
After High School and military service I started working for the
casino in Stockholm, Sweden. I was always interested in
gambling, but it was a costly hobby so I joined the casino
instead. I learned a lot about customer service and to keep calm
in stressful situations. The job combined quick thinking, good
technique and customer care.
2010 - 2013
Bachelor of Informatics
I came to it the long way round, after a first career in accounting convinced me I would rather build the systems than reconcile their output. I started working as a developer at Flex Applications in my final year.
| Language | Level | Comment |
|---|---|---|
| Swedish | Native | Schooling and first six years of my career, in Sweden. |
| English | Fluent | My working language for over a decade, across teams in Germany, Japan and Canada. |
| Japanese | Conversational | No certification, but I hold a senior role on a Tokyo team where most day-to-day communication happens in Japanese — reviews, planning and design discussions included. |
| German | Conversational | Learned at language school after moving to Munich. English carried most of my work in Germany, but at Fielmann in Hamburg the working language was German. |
| Frontend | Level | Comment |
|---|---|---|
| Javascript / HTML / CSS | Primary | I wrote my first website in high school in 2004 and it has been my main language for 22 years since. It is what I reach for by default, and there is very little left that you can't build with it. |
| Typescript | Primary | As a long time Javascript dev I was sceptical at first, but after 8 years I consider it non-negotiable on anything that has to be maintained by more than one person. Types are what let JS scale past small frontends. |
| React | Primary | I have used React since 2014 — 12 years, across five companies and both web and mobile. Its component model composes better than anything else I have shipped at scale. |
| React Native | Primary · to 2022 | Three company apps on iOS and Android — Rakuten Kobo, Asurion and Tabist — in tech lead roles on each, plus hobby projects. Comfortable dropping into the native layer when the bridge is the problem. |
| Vue | Working · to 2018 | An early adopter, and a Patreon of Evan You back when that was a small club. Used it in production at Prosieben. Vue's opinionated defaults get a team moving faster than React's; React wins once the app is large enough that you want the escape hatches. |
| Objective-C / Swift | Working · to 2021 | Mostly in service of React Native: writing native modules against iOS frameworks and exposing them to the Javascript side. Enough to debug a build or a bridge, not enough to build a full app natively today. |
| Java / Kotlin / Gradle | Working · to 2021 | Android since university, and more recently the native half of React Native apps — native modules, and the Gradle wrangling that comes with shipping to the Play Store. |
| Angular | Working · to 2018 | Angular 1 and 2, both at larger organisations. Its DI and module system suit big teams with strong backend conventions; for product work I find React's lighter model composes better. |
| Backend | Level | Comment |
|---|---|---|
| Node.js | Primary | Server-side JS since 2014 — 12 years. One language across the whole stack removes a surprising amount of friction from a small team. |
| Go | Working · to 2017 | Built middleware APIs inside Sixt's Go microservice architecture. Fast, predictable, and small enough to keep the whole language in your head — a good trade for infrastructure code. |
| Deno & Deno Deploy | Primary | My default for new personal projects. TypeScript and a sane permission model out of the box, deployed to the edge without a build pipeline — it removes most of the setup tax that Node.js still charges. |
| C# / .NET | Working · to 2018 | One of the first languages I worked in professionally: ASP.NET at Flex and Mecenat in Sweden, then C# at Fielmann in Germany. |
| Java | Working · to 2021 | Mostly Android, plus backend services at Fusion Systems. Verbose by modern standards, but the tooling and the JVM's operational track record are hard to argue with on a large team. |
| Bash / Shell | Primary | Glue scripts, CI steps and a .zshrc full of aliases. Not glamorous, but it compounds — most of the time I have saved a team came from automating something nobody wanted to do twice. |
| PHP | Exposure · to 2024 | Never a core part of my work: some of it in the legacy parts of the Prosieben and U-Next stacks, some Wordpress favours for friends, and a text adventure game at university. I can read it and patch it; I would not claim depth, and I have not touched it in two years. |
| MySQL / MS SQL / Postgres | Working |
MS SQL through the .NET years, MySQL and Postgres since. Schema
design, migrations and reading a query plan when something gets
slow. SELECT all FROM YourBase WHERE are = 'belongs to us'; |
| Ops | Level | Comment |
|---|---|---|
| AWS | Working | Most companies I have worked for deploy to AWS, and I have owned that path end to end: ECS and Fargate task definitions, container deploys, and provisioning with Terraform. Application delivery is where I am strong; deep networking is where I would want a specialist. |
| Docker | Primary |
Daily, for 11 years. When deploying any service or frontend it's always bundled in an image. It's a great tool to have your service separated from the underlying host OS and to avoid installing a lot of dependencies locally or in the host machine. |
| Digital Ocean | Primary |
I use Digital Ocean as my PaaS for my personal projects and services. Previously, I self-hosted Nextcloud, ran a MySQL DB and some smaller projects on a VPS. Through their admin panel I manage 2 domains, one of which is used for email. For privacy and learning purposes I used to run my own mail server, but I switched to Tutanota to ease my mind. Now, I mainly self-host my own calendar and contacts for privacy reasons and run a Postgres DB where I store data for various small projects. However, most of my dev projects are either running in Vercel or Deno Deploy's clusters. |
| AI | Level | Comment |
|---|---|---|
| Agent-driven development | Primary | Claude Code daily. I shipped U-Next's backoffice tooling this way — agents doing the typing, me deciding what gets built and reviewing every line before it lands — and I have a new project underway on the same footing. The reviewing is the job now; the leverage only holds if someone still owns correctness. |