Martin Flodin
Web Developer · Stockholm, Sweden

I am a social, creative, and eager to learn person who likes to be at the forefront of new technology. I try to learn something new every day, and like to try out the latest and greatest new web technologies and frameworks. Recently it has mostly been AI services and agents. For instance I had Claude help me modernize my own website's stack and get some of the demos working again as they were built on experimental technology at the time. I also used Claude for designing this very page. I am passionate about usability and accessibility and I always have the user's need as my focus.
On my spare time I play guitar in three different bands and I am currently trying to learn the banjo. I also enjoy sailing, VR, and watching a lot of science videos on Youtube.
Experience
Sveriges Television
Web Developer
Mar 2016 – now
I've mainly worked as a web developer for the SVT Nyheter news site (svt.se/nyheter) and the VAA (voting advice application) SVT Valkompass (valkompass.svt.se). I've also worked with the team at SVT Verifierar in their work verifying news stories.
I've been at SVT for quite a few years now, because I've enjoyed it a great deal, but I now feel ready for some new challenges. I joined one of the teams building SVT's news service, SVT Nyheter, just as they had moved to building the front end in React and having their CMS (content management system) return JSON rather than HTML. But because accessibility, usability, and reliability matter so much at SVT, we kept working hard on server rendering even during a period when the rest of the React world seemed to be heading towards pure client rendering. It's been fun to watch that swing back around, to the point where server rendering is now a cornerstone of all the major frameworks.
For many years SVT has built a voting advice application to help voters make informed choices in the national elections and the European Parliament election. I joined for the first time for the 2019 EU election, which was also the first time we built it with React and Next.js — both very new at the time. Since then I've become a natural part of the team developing it, taking on more and more responsibility for the project. I've helped build the Valkompass for EU 2019, 2022, EU 2024, and now for this autumn's election. Unlike many other voting advice applications, we have the parties answer the questions themselves and match those answers against the user's. Beyond the parliamentary parties, we also cover thousands of parliamentary candidates (and the equivalent for the EU election), as well as parties in every municipal and regional election. So on top of the application itself, there's an enormous amount of work in producing the questions at every level and collecting the answers from parties and candidates. We work with various survey companies on the collection, so the job also demands a good deal of adapting to external systems. We take our users' privacy seriously too: we store no user data, and all aggregation of a user's answers happens on the client.
Last year, when there was no election, I joined the SVT Verifierar team — a group of journalists whose job is to verify news stories. Although they are very technical themselves, I was on the team to bring deeper technical knowledge and to build small helper applications they could use to make their work easier.
Haptikfabriken
Co-Founder
Feb 2021 – Dec 2024
Co-founder of Haptikfabriken - The Swedish Haptics Factory. We designed, produced, and distributed high-quality 3D haptic devices.
This was a spinoff from the company with more focus on the haptic devices themselves. We saw a need of a modern high quality haptic device with modern connectors and decided to make our own. Mostly for our own needs in the Kobra oral surgery simulator, but we also sold individual units to other companies. I got to manufacture a few of the devices myself by hand, even though the long term plan was to outsource the production. It was very fun and exciting to learn a lot in a very short time about manufacturing and electronics.
HiQ
Consultant
Jan 2011 – Feb 2016
At HiQ I did consultant work at various places. My main expertise was in web development.
I started out doing mostly back end development, but moved to primarily front end the last few years. Apart from my assignments I also acted as an instructor for our internal education in courses such as Responsive development, and Building Web Applications with JavaScript, and as the lead for the internal front end guild. I was also one of the people in charge of arranging the annual HiQ Music Festival where around ten different bands (all from HiQ) performed.
Assignments
Ica
Aug 2015 – Feb 2016Front end developer
At ICA I was part of a team developing the main site for the Ica stores (ica.se). The site was built on EPiServer with jQuery sprinkled on top, but was moving towards a more front end heavy solution. I focused mostly on front end, but also did some back end development during back end heavy sprints. One example assignment was adding the opening hours for each store to the site.
Giesecke & Devrient
Apr 2015 – Jul 2015Front end developer
I implemented a theme for the Java web framework Vaadin used by the company. The theme consisted mainly of css/sass, but also included layout templates in html and was based on a previously developed style guide. The assignment entailed considerable freedom and responsibility as it was very independent. I also simplified and sped up the development process through automation by introducing Grunt. Furthermore, I developed an extension for Chrome to help the application developers track down layout issues. During the second half of the assignment I also mentored an intern that started then.
Scania
Sep 2013 – Mar 2015Frontend Developer · Lead Developer
I was part of a large team that developed a sales portal for Scania's resellers. The assignment was supposed to be short term during a parental leave, but I was so appreciated that the assignment was extended multiple times. I worked with the frontend team, building a single page web application with the JavaScript framework Dojo. I quickly became an important part of planning and defining new functionality. I set up front end unit testing for the project in Mocha and Chai. I also set up a local development and build environment with Grunt that sped up the development process, and wrote Python and node.js scripts to automate recurring manual steps of the process. As the team grew, I took the role as Lead developer in charge of code reviews and frontend development guidelines and best practices.
Maquet Critical Care
Feb 2011 – Aug 2013Developer · Maintenance · Designer · Systems architect
I designed, planned, and co developed numerous internal and external web applications for various departments. I took the lead on several projects and adopted a user centered process with continuous user feedback. I was also in charge of deployments and maintenance of various projects. In one of the projects I redesigned the job application site as a responsive web application.
Forsslund Systems
Partner
May 2010 – Feb 2021
Forsslund Systems was a start-up aimed at developing medical simulators with haptic feedback. We built an oral surgery simulator for use in dental education.
After my time as an employee I remained on the board and became a shareholder, and did some work on the projects in my spare time. We sold to universities in Latvia, Germany and Taiwan and I was part of the team assembling the simulators and delivering and installing them on site. The equipment was also used in Karolinska Institutet education, but on loan from us as part of the development of the simulator itself.
Enkrona AB
Web developer / CTO
Feb 2010 – Jan 2011
Developer · Lead developer · Maintenance · Designer · CTO
enkrona.se was an auction site aimed at making purchases fun. I did most of my work on the back end, supplying the administrators with tools to manage the main site. In 2010 I also became CTO in charge of the technical development.
Enkrona was an online auction site where I was responsible for daily operations and development of the site and the back office site. I also co developed a customized warehouse management system and integrated it with a TA system for communication with logistics companies. During the last four months I took over as lead developer when the previous lead left the company.
Forsslund Systems
Developer / CTO
May 2009 – Mar 2010
I was in charge of developing an oral surgery simulator for training dental students.
After finishing my thesis at Forsslund Systems in collaboration with HiQ, I started working there. Forsslund Systems was a small startup focusing on haptic feedback simulations, but we also did some other assignments to finance the main goals.
The main project was developing a simulator for wisdom tooth surgery for use in the training of dentists. The project uses advanced 3D graphics, OpenGL and volume rendering and haptics, force feedback, in the form of a robotic arm aka haptic device. During the prototyping stage the simulator was used at the Karolinska Institute in a research project to see how simulators could help students learn better. As a part of the development of the final product I built a web interface for the main GUI of the simulator, which we then displayed on a tablet attached to the simulator. This allowed us to separate the main simulation application development from the user interface work.
I also led and participated in the development of a speaker administration system for Grön Ungdom for use during their national annual meeting. The development was user centered with a lot of contact and ongoing evaluation with the customer. The application was built with Java and was later adapted for Djurens Rätt as well.
HiQ
Master's Thesis
Oct 2008 – Mar 2010
I did my Master's thesis at Forsslund Systems in collaboration with HiQ on the importance of the 3D graphics and stereoscopy in the oral surgery simulator.
Game
Salesman
Oct 2001 – Mar 2010
I worked part time as a salesman at GAME in Stockholm. Most of the time I worked in the store in Solna, but from time to time I worked at some of the chain's other stores in Stockholm. As well as at the Swedish head office during one summer where I created the weekly bulletin for the stores, and helped with the launch of the company's bonus card system.
Education
Royal Institute of Technology
Master of Science in Media Technology
Aug 2000 – Jul 2015
The time span is a bit misleading. I did enroll in 2000 and finally got my degree in 2015, but my main education took place between 2003 and 2009 roughly. Before that I attended the Computer Science programme for a year and a half before taking a break from school and work instead. During the break I still took some evening classes, but I worked almost full time for a while. In 2003 I started anew with the Media Technology programme. In 2009 I did my Master's thesis and then got a job which stole my focus and meant it took me until 2015 to finally complete the few remaining assignments and get the degree.
Public Speaking
Async
Nov 2024
I attended the local JS meetup in Brighton while in town for the ffconf frontend conference. I held a presentation about a visual phenomena I found interesting. It turns out our vision is also partly based on movement, just as the t-rex's vision is claimed to be in Jurassic Park
Stockholm ReactJS Meetup
Oct 2017
I helped organize the event, as well as acting as the MC and presenting the speakers.
sthlm.js
Sep 2015
I helped organize the event and held a presentation showcasing awe.js, a JavaScript framework for building augmented reality (AR) web applications.
Projects
Odd1Out
In my spare time I play guitar in a few bands, one of them being Odd1Out. And as I am a web developer by profession I built the band's website based on the singer Rickard Linder's design.
The Dark Side of Web Audio
I created a visualization based on Pink Floyd's iconic album cover for Dark Side of the Moon using Web Audio and WebRTC. At first I used the SoundCloud API to play actual Pink Floyd tracks, but the API has since been locked down and the tracks taken away, so it now plays a short demo track of my own. I also built a version that uses audio from the microphone to drive the visualization.
Vecka
I really like vecka.nu, but I wanted to have even easier access to seeing what week it is, so I created my own version where the week number was also shown in the favicon. Something vecka.nu didn't do at the time. This let me have a pinned tab that always showed me what week it was. Later vecka.nu also got this functionality, and I want to believe that I had something to do with that, but that is probably just wishful thinking.
WebGL
Since I wanted to try using WebGL which was very new at the time, I chose to use it for one of the assignments in the graphics course I took which was meant to be done in OpenGL. I'm pretty impressed that it keeps on working even though WebGL was very experimental at the time. I've made some tiny fixes during the years, but nothing major.