Tom Exzitech

Available for new projects

Freelance full-stack developer

I build websites and web or desktop applications, automate what has no API, and set up servers that small businesses can keep running without an IT department. Everything shown here is used every day, and most projects can be tried right in your browser.

See the projects Discuss a project

01 What I can do for you

Business websites

A site that looks like you, fast on phones, in several languages if your customers need it, with a contact form that actually reaches you.

Custom applications

Internal tool, dashboard, desktop or mobile app: a simple interface on top of tested logic.

Automation and data

Pull data out of software with no API, off a screen or from scanned documents, then make it reliable and useful. Simulation when outcomes depend on chance.

Self-hosting

Shared files, passwords and filed documents on your own server, with verified backups and alerts that arrive even when the machine is down.

02 Projects

Each project has its own public repository: the code, the tests and a README that explains the decisions.

Desktop application

Tauri · Rust · React · Python

ExziHub, an app where every tool is a plugin

The foundation for the other projects. Tools are installed, updated and removed from an online catalogue, without downloading the app again. A plugin can ship its own Python engine, which the hub starts and monitors. The same code runs on Windows and Android.

  • About 13 MB, versus over 100 with Electron.
  • Packages checked against a SHA-256 hash before installing.
  • Sync across devices without overwriting a change made elsewhere.

Code and architecture

Android app

Tauri · Rust · React · Android

ExziFit, strength training with an RPG character

In development, already used by friends. A set is logged in two taps, one-handed, in airplane mode, and the app says what weight to put on the bar: a percentage of 1RM, adjusted set by set from effort (RIR).

  • Character stats computed from the real training history: they drop when training stops, the game is never a currency.
  • Local data in readable JSON, backups read back and verified.
  • Full user journeys replayed before every release, a QA agent driven by a local AI model.

Code and design choices

Data extraction

Python · Tesseract · WebSocket

Reading a screen in real time, never counting twice

An engine reads part of the screen continuously and turns it into structured events, each counted exactly once, even when the display scrolls, repeats itself or is misread. Example: the real cost of a restaurant's dishes, read from its wholesaler's ordering software, which offers no API.

  • Deduplication by position, tolerant of reading errors.
  • Anything ambiguous is set aside, never counted by default.
  • Real sessions replayed offline, 120 tests.

Case study and code

Decision support

TypeScript · Web Worker · Monte-Carlo

Breeding planner, planning by simulation

When every decision has a random outcome, the tool simulates hundreds of runs for each option, all on the same random draws: the measured difference comes from the choice, not from luck. The model is calibrated on real data and runs off the main thread, in under a second.

Try the demo Code, 63 tests

TypeScript · React · Vitest

Household budget

What is really left to spend: recurring transactions computed, yearly bills spread over the months before them, pay-day to pay-day periods.

Demo Code, 15 tests

TypeScript · SVG · Python

Growth chart

WHO growth standards, converted by script from the official tables, and an SVG chart written without a library, sharp on screen and on paper.

Demo Code

TypeScript · Canvas · API ARASAAC

Visual routines

Picture routines for children, printed as an A4 strip or followed step by step on a tablet. The PDF is written byte by byte, with no library.

Demo Code

TypeScript · pdf.js · pdf-lib

PDF editor

Fill in and sign a PDF without sending it anywhere: the document never leaves the machine, and the export stays a real PDF, text included.

Demo Code

03 Websites

An identity of its own for every client, several languages when needed, and lightweight pages.

Client · React · i18next

NM traductions

The site of a sworn translator, in four languages including Farsi, written right to left: the whole layout flips with the language.

Visit the site Code

Demo · React · Framer Motion

Atelier Vaudray

For a fictional interior architect: a bold identity, animation that serves the content, about 115 KB of JavaScript.

Visit the site Code

Demo · React · Recharts

ServerWatch

A monitoring dashboard: services, uptime, latency, load and incidents, on simulated data.

See the demo Code

04 How I work

Understand before writing. The real need first, then the simplest solution that meets it, with no needless dependencies.

Test what matters. Business logic is kept apart from the interface and covered by tests; every fixed bug leaves a test behind.

Measure before optimising. A baseline, one change at a time, a new measurement.

Leave something maintainable. Readable code and documentation that describes the actual state, so you can take it over without me.

Tom, freelance developer

A project, a question?

Describe what you need in a few lines. I reply within 48 hours with a first estimate, or with the questions needed to make one.

tom.exzitech@gmail.com Malt LinkedIn GitHub