Tom Exzitech

Beschikbaar voor nieuwe opdrachten

Freelance full-stack developer

Ik bouw websites en web- of desktopapplicaties, automatiseer wat geen API heeft en zet servers op die kleine ondernemingen zonder IT-afdeling draaiende kunnen houden. Alles wat hier staat wordt dagelijks gebruikt, en de meeste projecten kunt u meteen in uw browser uitproberen.

Bekijk de projecten Een project bespreken

01 Wat ik voor u kan doen

Websites

Een site die bij u past, snel op de smartphone, in meerdere talen als uw klanten dat vragen, met een contactformulier dat ook echt bij u aankomt.

Applicaties op maat

Interne tool, dashboard, desktop- of mobiele app: een eenvoudige interface bovenop geteste logica.

Automatisering en data

Gegevens halen uit software zonder API, van een scherm of uit gescande documenten, en ze betrouwbaar en bruikbaar maken. Simulatie wanneer het resultaat van toeval afhangt.

Zelf hosten

Gedeelde bestanden, wachtwoorden en geklasseerde documenten op uw eigen server, met gecontroleerde back-ups en meldingen die ook aankomen als de machine uitvalt.

02 Projecten

Elk project heeft een eigen publieke repository: de code, de tests en een README die de keuzes uitlegt.

Desktopapplicatie

Tauri · Rust · React · Python

ExziHub, een app waarin elke tool een plug-in is

De basis voor de andere projecten. Tools worden geïnstalleerd, bijgewerkt en verwijderd vanuit een online catalogus, zonder de app opnieuw te downloaden. Een plug-in kan een eigen Python-engine meebrengen, die de hub start en bewaakt. Dezelfde code draait op Windows en Android.

  • Ongeveer 13 MB, tegenover meer dan 100 met Electron.
  • Pakketten gecontroleerd met een SHA-256-hash vóór installatie.
  • Synchronisatie tussen toestellen zonder een wijziging van elders te overschrijven.

Code en architectuur

Android-app

Tauri · Rust · React · Android

ExziFit, krachttraining met een RPG-personage

In ontwikkeling, al gebruikt door vrienden. Een set wordt in twee tikken genoteerd, met één hand, in vliegtuigmodus, en de app zegt welk gewicht er op de stang moet: een percentage van de 1RM, set na set bijgesteld op basis van de inspanning (RIR).

  • Statistieken van het personage berekend uit de echte trainingsgeschiedenis: ze dalen als de training stopt, het spel is nooit een munteenheid.
  • Lokale gegevens in leesbare JSON, back-ups teruggelezen en gecontroleerd.
  • Volledige gebruikersscenario's opnieuw afgespeeld vóór elke release, een QA-agent aangestuurd door een lokale AI.

Code en ontwerpkeuzes

Data-extractie

Python · Tesseract · WebSocket

Een scherm live uitlezen, zonder iets dubbel te tellen

Een engine leest continu een deel van het scherm en zet het om in gestructureerde gebeurtenissen, elk precies één keer geteld, ook als de weergave scrolt, zich herhaalt of verkeerd gelezen wordt. Voorbeeld: de echte kostprijs van de gerechten van een restaurant, uitgelezen uit de bestelsoftware van de groothandel, die geen API heeft.

  • Ontdubbeling op positie, bestand tegen leesfouten.
  • Wat twijfelachtig is, wordt apart gezet en nooit zomaar geteld.
  • Echte sessies offline opnieuw afgespeeld, 120 tests.

Case study en code

Infrastructuur

Proxmox · Docker · Nextcloud · restic

Een betrouwbare server voor een kleine onderneming

Een volledig sjabloon, overgenomen van een installatie die in gebruik is: bestanden, wachtwoorden en gescande documenten op een mini-pc. De aandacht gaat naar wat blijft: back-ups op drie niveaus, geteste herstelprocedure, monitoring en uitgeschreven incidentverslagen.

Sjabloon en documentatie

Beslissingsondersteuning

TypeScript · Web Worker · Monte-Carlo

Kruisingsplanner, plannen met simulatie

Als elke beslissing een willekeurige uitkomst heeft, simuleert de tool honderden rondes per optie, allemaal met dezelfde trekkingen: het gemeten verschil komt van de keuze, niet van het toeval. Het model is gekalibreerd op echte gegevens en rekent buiten de hoofdthread, in minder dan een seconde.

Probeer de demo Code, 63 tests

TypeScript · React · Vitest

Gezinsbudget

Wat er echt nog te besteden valt: terugkerende verrichtingen berekend, jaarlijkse facturen gespreid over de maanden ervoor, periodes van loon tot loon.

Demo Code, 15 tests

TypeScript · SVG · Python

Groeicurve

De groeinormen van de WHO, per script omgezet uit de officiële tabellen, en een SVG-grafiek zonder bibliotheek, scherp op het scherm en op papier.

Demo Code

TypeScript · Canvas · API ARASAAC

Visuele routines

Routines in pictogrammen voor kinderen, afgedrukt als A4-strook of stap voor stap gevolgd op een tablet. De pdf wordt byte per byte geschreven, zonder bibliotheek.

Demo Code

TypeScript · pdf.js · pdf-lib

Pdf-editor

Een pdf invullen en ondertekenen zonder hem ergens naartoe te sturen: het document verlaat nooit de computer, en de export blijft een echte pdf, tekst inbegrepen.

Demo Code

03 Websites

Een eigen identiteit voor elke klant, meerdere talen waar nodig, en lichte pagina's.

Klant · React · i18next

NM traductions

De site van een beëdigd vertaalster, in vier talen waaronder het Perzisch, dat van rechts naar links geschreven wordt: de hele opmaak draait mee met de taal.

Bekijk de site Code

Demo · React · Framer Motion

Atelier Vaudray

Voor een fictieve interieurarchitecte: een uitgesproken identiteit, animaties ten dienste van de inhoud, ongeveer 115 kB JavaScript.

Bekijk de site Code

Demo · React · Recharts

ServerWatch

Een monitoringdashboard: diensten, beschikbaarheid, latentie, belasting en incidenten, op gesimuleerde gegevens.

Bekijk de demo Code

04 Hoe ik werk

Begrijpen voor ik schrijf. Eerst de echte behoefte, dan de eenvoudigste oplossing die eraan voldoet, zonder overbodige afhankelijkheden.

Testen wat telt. De bedrijfslogica staat los van de interface en is gedekt door tests; elke opgeloste bug laat een test achter.

Meten voor ik optimaliseer. Een vertrekmeting, één wijziging tegelijk, een nieuwe meting.

Iets onderhoudbaars achterlaten. Leesbare code en documentatie die de werkelijke toestand beschrijft, zodat u het zonder mij kunt overnemen.

Tom, freelance developer

Een project, een vraag?

Beschrijf uw behoefte in een paar regels. Ik antwoord binnen 48 uur met een eerste inschatting, of met de vragen die daarvoor nog nodig zijn.

tom.exzitech@gmail.com Malt LinkedIn GitHub