Uiteenlopend werk

Van LOB-platform tot cloud-migratie

Elk project is anders, maar de aanpak is steeds hetzelfde: architectuur eerst, dan bouwen — met AI-agents die meewerken aan code, tests en documentatie.

Projecten

Een greep uit het werk

Een selectie van systemen die ik van architectuur tot livegang heb gebouwd.

1LOB-platformWebplatform · productie+

Schaalbare Line of Business (LOB)-oplossingen, waarbij architectuur, integratie en toekomstbestendigheid centraal staan. Van backend, frontend en integraties van architectuur tot productie.

ColdBox, Docker, Azure

<svg class="ps-visual" viewBox="0 0 1200 800" preserveAspectRatio="xMidYMid meet" role="img" aria-label="Infographic: gebruikers via API naar database"><defs><pattern id="ps-dots-p1" width="24" height="24" patternUnits="userSpaceOnUse"><circle cx="1.2" cy="1.2" r="1.2" fill="var(--ps-grid)"/></pattern></defs><rect width="1200" height="800" fill="url(#ps-dots-p1)"/><g class="ps-ink"><path class="ps-edge" d="M280,400 H520"/><path class="ps-edge" d="M680,400 H900"/><rect class="ps-box" x="140" y="352" width="140" height="96" rx="16"/><rect class="ps-box ps-box--core" x="520" y="340" width="160" height="120" rx="18"/><path class="ps-box" d="M900,368 a52,16 0 0 1 104,0 V440 a52,16 0 0 1 -104,0 z"/><ellipse class="ps-box" cx="952" cy="368" rx="52" ry="16"/><circle class="ps-pkt" r="5" data-ps-pkt="" data-dur="3.2" data-path="M280,400 H900"/><circle class="ps-pkt ps-pkt--rsp" r="5" data-ps-pkt="" data-rev="1" data-dur="4" data-delay="1.4" data-path="M280,400 H900"/></g></svg>
2KlantportaalSelfservice portaal+

Realtime inzicht in status, documenten en planning voor eindklanten — gebouwd als snelle, lichte SPA.

Vue 3, Vite, REST API

<svg class="ps-visual" viewBox="0 0 1200 800" preserveAspectRatio="xMidYMid meet" role="img" aria-label="Infographic: SPA-scherm met content en grafiek"><defs><pattern id="ps-dots-p2" width="24" height="24" patternUnits="userSpaceOnUse"><circle cx="1.2" cy="1.2" r="1.2" fill="var(--ps-grid)"/></pattern></defs><rect width="1200" height="800" fill="url(#ps-dots-p2)"/><g class="ps-ink"><rect class="ps-box" x="360" y="220" width="480" height="340" rx="18"/><path class="ps-edge" d="M360,280 H840"/><circle class="ps-mini" cx="392" cy="250" r="5"/><circle class="ps-mini" cx="414" cy="250" r="5"/><circle class="ps-mini" cx="436" cy="250" r="5"/><rect class="ps-box ps-box--soft" x="400" y="320" width="180" height="18" rx="6"/><rect class="ps-box ps-box--soft" x="400" y="360" width="300" height="12" rx="6"/><rect class="ps-box ps-box--soft" x="400" y="388" width="260" height="12" rx="6"/><path class="ps-edge ps-edge--chart" d="M400,510 L470,470 L540,492 L620,430 L700,452 L790,410"/><circle class="ps-pkt" r="5" data-ps-pkt="" data-dur="3.6" data-path="M400,510 L470,470 L540,492 L620,430 L700,452 L790,410"/></g></svg>
3Legacy-moderniseringMigratie · legacy → cloud+

Een vijftien jaar oud bedrijfssysteem stapsgewijs naar containers op Azure — zonder onderbreking van service.

CFML, Lucee, Azure ACR, Docker

<svg class="ps-visual" viewBox="0 0 1200 800" preserveAspectRatio="xMidYMid meet" role="img" aria-label="Infographic: legacy server via containers naar de cloud"><defs><pattern id="ps-dots-p3" width="24" height="24" patternUnits="userSpaceOnUse"><circle cx="1.2" cy="1.2" r="1.2" fill="var(--ps-grid)"/></pattern></defs><rect width="1200" height="800" fill="url(#ps-dots-p3)"/><g class="ps-ink"><rect class="ps-box ps-box--dashed" x="160" y="330" width="150" height="140" rx="14"/><path class="ps-edge" d="M310,400 H500"/><rect class="ps-box" x="500" y="330" width="70" height="60" rx="10"/><rect class="ps-box" x="580" y="330" width="70" height="60" rx="10"/><rect class="ps-box" x="540" y="404" width="70" height="60" rx="10"/><path class="ps-edge" d="M650,400 H840"/><path class="ps-box ps-box--cloud" d="M890,440 a34,34 0 0 1 -7,-67 a46,46 0 0 1 90,-8 a30,30 0 0 1 23,53 a27,27 0 0 1 -20,22 z"/><circle class="ps-pkt" r="5" data-ps-pkt="" data-dur="3.4" data-path="M310,400 H840"/><circle class="ps-pkt" r="5" data-ps-pkt="" data-dur="3.4" data-delay="1.7" data-path="M310,400 H840"/></g></svg>
4Status & Monitoring APITooling · monitoring+

Eén API die de gezondheid van alle omgevingen bewaakt en realtime doorgeeft aan dashboards en alerts.

REST, Webhooks, Dashboards

<svg class="ps-visual" viewBox="0 0 1200 800" preserveAspectRatio="xMidYMid meet" role="img" aria-label="Infographic: hartslag-monitor van alle omgevingen"><defs><pattern id="ps-dots-p4" width="24" height="24" patternUnits="userSpaceOnUse"><circle cx="1.2" cy="1.2" r="1.2" fill="var(--ps-grid)"/></pattern></defs><rect width="1200" height="800" fill="url(#ps-dots-p4)"/><g class="ps-ink"><rect class="ps-box" x="240" y="260" width="720" height="280" rx="18"/><path class="ps-edge ps-edge--chart" d="M280,400 H420 L460,340 L510,460 L560,400 H680 L720,352 L770,448 L820,400 H920"/><circle class="ps-pkt" r="5" data-ps-pkt="" data-dur="3" data-path="M280,400 H420 L460,340 L510,460 L560,400 H680 L720,352 L770,448 L820,400 H920"/><circle class="ps-led" cx="930" cy="292" r="5"/></g></svg>
5UX-UIDesign · research+

Van wireframe tot klikbaar prototype — interfaces die logisch aanvoelen, getest met echte gebruikers en klaar voor development.

Figma, Design systems, Prototyping, Usability testing

<svg class="ps-visual" viewBox="0 0 1200 800" preserveAspectRatio="xMidYMid meet" role="img" aria-label="Infographic: artboard met wireframe-componenten en cursor-flow"><defs><pattern id="ps-dots-p5" width="24" height="24" patternUnits="userSpaceOnUse"><circle cx="1.2" cy="1.2" r="1.2" fill="var(--ps-grid)"/></pattern></defs><rect width="1200" height="800" fill="url(#ps-dots-p5)"/><g class="ps-ink"><rect class="ps-box" x="320" y="200" width="560" height="400" rx="18"/><rect class="ps-mini" x="312" y="192" width="16" height="16" rx="3"/><rect class="ps-mini" x="872" y="192" width="16" height="16" rx="3"/><rect class="ps-mini" x="312" y="592" width="16" height="16" rx="3"/><rect class="ps-mini" x="872" y="592" width="16" height="16" rx="3"/><rect class="ps-box ps-box--soft" x="360" y="244" width="200" height="22" rx="7"/><rect class="ps-box ps-box--soft" x="360" y="292" width="480" height="12" rx="6"/><rect class="ps-box ps-box--soft" x="360" y="320" width="420" height="12" rx="6"/><rect class="ps-box ps-box--dashed" x="360" y="368" width="220" height="140" rx="12"/><rect class="ps-box ps-box--dashed" x="620" y="368" width="220" height="140" rx="12"/><rect class="ps-box ps-box--core" x="360" y="540" width="150" height="38" rx="10"/><path class="ps-edge ps-edge--chart" d="M470,438 C560,380 640,500 730,438 S840,540 435,559"/><circle class="ps-pkt" r="5" data-ps-pkt="" data-dur="4" data-path="M470,438 C560,380 640,500 730,438 S840,540 435,559"/></g></svg>
6Cloud (Azure / GCP)Infrastructuur · multi-cloud+

Schaalbare cloudomgevingen op Azure en Google Cloud — van landing zone en CI/CD tot kostenbeheersing en security.

Azure, GCP, CI/CD

<svg class="ps-visual" viewBox="0 0 1200 800" preserveAspectRatio="xMidYMid meet" role="img" aria-label="Infographic: centrale hub tussen twee clouds"><defs><pattern id="ps-dots-p6" width="24" height="24" patternUnits="userSpaceOnUse"><circle cx="1.2" cy="1.2" r="1.2" fill="var(--ps-grid)"/></pattern></defs><rect width="1200" height="800" fill="url(#ps-dots-p6)"/><g class="ps-ink"><path class="ps-box ps-box--cloud" d="M220,436 a34,34 0 0 1 -7,-67 a46,46 0 0 1 90,-8 a30,30 0 0 1 23,53 a27,27 0 0 1 -20,22 z"/><path class="ps-box ps-box--cloud" d="M890,436 a34,34 0 0 1 -7,-67 a46,46 0 0 1 90,-8 a30,30 0 0 1 23,53 a27,27 0 0 1 -20,22 z"/><rect class="ps-box ps-box--core" x="520" y="340" width="160" height="120" rx="18"/><rect class="ps-box ps-box--soft" x="544" y="366" width="112" height="14" rx="6"/><rect class="ps-box ps-box--soft" x="544" y="392" width="88" height="14" rx="6"/><rect class="ps-box ps-box--soft" x="544" y="418" width="100" height="14" rx="6"/><path class="ps-edge" d="M330,400 H520"/><path class="ps-edge" d="M680,400 H870"/><circle class="ps-pkt" r="5" data-ps-pkt="" data-dur="3" data-path="M330,400 H520"/><circle class="ps-pkt" r="5" data-ps-pkt="" data-dur="3" data-delay="1" data-path="M680,400 H870"/><circle class="ps-pkt ps-pkt--rsp" r="5" data-ps-pkt="" data-rev="1" data-dur="3.6" data-delay="1.6" data-path="M330,400 H870"/></g></svg>
7Mobile developmentApps · iOS & Android+

Native aanvoelende apps vanuit één codebase — offline-first, pushnotificaties en naadloze koppeling met bestaande API's.

Flutter, Firebase, REST API, GCP, Android, iOS

<svg class="ps-visual" viewBox="0 0 1200 800" preserveAspectRatio="xMidYMid meet" role="img" aria-label="Infographic: telefoonframe met app-schermen en cloud-sync"><defs><pattern id="ps-dots-p7" width="24" height="24" patternUnits="userSpaceOnUse"><circle cx="1.2" cy="1.2" r="1.2" fill="var(--ps-grid)"/></pattern></defs><rect width="1200" height="800" fill="url(#ps-dots-p7)"/><g class="ps-ink"><rect class="ps-box" x="500" y="180" width="200" height="420" rx="30"/><rect class="ps-box ps-box--soft" x="560" y="200" width="80" height="10" rx="5"/><rect class="ps-box ps-box--soft" x="524" y="236" width="152" height="70" rx="10"/><rect class="ps-box ps-box--soft" x="524" y="320" width="70" height="70" rx="10"/><rect class="ps-box ps-box--soft" x="606" y="320" width="70" height="70" rx="10"/><rect class="ps-box ps-box--soft" x="524" y="404" width="152" height="12" rx="6"/><rect class="ps-box ps-box--soft" x="524" y="428" width="120" height="12" rx="6"/><rect class="ps-box ps-box--core" x="524" y="520" width="152" height="36" rx="10"/><rect class="ps-box ps-box--soft" x="565" y="576" width="70" height="6" rx="3"/><path class="ps-box ps-box--cloud" d="M930,400 a34,34 0 0 1 -7,-67 a46,46 0 0 1 90,-8 a30,30 0 0 1 23,53 a27,27 0 0 1 -20,22 z"/><path class="ps-edge" d="M700,390 H905"/><rect class="ps-box ps-box--dashed" x="250" y="330" width="140" height="140" rx="14"/><path class="ps-edge" d="M390,400 H500"/><circle class="ps-pkt" r="5" data-ps-pkt="" data-dur="3" data-path="M700,390 H905"/><circle class="ps-pkt ps-pkt--rsp" r="5" data-ps-pkt="" data-rev="1" data-dur="3.4" data-delay="1.2" data-path="M700,390 H905"/><circle class="ps-pkt" r="5" data-ps-pkt="" data-dur="2.6" data-delay="0.6" data-path="M390,400 H500"/></g></svg>

Contact

Laten we kennismaken

Vertel kort waar je aan werkt of waar je tegenaan loopt. Ik reageer meestal binnen één werkdag — en je krijgt altijd mij aan de lijn, geen bot.

E-MAIL
nordin@nosli.nl
BELLEN
+31(0)237110397
LOCATIE
Nederland · remote-first
REACTIETIJD
Meestal binnen 1 werkdag
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.