👋 Hoi, ik ben Martijn. Ik ben dé freelance

Senior React Developer

Al ruim 8 jaar gespecialiseerd in React, met veel full stack ervaring. Ik kan veel voor je projecten betekenen.
Martijn Hols (2023)

Over mij

Ik ben een ervaren Freelance Senior Front-end Developer met meer dan 15 jaar full stack ervaring. Als Senior Front-end Developer ben ik verantwoordelijk geweest voor het opzetten en doorontwikkelen van vele grote en kleine projecten. Ik ben al 8 jaar gespecialiseerd in React. Zoveel React ervaring is zeldzaam! Ik kan veel voor je projecten en team betekenen.

In het React landschap werk ik graag aan technische zaken. Zaken als UX, de projectopzet/architectuur, TypeScript, performance, accessibility, service workers, koppelingen met backend, CI/CD, onderhoudbaarheid, stabiliteit, E2E testing, en het optimaliseren van de velocity van het team boeien mij enorm. Ik heb een focus op zowel de User Experience (UX) als de Developer Experience (DX), zodat gebruikers en ontwikkelaars optimaal kunnen werken met en aan het project.

Als Freelance Senior Front-end Developer vind ik het belangrijk om kennis te delen en het team en project sterker te maken (o.a. in React). Met meer dan 8 jaar React-specifieke ervaring en meer dan 15 jaar web development ervaring heb ik veel kennis over dit landschap.

Meer over mijn projectervaring en links naar verschillende voorbeelden in de projecten hieronder. Zie ook mijn blog voor artikelen over React en aanverwante onderwerpen. Email of bel bij interesse voor mijn CV.

Contact | Blog (Engels)

Projecten

Resultaten waar ik trots op ben.

MoneyMonk (2023 - 2024)

MoneyMonk

Als Senior Front-end Developer heb ik belangrijke en veelgebruikte features ontwikkeld zoals de btw-aangifte, uren, ritten en projecten modules, een abonneren modal en het inloggen scherm, met de 2FA en wachtwoord vergeten flows. Naast de SPA, heb ik ook gewerkt aan DX verbeteringen, zoals betere error logging en afhandeling (met Sentry), CI, de projectmethode etc. Voor de MoneyMonk website heb ik de implementatie van het redesign voor mijn rekening genomen, waaronder de nieuwe homepage en vele conversieverbeteringen. Op de website heb ik ook Static Site Generation (SSG) geïntroduceerd.

React
TypeScript
Vite
Next.js
Redux
DatoCMS
Cypress
Sentry
SSG
SSR

martijnhols.nl (2022 - 2024)

You are here

Een eigen website om beter vindbaar te worden als Freelance Senior Front-end Developer. Uiteraard gemaakt in React, met Next.js als framework en Prismic als CMS. Het is een eigen design (maar ik ben geen designer). Als pronkfunctie de contactknop.

Open Source
React
Next.js
Prismic
TypeScript
React Query
SSG

Damen Yachting (2023)

Damen Yachting

In opdracht van Iquality heb ik gewerkt aan een nieuwe site voor Damen Yachting. Dit project is een voortzetting van het Amels Yachting project waar ik in 2022 aan heb gewerkt, met een nieuw theme en andere benodigde wijzigingen om multi-site support toe te voegen aan het bestaande project. Er zijn ook veel nieuwe componenten toegevoegd, die specifiek voor de nieuwe Damen Yachting site zijn ontworpen.

React
TypeScript
Next.js
UX Design
Storybook
DatoCMS
GraphQL
Azure DevOps

Leviy (2023)

Leviy

Bij Leviy ben ik ingehuurd om mijn React ervaring te delen om de kwaliteit en kennis binnen de organisatie te verbeteren, andere ontwikkelaars te ondersteunen en begeleiden, en ter ondersteuning bij de ontwikkeling van een nieuwe module voor tijdregistratie in hun mobiele app op basis van React.

React
Create React App
Cordova

Quantore.com (2022 - 2023)

Quantore

In opdracht van Iquality heb ik voor de Quantore Extranet website een aantal verbeteringen doorgevoerd om Extranet in hun bestaande CMS op te kunnen nemen. Ik heb onder andere gebouwd: een integratie met Auth0 voor de authenticatie, site search met Algolia, en nieuwe CMS secties voor de afgesloten pagina's.

React
Gatsby
Auth0
Algolia
GraphQL
styled-components

CED Group (2022)

CED Group

In opdracht van Iquality heb ik een nieuw platform opgezet op basis van Next.js en DatoCMS voor de ontwikkeling van drie nieuwe websites voor de CED Group. Als lead developer van het project heb ik de architectuur van dit project opgezet, de integraties geïmplementeerd en een groot deel van de pagina's en componenten gemaakt.

React
TypeScript
Storybook
Azure DevOps
Node.js
Next.js
DatoCMS
GraphQL
Emotion.js
Styled components

Amels Yachting (2022)

Amels

De nieuwe Amels Yachting website zit bomvol animaties en videos. Dat is te zien; de portfolio pagina's behoren tot de meest visueel aantrekkelijke pagina's op het web. Bezoekers krijgen hiermee een geweldige ervaring tijdens het ontdekken van de Amels superjachten.

Iquality heeft mij als Senior Front-end Developer ingehuurd voor ondersteuning bij de opzet van een nieuw framework op basis van Next.js en React, en het bouwen van deze uitdagende website. De portfolio pagina's bevatten (na alle optimalisaties) meer dan 35MB aan grafische elementen, waarvan een groot gedeelte above the fold nodig is. Om te zorgen dat gebruikers ongeacht hun internetsnelheid een goede ervaring krijgen, heb ik verschillende laad-mechanismes gebouwd. Bijvoorbeeld bij de image sequence, die bestaat uit ruim 200 afbeeldingen. Eerst wordt elk 40e frame ingeladen, vervolgens elke 20e, dan elke 10e, enzovoorts. Hierdoor heeft de gebruiker steeds meer frames per second beschikbaar en krijgt de gebruiker geleidelijk de voor hem best mogelijk ervaring.

React
TypeScript
Next.js
Storyblok
Azure DevOps
Cypress
Emotion.js
Algolia Search
Cloudinary
GraphQL
Scrum
CSS animaties
static rendering/prerendering

Jetje (2021 - 2022)

Jetje

Jetje is een start-up dat ik ben gestart met een compagnon. We ontwikkelen een app ter ondersteuning van dienstverlening, met onder andere chat en (video)bellen geïntegreerd. Onze eerste oplossingsrichting is coaching, maar we denken veel groter. De app is primair een React webapp met Node.js backend, in TypeScript met GraphQL voor volledige type-safety van begin tot eind. Het is voorzien van een uitgebreide integration test suite, inclusief Cypress voor end-to-end tests. Er is ook een React Native app voor (chat) notificaties. Bekijk de Jetje en Geef 'm van websites voor meer informatie over het platform, of neem contact met mij op.

React
React Native
TypeScript
Next.js
Create React App
GraphQL
Apollo Client
Node.js
Apollo Server
service worker
GitHub Actions
Docker
GraphQL code generation
Jitsi
Yarn workspaces
Cypress (E2E testing)
Prismic
SSR
Static Site Generation
LighthouseCI

New Faith Network (2022)

New Faith Network

Voor de videoplatformen WithLove en New Faith Network heb ik in twee korte maanden de landing- en onboardingpagina's opnieuw opgezet met React, Next.js, Prismic, TypeScript en Cypress. Met de wijzigingen kan het ontwikkelteam sneller, stabieler en toekomstbestendig verder ontwikkelen aan de sites, is de tracking verbeterd met nieuwe events en de performance de best mogelijke.

React
TypeScript
Next.js
Gatsby
GraphQL
Prismic
Cypress
Netlify
GitHub Actions
SSG
Yarn workspaces

WoWAnalyzer (2017 - 2021)

WoWAnalyzer

WoWAnalyzer ben ik in 2017 gestart vanuit de behoefte analyse van het spel World of Warcraft te automatiseren. WoWAnalyzer geeft spelers automatisch op basis van hun speelstijl inzichten en suggesties ter verbetering. Het is primair een React app. Binnen de app heb ik een framework ontwikkeld zodat andere ontwikkelaars eenvoudig de analyse konden uitbreiden. Het is een immens populaire project geworden met in één maand meer dan 550,000 unieke bezoekers (januari 2021) en meer dan 200 ontwikkelaars die iets hebben bijgedragen, allemaal onder mijn leiderschap. Het project is volledig Open Source. WoWAnalyzer is als voorbeeld van feedback geven opgenomen in het boek The Engagement Game, en een lecture en artikel. Sinds eind 2021 is WoWAnalyzer overgenomen door RPGLogs.

Open Source
React
TypeScript
Redux
Node.js
Express
Docker
GitHub Actions
Yarn workspaces

PlatteTV (2020 - 2021)

PlatteTV

PlatteTV is een van de grootste TV-winkels van Nederland. Als Front End Lead Developer heb ik een belangrijke rol vervuld bij de bouw van hun splinternieuwe webshop. Ik heb het project van de grond af aan opgezet en samen met de project lead de projectaanpak (o.a. SCRUM methodiek) vormgegeven en het team geleid. Dit ambitieuze project is gemaakt in onder andere React met TypeScript, GraphQL, Apollo Server, en vele microservices met onder andere Magento 2 en Pimcore als backend.

React
TypeScript
Node.js
GraphQL
Apollo Client
Apollo Server
Apollo Federation
microservices
Docker
GitHub Actions
GitLab CI
Service Worker/PWA
Lerna
Yarn workspaces
Cypress
Magento
Scrum
JIRA
SEO (e-commerce)
static rendering/prerendering

Swiss Sense (2019 - 2021)

Swiss Sense

Swiss Sense is een grote boxsprings en matrassen beddenwinkel. Voor Swiss Sense heb ik onder andere de boxspring configurator gemaakt, een opzet gemaakt om de app incrementeel te migreren naar React, microservices gemaakt en groot onderhoud aan het microservices framework, de CI versneld en Magento 2 in Docker aan de praat gekregen.

React
TypeScript
Node.js
GraphQL
Apollo Client
Apollo Server
Apollo Federation
microservices
Docker
GitHub Actions
GitLab CI
Lerna
Yarn workspaces
Cypress
Scrum
JIRA
SEO (e-commerce)
static rendering/prerendering

PME Legend (2019 - 2020)

PME Legend

De officiële webshops van het bekende heren kledingmerk PME Legend, en bijbehorende merken Vanguard, Cast Iron en Just Brands. Dit waren de eerste grote React projecten bij Emico. Samen met een klein team hebben we deze webshops van de grond af aan gebouwd. Binnen korte tijd heb ik mijn vaardigheden bewezen en werd ik verantwoordelijk voor een groot deel van de architectuur. De opdrachtgever was zeer tevreden met de nieuwe webshop, wat een flinke conversie stijging met zich meebracht en duizenden gelijktijdige bezoekers aankon (o.a. van commercials rond het EK 2020).

React
TypeScript
Node.js
GraphQL
Apollo Client
Apollo Server
Apollo Federation
microservices
Redux
Docker
GitHub Actions
GitLab CI
Service Worker/PWA
Lerna
Yarn workspaces
Cypress
Scrum
JIRA
SEO (e-commerce)
static rendering/prerendering

esd.next (2016 - 2019)

ExternalStaffingDesk

esd.next is een uniek systeem om het totale inhuurproces van personeel te stroomlijnen. Het systeem is compleet en bevat functionaliteiten van vacatures en CV parsing tot en met facturatie en automatische boekingen. Ik heb dit systeem samen met een compagnon van de grond af aan ontworpen en gebouwd in PHP met een React SPA. Een belangrijk uitgangspunt was de gebruiker volledige controle geven over het systeem. Dit hebben we onder andere gedaan door vrijwel alle velden optioneel te maken en middels monitoring regels zorgen dat alles compliant is en blijft. Het systeem wordt vaak vergeleken met grote systemen als Nétive en Salesforce en als een hele verademing ervaren. Bezoek de esd.next marketing pagina voor meer informatie.

React.js
Redux
PHP
Docker
MariaDB
TravisCI

modelovereenkomstmaken.nl (2016)

modelovereenkomstmaken.nl

Met een paar eenvoudige stappen kan je hier geheel gratis binnen 15 minuten een overeenkomst maken op basis van een modelovereenkomst van de Belastingdienst. Deze tool, dat ik binnen 4 weken heb gebouwd, bestaat uit een React applicatie met minimale PHP backend. Gebruikers kunnen eenvoudig en snel het juiste contract selecteren en deze middels een interactief contractformulier invullen en opslaan.

React.js
Redux
PHP
Docker
MariaDB
TravisCI

When at Work (2015)

When at Work

When at Work is een iOS app dat op basis van geofencing automatisch bijhoudt wanneer je op locatie bent om zo je tijdregistratie grotendeels te automatiseren, met mogelijkheden om het handmatig aan te passen, automatisch rekening te houden met zaken als lunchtijd en projecten te scheiden. Ik heb deze app volledig zelfstandig gebouwd als onderdeel van mijn afstuderen bij de HAN.

Swift
iOS
XCode
App Store

RedMSViewer (2010 - 2011)

RedMSViewer

Voor Wageningen Food Safety Research (toen RIKILT), heb ik de RedMSViewer gemaakt. Dit was een Silverlight applicatie dat RedMS (reduced mass spectrometer) bestanden kan weergeven voor wetenschappelijk onderzoek. Deze bestanden worden getoond in chromatogrammen, spectra en heatmaps, en zijn volledig navigeerbaar. Er kunnen tot 100 bestanden gelijktijdig worden ingeladen door vele performance optimalisaties en gebruik van multithreading. Voor meer informatie over de applicatie, zie dit boek.

C#
Silverlight
IIS

Elite Avengers (2004 - 2011)

Elite Avengers

Dit was het eerste grote project dat ik heb opgericht. Het was een tekstgebaseerd computerspel waar duizenden spelers op af zijn gekomen.

Het bestond voornamelijk uit PHP4 met een vleugje JS. Het toevoegen van JS was een grote uitdaging, aangezien dit vóór de release van libraries zoals jQuery was, waardoor zelfs basiszaken zoals AJAX-calls moeilijk waren, om nog maar te zwijgen van de problemen van Internet Explorer. Aangezien dit mijn eerste echte ontwikkelingservaring was en ik niemand had om hulp te vragen, ging dit project boven mijn pet.

Dit project heeft een belangrijke impact op mij gehad en mij al vroeg getraind om alle problemen die ik tegenkom zelfstandig op te lossen, langdurige onderhoudbaarheid in acht te nemen, mijn Engels te verfijnen, zakelijke beslissingen te nemen, om te gaan met spelers/klanten en vrijwilligers, en het opzetten en groeien van de daarbijbehorende community.

PHP
MySQL
Linux
JS
Photoshop