---
title: "Stijn Van Hulle | Front-end engineer"
description: "Front-end engineer from Belgium. Creator of Kubb, an open-source TypeScript tool for generating code from OpenAPI specs."
canonical_url: "https://stijnvanhulle.be/"
meta:
  author: "Stijn Van Hulle"
  "og:description": "Front-end engineer from Belgium. Creator of Kubb, an open-source TypeScript tool for generating code from OpenAPI specs."
  "og:image": "https://stijnvanhulle.be/_og/s/o_0ded7677ab897a42.png"
  "og:image:height": "630"
  "og:image:type": image/png
  "og:image:width": "1200"
  "og:title": "Stijn Van Hulle | Front-end engineer"
  "twitter:description": "Front-end engineer from Belgium. Creator of Kubb, an open-source TypeScript tool for generating code from OpenAPI specs."
  "twitter:image": "https://stijnvanhulle.be/_og/s/o_0ded7677ab897a42.png"
  "twitter:title": "Stijn Van Hulle | Front-end engineer"
---

> Index of every page on this site: [llms.txt](https://stijnvanhulle.be/llms.txt)

![Portrait of Stijn Van Hulle](https://stijnvanhulle.be/_ipx/f_png&q_80&s_192x192/avatar.png)

# **Stijn Van Hulle **

Front-end engineer

Senior Front-end engineer @ [Whale](https://usewhale.io)

Creator of [Kubb](https://www.kubb.dev)

[Belgium](https://www.google.com/maps/search/?api=1&query=Belgium)

[stijn@stijnvanhulle.be](mailto:stijn@stijnvanhulle.be)

[stijnvanhulle.be](https://stijnvanhulle.be)

[Github](https://github.com/stijnvanhulle) [Kubb Labs](https://github.com/kubb-labs) [LinkedIn](https://www.linkedin.com/in/stijnvanhulle) [Curriculum Vitae](https://stijnvanhulle.be/cv.pdf) [Instagram](https://www.instagram.com/stijnvanhulle)

**\#**

## **Hello**

Hi, I'm Stijn, a front-end engineer based in Belgium. I spend most of my time building product front ends with TypeScript, React, Next.js, Vue, and Nuxt.

I'm also the creator of Kubb, an open-source code generator for OpenAPI. I started it to avoid writing the same typed API clients by hand. It now takes up most of my open-source time. I also write about front-end work and the tools I'm using.

When I'm not coding, I travel with a camera in my bag. I enjoy seeing new places, learning about other cultures, and meeting people along the way.

![Kubb logo](https://stijnvanhulle.be/_ipx/f_png&q_80&s_48x48/kubb.png)

#### **Kubb**

** Open source **

Kubb is where most of my spare coding time goes. Point it at a Swagger or OpenAPI spec and it writes the TypeScript types, clients, and hooks, so your front end and back end stay in step.

[**kubb.dev **](https://www.kubb.dev)

**\#**

## **Contributions**

[@stijnvanhulle →](https://github.com/stijnvanhulle)

9,733 contributions in the last year

OctNovDecJanFebMarAprMayJunJulAugSepOct

Less

More

**\#**

## **Projects**

[View all →](https://stijnvanhulle.be/projects)

[<h3>**Kubb**</h3>Define your API once and Kubb generates TypeScript types, clients, hooks, validators, and mocks from an OpenAPI specification.**#typescript**** #openapi**** #codegen**** #react-query**** #vue-query**** #zod**** #plugins**** #mcp**** #swr**** #axios**](https://stijnvanhulle.be/projects/kubb) [<h3>**Agents**</h3>Shared skills, rules, commands, subagents, and output styles for Claude Code, Cursor, and Codex, installable as a plugin.**#agents**** #claude**** #cursor**** #codex**** #skills**** #typescript**](https://stijnvanhulle.be/projects/agents) [<h3>**Template**</h3>A TypeScript monorepo starter with pnpm workspaces, Turborepo, oxlint, oxfmt, tsdown, Vitest, Changesets, CI, and shared configuration for AI coding agents.**#typescript**** #monorepo**** #tooling**** #turbo**** #pnpm**** #vitest**** #changeset**** #github-actions**** #oxlint**** #claude**](https://stijnvanhulle.be/projects/template)

**\#**

## **What I work with**

A short list of the languages, frameworks, and tools I use most.

[TypeScript](https://www.typescriptlang.org) [ JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript) [ HTML](https://developer.mozilla.org/en-US/docs/Web/HTML) [ CSS](https://developer.mozilla.org/en-US/docs/Web/CSS) [ Sass](https://sass-lang.com) [ SQL](https://en.wikipedia.org/wiki/SQL) [ React](https://react.dev) [ Vue](https://vuejs.org) [ Nuxt](https://nuxt.com) [ Next.js](https://nextjs.org) [ Node.js](https://nodejs.org) [ Redux](https://redux.js.org) [ Zustand](https://github.com/pmndrs/zustand) [ Zod](https://zod.dev) [ GraphQL](https://graphql.org) [ Tailwind CSS](https://tailwindcss.com) [ Styled Components](https://styled-components.com) [ jQuery](https://jquery.com) [ Meteor](https://www.meteor.com) [ Git](https://git-scm.com) [ Docker](https://www.docker.com) [ AWS](https://aws.amazon.com) [ GitLab](https://gitlab.com) [ Bitbucket](https://bitbucket.org) [ Jenkins](https://www.jenkins.io) [ OpenAPI](https://www.openapis.org) [ Swagger](https://swagger.io) [ Claude](https://www.anthropic.com/claude) [ Cursor](https://cursor.com)

**\#**

## **Experience**

#### **Creator ****Belgium (Watervliet)**

![Kubb logo](https://stijnvanhulle.be/_ipx/q_80&s_40x40/kubb.png)

Kubb

Dec 2022 – present

Kubb is an open-source framework for code generation and the project I spend most of my open-source time on. Point it at a Swagger or OpenAPI spec and it generates TypeScript types, clients, and hooks, so the front end and back end stay in sync. As its creator and maintainer, I guide the architecture, build and review plugins, write the documentation, and support its contributors and users.

[**www.kubb.dev **](https://www.kubb.dev)

**#typescript**** #openapi**** #swagger**** #code-generation**** #react**** #vue**** #zod**** #open-source**

#### **Senior Front-end Engineer ****Belgium (Gent)**

![Whale logo](https://stijnvanhulle.be/_ipx/q_80&s_40x40/brands/whale.png)

Whale

Aug 2026 – present

At Whale, I work on the front end of an AI platform for documenting processes and training teams. Whale is a Ghent-based SaaS company for small and medium-sized teams, where important process knowledge often lives with one person until they leave.

[**usewhale.io **](https://usewhale.io)

#### **Senior Front-end Engineer ****Belgium (Gent)**

![Robovision logo](https://stijnvanhulle.be/_ipx/q_80&s_40x40/brands/robovision.png)

Robovision

Nov 2025 – Aug 2026

As a front-end developer on Robovision's product team, I worked on the technical direction and feature delivery of its product suite with Vue.js. I used my previous experience to update the front-end architecture with tools such as Nx and TypeScript.

I also helped the team evaluate and integrate AI tools into its work.

[**www.robovision.ai **](https://www.robovision.ai)

**#typescript**** #vue**** #zod**** #sass**** #git**** #ai**** #gitlab**** #claude**** #cursor**** #llm**** #scrum**** #agile**

#### **Front-end Lead ****Belgium (Brussels)**

![Mediagenix logo](https://stijnvanhulle.be/_ipx/q_80&s_40x40/brands/mediagenix.jpg)

Mediagenix

Dec 2021 – Nov 2025

After a year as a front-end developer on the product/hive team, I became front-end lead. I helped the team deliver projects on time and to a high standard, mentored team members through technical decisions, and reviewed their code.

I worked with stakeholders to discuss product direction and progress, decide what mattered most, and turn those decisions into work for the team.

Alongside managing the team, I kept our front-end practices current through industry events, training, and regular research. I documented our decisions and the reasoning behind our front-end architecture so the team could use them as a reference.

I also updated the stack with React, Jest, TypeScript, Ant Design, a monorepo structure, generated API clients, Zustand, and Zod. The changes gave the team a more consistent foundation as the products grew.

[**www.mediagenix.tv **](https://www.mediagenix.tv)

**#typescript**** #react**** #zod**** #zustand**** #sass**** #aws**** #git**** #docker**** #jenkins**** #scrum**** #agile**

#### **Front-end Developer ****Belgium (Brussels)**

![Mediagenix logo](https://stijnvanhulle.be/_ipx/q_80&s_40x40/brands/mediagenix.jpg)

Mediagenix

Dec 2019 – Dec 2021

As part of the product/hive team, I helped move a desktop application with more than 15 years of history to the web. I worked with product owners and developers to shape solutions around customer needs, then delivered them in an agile process with code reviews and tests.

I also worked with the lead developer to mentor other front-end developers on a stack built with React, Redux, TypeScript, and an internal component library. This work supported the team's move toward a multi-tenant product built on a microservice architecture.

[**www.mediagenix.tv **](https://www.mediagenix.tv)

**#javascript**** #react**** #redux**** #sass**** #aws**** #git**** #docker**** #jenkins**** #scrum**** #agile**

#### **Front-end Developer ****Belgium (Kortrijk)**

![Aptus logo](https://stijnvanhulle.be/_ipx/q_80&s_40x40/brands/aptus.jpg)

Aptus

Sep 2018 – Dec 2019

At Aptus, I worked with the Energy Lab team on tools that helped customers encourage their employees to exercise and move more. With more than 20 customers, I moved between projects while maintaining a shared React component library. The products used React and GraphQL.

[**www.aptus.be **](https://www.aptus.be)

**#javascript**** #react**** #redux**** #styled-components**** #graphql**** #sql**** #nosql**** #docker**** #nodejs**** #git**** #bitbucket**** #scrum**** #agile**

#### **Front-end Developer ****Belgium (Brussels)**

![BNP Paribas Fortis logo](https://stijnvanhulle.be/_ipx/q_80&s_40x40/brands/bnp.jpg)

BNP Paribas Fortis

Aug 2017 – May 2018

As part of the Messagent Development team, I built screens for BNP Paribas Fortis and Hello bank! products. The existing products used jQuery and vanilla JavaScript, so when a new project started, I proposed building it with React, Redux, and TypeScript. Security requirements ruled out some familiar libraries, which meant finding practical alternatives. After a few sprints, Company Makers launched and gave BNP customers a way to create a company online.

[**www.bnpparibasfortis.be **](https://www.bnpparibasfortis.be)

**#javascript**** #react**** #jquery**** #intern-system**** #git**** #scrum**** #agile**

#### **Front-end Developer ****Belgium (Kortrijk)**

![Smappee logo](https://stijnvanhulle.be/_ipx/q_80&s_40x40/brands/smappee.jpg)

Smappee

Feb 2016 – May 2016

As an intern at Smappee, I worked on several IT projects. My main responsibility was building a Meteor.js helpdesk tool to track the status of Smappee devices.

I also helped the mobile team finish the Cordova app for the Smappee Gas & Water device, which was scheduled to launch at the end of my internship. The work taught me how to apply Agile in practice and collaborate with other developers.

[**www.smappee.com **](https://www.smappee.com)

**#javascript**** #handlebars**** #sql**** #meteor**** #git**** #scrum**** #agile**

#### **Full Stack Developer ****Belgium (Gent)**

![Blue Frontend logo](https://stijnvanhulle.be/_ipx/q_80&s_40x40/brands/blue-frontend.jpg)

Blue Frontend

May 2017 – Dec 2021

[**www.blue-frontend.com **](https://www.blue-frontend.com)

**#javascript**** #react**** #vue**** #nosql**** #aws**** #nodejs**** #git**** #components**

#### **Student ****Belgium (Kortrijk)**

![NMCT (Howest) logo](https://stijnvanhulle.be/_ipx/q_80&s_40x40/brands/nmct.png)

NMCT (Howest)

Sep 2013 – Dec 2017

[**www.howest.be/en/programmes/bachelor/multimedia-and-communciation-technology **](https://www.howest.be/en/programmes/bachelor/multimedia-and-communciation-technology)

**\#**

## **Blog**

[View all →](https://stijnvanhulle.be/blog)

[![Cover image for Node version numbers now match the calendar year](https://stijnvanhulle.be/images/blog/node-release-schedule-change.svg)<h3>**Node version numbers now match the calendar year**</h3>Published on 24.06.2026](https://stijnvanhulle.be/blog/node-release-schedule-change) [![Cover image for Preventing npm supply chain attacks](https://stijnvanhulle.be/images/blog/preventing-npm-supply-chain-attacks.svg)<h3>**Preventing npm supply chain attacks**</h3>Published on 08.06.2026](https://stijnvanhulle.be/blog/preventing-npm-supply-chain-attacks) [![Cover image for Rules, skills, commands, subagents, MCP](https://stijnvanhulle.be/images/blog/rules-skills-commands-subagents.svg)<h3>**Rules, skills, commands, subagents, MCP**</h3>Published on 05.06.2026](https://stijnvanhulle.be/blog/rules-skills-commands-subagents) [![Cover image for Mapping data with Zod](https://stijnvanhulle.be/images/blog/mapping-of-data-with-zod.svg)<h3>**Mapping data with Zod**</h3>Published on 01.09.2024](https://stijnvanhulle.be/blog/mapping-of-data-with-zod)

**\#**

## **Sponsors**

[View all →](https://stijnvanhulle.be/sponsors)

Thanks to everyone who supports my open-source work. [Become a sponsor](https://github.com/sponsors/stijnvanhulle).

- [![CodeRabbit logo](https://stijnvanhulle.be/_ipx/q_80&s_80x80/https://avatars.githubusercontent.com/u/132028505%3Fv=4)**CodeRabbit** $100/mo](https://github.com/coderabbitai)
- [![Zendr logo](https://stijnvanhulle.be/_ipx/q_80&s_80x80/https://avatars.githubusercontent.com/u/88317384%3Fv=4)**Zendr** $10/mo](https://github.com/MKM-Group-AB)
- [![Matt Sutkowski avatar](https://stijnvanhulle.be/_ipx/q_80&s_80x80/https://avatars.githubusercontent.com/u/784953%3Fu=6852558d80a14df3a55d6e722fd373e55f9349a1%26v=4)**Matt Sutkowski** $10/mo](https://github.com/msutkowski)
- [![Just Super Human logo](https://stijnvanhulle.be/_ipx/q_80&s_80x80/https://avatars.githubusercontent.com/u/171754328%3Fv=4)**Just Super Human** $10/mo](https://github.com/JustGains)
- [![Volodymyr Kushnir avatar](https://stijnvanhulle.be/_ipx/q_80&s_80x80/https://avatars.githubusercontent.com/u/10290626%3Fu=c5bb6bc6f6c4bf82e4505001111e579678155806%26v=4)**Volodymyr Kushnir** $10/mo](https://github.com/volodymyr-kushnir)
- [![Éric Le Maître avatar](https://stijnvanhulle.be/_ipx/q_80&s_80x80/https://avatars.githubusercontent.com/u/19361503%3Fu=6f4c3621b32902246377fbd6cb93dbb367ac503f%26v=4)**Éric Le Maître** $5/mo](https://github.com/Ericlm)
- [![Denis Davydenko avatar](https://stijnvanhulle.be/_ipx/q_80&s_80x80/https://avatars.githubusercontent.com/u/72747890%3Fu=13cabb34eabd2199767f98bd821d368adc3d948c%26v=4)**Denis Davydenko** $5/mo](https://github.com/denisdavydenko)
- [![Vanhoecke Vinnie avatar](https://stijnvanhulle.be/_ipx/q_80&s_80x80/https://avatars.githubusercontent.com/u/8697647%3Fv=4)**Vanhoecke Vinnie** $5/mo](https://github.com/VinnieV)
- [![Colton Eakins avatar](https://stijnvanhulle.be/_ipx/q_80&s_80x80/https://avatars.githubusercontent.com/u/16803020%3Fu=b69c87fa06f116306a693fbf41c4c3887e439668%26v=4)**Colton Eakins** $5/mo](https://github.com/coltoneakins)
- [![Cipher avatar](https://stijnvanhulle.be/_ipx/q_80&s_80x80/https://avatars.githubusercontent.com/u/50848437%3Fu=06b8503633d903bd775c037e145cf3607fcc5244%26v=4)**Cipher** $1/mo](https://github.com/thefoxbun)

**\#**

## **Connect**

Feel free to contact me at [stijn@stijnvanhulle.be](mailto:stijn@stijnvanhulle.be)

[Github](https://github.com/stijnvanhulle) [Kubb Labs](https://github.com/kubb-labs) [LinkedIn](https://www.linkedin.com/in/stijnvanhulle) [Curriculum Vitae](https://stijnvanhulle.be/cv.pdf) [Instagram](https://www.instagram.com/stijnvanhulle)

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://stijnvanhulle.be/#website","@type":"WebSite","description":"Front-end engineer from Belgium and creator of Kubb, an open-source TypeScript tool for OpenAPI code generation.","inLanguage":"en","name":"Stijn Van Hulle","url":"https://stijnvanhulle.be/","publisher":{"@id":"https://stijnvanhulle.be/#identity"}},{"@id":"https://stijnvanhulle.be/#webpage","description":"Front-end engineer from Belgium. Creator of Kubb, an open-source TypeScript tool for generating code from OpenAPI specs.","name":"Stijn Van Hulle","url":"https://stijnvanhulle.be/","@type":["WebPage","ProfilePage"],"about":{"@id":"https://stijnvanhulle.be/#identity"},"isPartOf":{"@id":"https://stijnvanhulle.be/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://stijnvanhulle.be/"]}]},{"@id":"https://stijnvanhulle.be/#identity","@type":"Person","description":"Stijn Van Hulle is a front-end engineer from Belgium and the creator of Kubb, an open-source TypeScript tool for generating code from OpenAPI specs. He builds product front ends with React, Vue, and Nuxt.","jobTitle":"Senior Front-end Engineer","name":"Stijn Van Hulle","url":"https://stijnvanhulle.be","address":{"@type":"PostalAddress","addressCountry":"BE"},"image":{"@id":"https://stijnvanhulle.be/#/schema/image/1"},"knowsAbout":["TypeScript","JavaScript","React","Next.js","Vue","Nuxt","Node.js","Redux","Zustand","GraphQL","Zod","Sass","OpenAPI","Swagger","Code generation","REST APIs","Front-end architecture","Web development","Docker","AWS","Git","CI/CD","Open source","AI tooling","Large language models","Agile","Scrum","TypeScript","JavaScript","React","Next.js","Vue","Nuxt","Node.js","Redux","Zustand","GraphQL","Zod","Sass","OpenAPI","Swagger","Code generation","REST APIs","Front-end architecture","Web development","Docker","AWS","Git","CI/CD","Open source","AI tooling","Large language models","Agile","Scrum"],"sameAs":["https://github.com/stijnvanhulle","https://www.linkedin.com/in/stijnvanhulle","https://instagram.com/stijnvanhulle","https://www.kubb.dev","https://github.com/stijnvanhulle","https://www.linkedin.com/in/stijnvanhulle","https://x.com/stijnvanhulle","https://www.kubb.dev"],"worksFor":[{"@type":"Organization","name":"Whale","url":"https://usewhale.io","logo":"https://stijnvanhulle.be/brands/whale.png","description":"SaaS company in Ghent building an AI platform for documenting processes, sharing knowledge, and training teams.","address":{"@type":"PostalAddress","addressLocality":"Ghent","addressCountry":"BE"},"sameAs":["https://usewhale.io","https://www.linkedin.com/company/usewhale/"]},{"@type":"Organization","name":"Kubb","url":"https://www.kubb.dev","logo":"https://kubb.dev/logo.png","email":"kubb@kubb.dev","description":"Generate types, clients, hooks, validators, and mocks from one OpenAPI specification.","sameAs":["https://github.com/kubb-labs/kubb","https://discord.gg/shfBFeczrm","https://www.linkedin.com/company/kubb-labs"]}]},{"@id":"https://stijnvanhulle.be/#/schema/image/1","@type":"ImageObject","contentUrl":"https://stijnvanhulle.be/avatar.png","inLanguage":"en","url":"https://stijnvanhulle.be/avatar.png"}]}
```

## Sitemap

See the full [sitemap](https://stijnvanhulle.be/sitemap.md) for all pages.
