Bitvire · freelance software engineer

Ik bouw software die in productie draait.

Complete webapplicaties, mobiele apps en koppelingen, van databaseschema tot deploy. Zelfstandig, of als engineer in jouw team.

  • TypeScript
  • Next.js
  • React Native
  • PostgreSQL
  • Fastify
  • Docker

Waarvoor je mij inzet

Als engineer in je team, voor een complete applicatie, of voor de koppelingen en hardware eromheen.

Werk

Wat het doet, waarmee het gebouwd is, en wat ik heb gemeten. Waar een klant anoniem blijft, staat er een schets in plaats van schermen.

  1. Fyldd, werkbonnen­platform

    In ontwikkeling, nog niet live

    TypeScript / Expo / Next.js / Fastify / PostgreSQL / drizzle-orm / Docker

    Stappenplan CV onderhoud, 3 van 7 stappen afgerond, volgende stappen vergrendeld
    Handtekening van de klant vastleggen op de werkbon
    Gegenereerde werkbon-PDF met uren, materialen en handtekening
    Workflow, handtekening en de werkbon-PDF die eruit komt. Demo-data.

    Een werkbonnenplatform dat ik voor een klant bouw, van planning tot factuur: een app voor de monteur, een backoffice voor kantoor en een portaal voor de boekhouder.

    tabellen onder Row-Level Security
    49
    schermen in de mobiele app
    57
    testbestanden
    123
    Hoe gemeten
    grep -c "werkapp_apply_tenant_rls('" werkapp-server/src/db/rls.sql
    find werkapp-app/src/app -name '*.tsx' ! -name '_layout.tsx' | wc -l
    git ls-files | grep -cE '\.(test|spec)\.(ts|tsx)$'

    Gemeten op 27-10-2026 in de eigen repository.

    Lees de case
  2. Riha, webshop op alsouq.nl

    Live

    TypeScript / Medusa 2 / PostgreSQL / Next.js / next-intl / Mollie / Docker

    alsouq.nl · productpagina
    Productpagina van een abaya met kleurkeuze
    De live winkel, vastgelegd op 27-10-2026.

    Een modest-fashion-webshop voor Nederland en de EU in acht talen, ook in het Arabisch van rechts naar links, met btw-regels en kortingsbeloftes in code.

    talen, waaronder Arabisch
    8
    uitgesloten gebieden bij het afrekenen
    10
    Hoe gemeten
    storefront/src/i18n/config.ts
    EXCLUDED_TERRITORIES in backend/src/lib/excluded-territories.ts

    Gemeten op 27-10-2026 in de eigen repository.

    Lees de case
  3. Theorie-oefenapp

    In ontwikkeling, nog niet in de stores

    TypeScript / React Native / Expo / Fastify / PostgreSQL

    Home: level, reeks, dagdoel en de knop Speel
    Uitslag van een ronde: punten, raak, combo en XP
    Home en de uitslag van een ronde. Demo-data.

    Oefenen voor het theorie-examen auto als een spel, met een slaagkans die bewust eerlijk blijft. Werkt offline.

    vragen, samengevoegd en gecontroleerd
    2.616
    schermen in de app
    12
    testcases in app en server
    566
    Hoe gemeten
    python3: len(json.load(open('src/data/questions.json')))
    find src/app -name '*.tsx' ! -name '_layout.tsx' ! -name '+*' | wc -l
    grep -rn "it(\|test(" server/test src --include=*.ts --include=*.tsx | wc -l

    Gemeten op 27-10-2026 in de eigen repository.

    Lees de case

Klantsites

Uitgebreide informatieve sites voor klanten: snel, vindbaar en beheerd op eigen infrastructuur.

  1. superreiniging.nl

    Informatieve site voor een reinigingsbedrijf: 63 pagina's, een online afspraakwizard en een agenda voor de beheerder.

    Next.js / PostgreSQL / drizzle-orm / Tailwind / Docker

  2. oabeveiliging.nl

    Informatieve site voor een beveiligingsbedrijf: twaalf diensten en een pagina per stad.

    Next.js static export / Tailwind / Base UI

  3. loodgietervoorjou.nl

    Merk- en leadsite voor een loodgieter in Rotterdam en omgeving, met een klusformulier dat leads opslaat.

    Next.js / PostgreSQL / drizzle-orm / Tailwind / Docker

De live homepages, vastgelegd op 28-10-2026.

Bedrijfsportaal voor een autobedrijf

Sinds augustus 2024 bouw ik het portaal waarop een autobedrijf zijn hele dag draait: offertes, werkbonnen, planning, inbox, boekhouding en bank. Het schema telt 158 datamodellen.

Lees de case

Zo werk ik

  1. 01

    Eén aanspreekpunt, van schema tot deploy.

    Ik ontwerp de database, bouw de API en de schermen, en zet het zelf in productie.

  2. 02

    Ik test mijn eigen werk.

    Het bedrijfsportaal heeft 1.377 testbestanden; de Bluetooth-app heeft meer testcode dan productiecode.

  3. 03

    Uitrollen zonder dat iemand het merkt.

    Een nieuwe versie start naast de oude en neemt het pas over als de health-check precies die versie meldt.

  4. 04

    AI-ondersteund ontwikkelen.

    Ik zet AI in als gereedschap, naast mijn eigen vakmanschap: sneller bouwen en breder testen. Ontwerp, code-review en de verantwoordelijkheid blijven bij mij.

Over mij

Opleiding
Hbo Software Engineering, De Haagse Hogeschool (2025)
Mbo 4 Applicatieontwikkeling
Bedrijf
Freelance via Bitvire, sinds 2025
Talen
Nederlands, Engels
Meer over mij

Voor klanten die anoniem blijven

Alle cases
  • InboxOfferteWerkbonFactuurBankmatchingBoekhoudingmail en WhatsApp, met AI-conceptenautomatisch gematcht, zonder dubbele boekingenMonteurs klokken in met een ondertekende NFC-tag.21 achtergrondtaken met een lock: nooit dubbel,ook niet tijdens een uitrol.
    Schets in plaats van schermen: de klant blijft anoniem.

    Hoofdontwikkelaar Sinds augustus 2024

    Offertes, werkbonnen, facturen, planning, een gedeelde inbox en de boekhouding in één systeem. Gebruikt aan de balie, in de werkplaats en door de eigenaar.

    TypeScript / Next.js / tRPC / Prisma / MySQL / Docker / GitHub Actions

    datamodellen in het schema
    158
    testbestanden
    1.377
    Hoe gemeten
    grep -c '^model ' prisma/schema.prisma
    git ls-files | grep -E '\.(test|spec)\.(ts|tsx)$' | wc -l

    Gemeten op 27-10-2026.

  • Elke tik geeft antwoord.

    • sent
    • superseded
    • failed
    • busy
    • current
    • not-connected
    Een knop wordt verstuurd, ingehaald door een nieuwere keuze, of afgewezen met een reden. Nooit stil.

    Ontwikkelaar van de app November 2025 tot nu

    Een iOS- en Android-app die lichtcontrollers via Bluetooth Low Energy bedient, voor eindgebruikers die niet technisch zijn.

    TypeScript / React Native / Expo / Bluetooth Low Energy / zustand

    testcases
    1.755
    regels testcode, tegen 27.114 regels app
    33.977
    talen, waaronder Arabisch
    9
    Hoe gemeten
    git ls-files 'src/__tests__/*.test.ts*' | xargs grep -cE '^\s*(it|test)\(' (opgeteld)
    git ls-files 'src/__tests__/*' | xargs wc -l
    git ls-files 'src/*.ts' 'src/*.tsx' 'app/*.ts' 'app/*.tsx' plugins | grep -v __tests__ | xargs wc -l
    ls src/i18n/locales | wc -l

    Gemeten op 27-10-2026 in de repository van de app.

  • WebshopOrdersyncPicklijstFotocontroleLabelPushmeldingmet de onderdelen-API, één werkstroomlabels voor afhalen en voor montage
    Schets in plaats van schermen: de klant blijft anoniem.

    Opgezet, het eerste jaar alleen gebouwd Sinds februari 2025

    Orders uit webshop, marktplaats en balie in één werkstroom, van picken tot verzenden. Ik heb het opgezet en het eerste jaar alleen gebouwd; daarna is het samen met een collega doorontwikkeld.

    TypeScript / Next.js / drizzle-orm / Bun / MySQL / Docker / GitHub Actions

    eerste commit: de repository zette ik op
    01-02-2025
    tabellen in het huidige schema
    31
    Hoe gemeten
    git log --reverse --format=%ad --date=short | head -1
    grep -c 'mysqlTable(' app/server/db/schema.ts

    Gemeten op 27-10-2026 in de repository van het project.

Een opdracht, een team dat versterking zoekt, of een vraag over mijn werk?

info@bitvire.com