Call WhatsApp
Skip to content
Independent software developer

Twenty years of turning manual work into automation.

I help companies whose processes and software no longer fit together.

Work that comes back every week
shouldn’t be done by hand

I investigate one recurring process and calculate how much time, errors and dependency it costs you each year. After that you know what can disappear, and whether automation is worth the investment.

Twenty minutes is enough for a first read. If the investigation follows, I map out the process, the annual cost and the direction for a solution within ten working days.

2 hours of daily data entry gone · 4 hours of weekly admin gone · 14 systems in daily use, five shown below

See the real-world examples

Four processes that run on their ownProduct data, bookkeeping, leave and invoices

7

Product files checked

0

Entered by hand in Exact

8

Leave requests processed

23

Invoices read

08:0340 entries posted to Exact OnlineDone

Everything ran on its own — zero manual work.

Simplified view based on live systems.

25 years

IT and software development

Nearly 20 years

Business processes and product data

14 systems

Built by me,
in daily use

What I build

What I build

01

Custom software and web apps

Internal applications, dashboards and workflows for work that doesn't fit off-the-shelf software — built around your process, not the other way round.

02

Integrations and automation

Systems that don't talk to each other start doing exactly that — with error handling that keeps working when something goes wrong.

03

Portals and customer environments

Environments for customers, dealers or staff, tightly connected to the systems behind them — set up so people can use them without instructions.

04

SaaS and online products

A first version customers can use straight away, including login, payments and invoices. Not a prototype that still needs months of work afterwards.

A good fit forCompanies with a concrete process problem, a clear decision-maker and the will to solve it for good.

01 — Sound familiar?

The work has become more
complicated than it needs to be

01 Double entryThe same data gets entered in several places.
02 Temporary workaroundsMore and more exceptions and detours have crept in.
03 Excel as an emergency systemToo much is still tracked outside the central system.
04 Everyone has their own way of workingStaff have each developed their own way of doing things.
05 Recurring manual workWork that comes back every day is still done by hand.
06 Systems don't connectData has to be moved by hand from one system to another.
07 Errors with no clear sourceNobody's quite sure where an error actually starts.
08 Small changes take too much timeA minor tweak takes longer than it should.

Leave this unaddressed and the bill quietly grows: an error that only surfaces at the quarterly review means months of tracing back, and if the one colleague who knows the manual work is out, the admin grinds to a halt. These are exactly the processes I investigate and simplify.

When an investigation makes senseAs soon as a recurring process costs five to ten hours a week, regularly causes errors, holds back growth or depends entirely on one member of staff.

02 — From practice

Six examples from practice

No made-up results. Just the problem, what I built and what demonstrably changed — plus the detail where the real work was. These are examples of how I think and build, not the only industries I work in.

Two hours of manual entry a day gone.

At 230 working days, roughly 460 hours a year.

Promesse → Exact Online · OneDrive / FTP · mapping and error handling

The situation

The administration of end client De Boer Schilderwerken lives in Promesse, the bookkeeping in Exact Online. Someone typed every journal entry by hand from one system into the other. Duplicate work, and errors only surfaced at the review.

What I built

An integration that automatically picks up export files from OneDrive or FTP, translates Promesse codes to their Exact equivalents through a configurable mapping layer, and writes the entries away as sales, purchase or general journal postings.

What changed

Every journal entry used to be retyped by hand; that now happens automatically. When something goes wrong, the dashboard shows whether it's the source data, the settings, Exact itself or the connection — so it's immediately clear who needs to fix it.

Error source: mapping missing 2 / 3 mapped
Promesse4560 Exact OnlineNot yet mapped — pick the right account
Promesse8000 Exact Online8000 · Maintenance revenue
Promesse8010 Exact Online8010 · Painting revenue
As long as this code is missing, the system doesn't know where the entry should go, so it's held back rather than posted wrongly. Once the mapping is in place, the lines go through on their own at the next cycle.
Every error shows where it comes from and who can fix it · simplified view, fictional data

Where the real work was

Building an integration that works when everything goes right is the easy part. This system is built on the assumption that things will go wrong.

Incomplete entries wait

Entries that arrive split across several exports only go through once they're complete.

Missing master data blocks nothing

Lines continue on their own as soon as the missing data is there.

The system protects itself

After three consecutive errors, the integration pauses itself for fifteen minutes.

Reposting without duplicate entries

Even after deletion in Exact you can safely reprocess; a double-click never produces a duplicate entry.

From idea to running product, live and in use.

SaaS · Stripe · NLCIUS e-invoices · bank link · OCR with AI · Lighthouse 93 / 100 / 100 / 100

What it is

An invoicing and administration platform for Dutch freelancers: creating and sending invoices, all Dutch VAT variants, e-invoices in the NLCIUS standard that governments require, and automatic payment reminders.

What I did

The entire product. Payment flows via Stripe, receipts read with AI, passwordless login, a link with the bank for matching transactions, and the management and analytics dashboard behind it.

Why it's here

This is the biggest product I built and keep running single-handedly — including everything that comes with that in practice: payments, security, discoverability and accessibility.

Invoice 2026-0184 · €1,850.00 followed up automatically
day 0 invoice sent as an e-invoice per NLCIUS
day 14 due date reached, first reminder sent
day 21 second reminder, with a payment link included
day 24 bank transaction recognised and matched on amount
day 24 invoice marked as paid, reminders stopped
Nobody had to keep track of who hadn't paid yet. The sequence stops as soon as payment comes in, even with a partial payment or a manual transfer.
From sent to paid, without anyone tracking it · simplified view, fictional data

Accessibility wasn't skipped

The platform is tested against WCAG 2.1 AA and fully keyboard-operable, with automated checks that run again on every change. Google measures it the same way: performance 93, accessibility 100, best practices 100 and SEO 100 on desktop. For software of this size, that's the exception rather than the rule.

Visit betaaldworden.nl Live and in daily use

Four hours of checking a day gone, and errors surface before the import.

At 225 working days, roughly 900 hours a year.

Supplier files → product data · 19 checks · comparison with the previous delivery

The situation

Every supplier delivers its product data differently. So at every organisation someone sits checking, correcting and importing the same files. Week in, week out.

What I built

A system that reads a file, recognises the columns, compares it with the previous delivery from that same supplier and runs nineteen checks: from incorrect and duplicate EAN codes to unexpected price changes and products that have quietly been discontinued.

What changed

Settings are remembered per supplier, and low-risk files go through automatically.

Price far off · 2 products
ProductPreviousNowChange
Outdoor wall light black8712345678901 €49.95 €0.50 −99%
Garden spotlight LED 5W8712345679014 €22.50 €0.23 −99%
A supplier who accidentally divides by a hundred delivers a file that looks fine on its own · simplified view, fictional data

Built because I ran into it myself

I developed SupplierSync in my own time, after years of checking the same files by hand. That also explains its most important part: the comparison with the previous delivery. A supplier who accidentally divides every price by a hundred delivers a file that looks fine on its own. You only spot it when you put the two side by side — which is exactly what you never do by hand.

Four hours of weekly admin, gone.

At 46 working weeks, well over 180 hours a year.

Nobody keeps an Excel file any more.

Leave portal for AIS Groep · requests via WhatsApp with AI · balances, day swaps and overtime automatic

The situation

Leave requests went through email, ad-hoc arrangements and a shared Excel file. Someone kept the balances there, handled day swaps and overtime, and had to keep track of who was off and when. That took time continuously, and when that person was away, nobody knew where things stood.

What I built

A leave system where staff see their request, balance and the team calendar. You can also request through WhatsApp in plain language, for example "I'd like Friday off", after which AI automatically turns it into a correct request. The manager approves with "YES".

What changed

Nobody depends on one person or one file any more: everyone sees the same balance, the same schedule and the same status. Part-time pro rata, carried-over days, public holidays, day swaps and overtime live in the system instead of in someone's head.

Request via WhatsApp Friday 12 June
EmployeeHi, I'd like Friday off
Leave portalFriday 12 June, full day — 8 hours. Balance after: 96 hours. Forward to Peter?
Employeeyes
Leave portal to PeterRequest from Sander: Fri 12 June, 8 hours. Reply with YES or NO.
PeterYES
The request then sits correctly in the system: balance updated, team calendar adjusted, part-time factor and public holidays already accounted for. Nobody filled in a form.
Plain language in, a correct leave request out · simplified view, fictional data

Why WhatsApp

Any leave system only works if people actually use it. Opening a portal and filling in a form is just enough of a hurdle to put it off; sending a message isn't. Here's how a request flows through WhatsApp:

01

Message in your own words

“I'd like Friday off, we're going away for the day.” The number has to be linked to a member of staff; unknown numbers are ignored.

02

AI reads the message

Dates, type of leave and reason are extracted. If something's missing, the system asks for it and keeps the conversation open for ten minutes.

03

Request in the portal

Complete is complete: a real request lands in the administration, flagged as submitted via WhatsApp.

04

Approve within the chat

The manager gets the name, dates, hours and reason, and replies to approve or reject. If the balance is too low, nothing happens and a warning follows.

WhatsApp is only the way in; the leave portal stays the source of record. On approval the balance is updated immediately and the employee is notified via WhatsApp and email.

See how a leave request works Fictional data · about one minute

Retyping has become proofreading.

PDF → posting document · Python · AI reader · OCR · everything stays on your own computer

The situation

Purchase invoices came in as loose PDFs. Someone opened them one by one, retyped the supplier, invoice number and amounts into the bookkeeping, renamed the file and kept track of what was already posted. Every month again, and when things got busy the pile just sat there.

What I built

A tool that reads the invoice folder itself: it pulls the text from each PDF, recognises the supplier, checks whether the VAT is correct, renames the file to supplier and invoice number, and prepares the amounts to be taken over. Unknown suppliers it has read by AI. It then reads the posting-document numbers back from a screenshot of the purchase ledger, so every file gets its final name.

What changed

The invoices are checked and named, ready to go; what's left is reviewing and ticking off. A VAT discrepancy stands out immediately instead of at the quarterly review.

How 40 invoices were read this month total €0.04
Fixed rulesKnown suppliers, fully predictable 31 €0.00
AI readingOnly for a supplier not yet known 6 €0.04
Read beforeSame invoice, answer cached on the content 3 €0.00
Generic readingFallback without internet or key, never stops 0 €0.00
AI is only used where it's needed; the rest costs nothing · simplified view, fictional data

Where the real work was

Running AI on every invoice is expensive and unnecessary. That's why the tool reads in three layers: known suppliers via fixed rules, free and fully predictable; unknown ones via AI; and if there's no internet or key, it falls back on a generic reading instead of stopping. Every AI answer is cached on the invoice's content, so the same invoice never costs anything twice. And what's already ticked off is tied to the invoice number, not the file name, which is why it survives the rename the tool performs itself. On top of that, the invoices stay on your own computer: nothing goes to a service you don't control yourself.

Not a deletion list. A decision list.

PROMESSE EXPORT → DATA QUALITY → REVIEW → INFORMED ACTION

Why I built it

After more than twenty years of daily work with Promesse article data, I kept seeing the same thing: files keep growing, while no one can assess tens of thousands of articles together. A list of errors does not answer the real question: what should you do with them?

What I built

ArtikelGrip reads one Promesse export and brings together data quality, prices, margins, activity, stock and online visibility. Per article, it does not give an instruction, but an informed choice: correct, review commercially or clean up.

The design judgement

An article that has not sold for a long time does not necessarily have to go. It may be a service article or a deliberate exception. ArtikelGrip shows the reason, stock and protected articles before you decide. The business owner always remains in control.

Different from SupplierSync: SupplierSync checks supplier files before import and compares them with a previous delivery. ArtikelGrip examines the existing article file itself, from one export, to make choices about the assortment and the data discussable.

Nothing is ever written into Promesse. ArtikelGrip changes nothing and does not estimate missing data. Changes within Promesse are processed through the organisation’s own Promesse process.

View ArtikelGrip →

Promesse is a product/brand of the relevant rights holder. ArtikelGrip is an independent supplementary solution and is separate from Promesse unless stated otherwise.

The client behind case 01
“He came back with questions I thought: I should have asked those myself.”

“We don't bring in an outsider lightly — this is about our clients' administration. Goran was given a half-explained process and built the integration so the client never has to think about it and we see exactly what's happening.

When something did turn out to be off in the VAT postings, within a few days there was a precise overview plus a recovery plan where nothing could be posted twice — before the client got nervous about it. He's now on our next project.”

AIS-groep · ERP software

What other clients say

All six Google reviews: five stars. Three of them below.

★★★★★
“The whole process was effortless and streamlined. Communication was clear and efficient, and deadlines were always met.”
— Bram, IT specialist
★★★★★
“Weeks later I still came with various changes, done quickly and free of charge. Goran clearly factors the aftercare into his invoice. A craftsman in the IT field.”
— Sidney Simonis, Simonis Bestratingen
★★★★★
“A really pleasant and fast collaboration! A professional who knows what he's doing.”
— Elieve Ozyurt
03 — The offer

One process less

No standalone advice, no months-long programme. One clearly defined process that disappears from your week — that's what you're buying.

The investigation shows up front what it delivers, in hours and euros per year.

What it costs you in effort

No requirements document, no project group, no weekly steering committee. I need access, some sample files and two conversations with the people who do the work. The rest is on me.

What's included

I investigate the process and calculate what it costs per year
I build what takes it over, at a fixed price and fixed scope — usually done within four weeks
Thirty days of stabilisation after delivery is included

I take on a maximum of two build projects at a time.

04 — How I work

Understand first, then build

I only know which solution is needed once I see how the work actually runs. That's why I start with one clearly defined process, not with the technology.

So you know up front what automation delivers — and what it saves you.

I think along about the process, not just the assignment

Sometimes nothing needs to be built. In that case I'll say so: a task that disappears is cheaper than a task that gets automated.

The standard route isn't always the only route

“That's not possible with our system” usually means it's not possible the familiar way. A leave request via WhatsApp that AI turns into a correct entry, a receipt that reads itself: those turned out to be perfectly possible.

It has to work for the people who use it

Every extra step raises the chance that someone drops out. That's why I design the solution around daily use and test accessibility as a fixed part of the build.No password · WCAG 2.1 AA · fully keyboard-operable

When something breaks, it must be clear at once who can fix it

The dashboards point to whether it's the source data, the settings, the other system or the connection. Without that, everyone looks in the wrong place.

What I leave behind has to stay manageable

I work in short steps and show what's there along the way. What I leave behind is manageable: one clear way of working, without temporary detours. For integrations that need to keep running continuously, we make separate maintenance arrangements.

05 — What I work with

Technology is a tool, not a goal

Which one I reach for depends on what the problem calls for.

What I build with
TypeScript Node.js React PostgreSQL Drizzle ORM TanStack Query PHP & Laravel Livewire Docker AWS Vitest Playwright
What I work on
System integrations REST API’s OAuth 2.0 Webhooks Contract-first API’s EDI & XML FTP & SFTP OneDrive / Graph API Promesse Realisatione Exact Online Stripe Twilio / WhatsApp Product data Customer >Customer & dealer portals OCR & document processing LLM integrations Claude API RAG Speech to text WCAG 2.1 AA PWA
06 — About me

I know the work behind the software

Goran Živanović at his desk

In short

Twenty-five years in IT and software development
Nearly twenty years in trade, manufacturing and product data
Integrations, internal applications and portals
Own software products developed and taken live
I investigate, design and build myself: no handover between consultant and developer

I spent nearly twenty years working with the very processes I now automate.

Supplier files, condition files, EDI and XML, validation and synchronisation. I know how those processes work from the inside and why they've grown so complicated over the years.

Good software doesn't have to stand out. It has to keep working.

That's where the combination lies: I quickly spot where things get stuck, and I build the solution myself — including the design of the screens people will work in, because a portal no one wants to use solves nothing.

In almost every project I start here

Why does this process exist?

Why does it take so much time?

Where do the errors arise?

What can disappear?

What never needs doing by hand again?

I test new technology on myself first

In my own products I explore new ways to make daily work simpler: turning speech into usable data, reading documents reliably and getting systems to work together on clear terms. Only once something proves itself there do I use it in a client project.

07 — Contact

Which task do you do by hand every week?

Call me and briefly explain where the process gets stuck. Twenty minutes, free of charge — usually enough to decide whether there's something to gain.

This is how “One process less” works: you call, I listen, and you find out whether an investigation makes sense.

Four guarantees

No software without a business case

If the expected value is insufficient, I'll advise against building.

No open ends

You get a defined scope, a fixed price and a realistic schedule up front. Usually done within four weeks.

No quick handover

After go-live, thirty days of stabilisation are included in the price.

No mandatory follow-up

The investigation stands on its own: the business case and process description are yours, even if you don't build.

Discuss your process · 06 – 123 789 52 Send me where it gets stuck gz@goranzivanovic.nl

Direct contact with me. No salesperson or account manager.
I investigate and build myself, which is why I work on a maximum of two build projects at a time. Prefer typing? Send a brief note of what's currently done by hand.