About me

For 20 years I have been building and looking after systems that businesses use every day – from tills and warehouses to ERP. Here is more detail on what I have worked on and how I work.

Where I started

I've been developing professionally since 2006, for most of that time on systems that companies use day to day. So alongside development I deal with what a change does to the data and to the people working in the system.

Over time I moved from isolated tasks to work that starts with examining the problem, not with a finished brief. What I have worked on:

  • Retail, warehousing and point of sale – five years as an in-house developer at a trading company: ERP, tills, warehouse and payment terminals.
  • Product development – core product logic and data consistency across releases.
  • Banking and energy – portals and mobile apps, security rules, auditability.
  • Healthcare – a telemedicine mobile app, a clinic reception system.
  • Independent practice – full time since 2021, trade licence since 2006.

Enterprise systems and operations

The first part of my career was spent on systems used daily by people from all over the company – from the warehouse floor to management. I dealt with blocked invoicing, bad data in accounting, and outages that stopped sales or production.

The cause was usually not in one place. It was a combination of system complexity, dependencies between modules, and the way the company actually used it. I had to trace the whole chain and get the system back into working order.

At NetSuite – first directly, then as an Oracle employee after the acquisition – I spent four years developing the product's tax engine. It is a central part used by every document type, so part of every change was verifying what it would do to existing data and rules. Banking added extensive architecture and strict security rules that every change has to pass.

Client projects

I have worked for myself full time since 2021. A selection from recent years:

  • Taking over a system with no documentation – an online cyber-security training game for company employees (Node.js, React). I took it over with no documentation, stabilised it first, then delivered a long list of improvements and after about a year handed it over to the new team taking over development.
  • Point-of-sale system for a dance studio – it started in 2017 with a till system driven by the Czech EET rules, then came integration with a booking system and payment terminals, and nine years of running it for the same customer. I am now moving it to a new architecture: NestJS and Fastify, PostgreSQL, RabbitMQ and React, roles and permissions, audit log, Docker, CI/CD and E2E tests.
  • Process automation in financial services – Camunda 7 for a bank and for a leasing company. At the bank, dozens of BPMN processes from application through approval to drawdown and subsequent changes; within the team I also rewrote and extended the tool for resolving incidents in running processes. At the leasing company, processes and integrations with surrounding systems. Java and Spring Boot, Kafka.

Other development

  • Clinic reception system – bookings, calendar, patient records and billing. Go, Gin and PostgreSQL on the backend, React with TypeScript on the frontend, a separate worker for emails and backups. Three language versions, E2E tests, audit log and a stricter regime for sensitive health data.
  • Delivery route optimisation – assigning orders to vehicles and computing routes under capacity, time-window and driver-hour constraints. Go API, a Python solver on top of OR-Tools, self-hosted GraphHopper and geocoding.

Working in teams

I spent four years on the NetSuite project. Alongside my own development work I did code review, onboarded new joiners and discussed proposed solutions with QA and with people on the business side.

How I work today

I take on independent projects: custom applications, system integrations, taking over systems from another supplier and looking after them long term. For larger projects I bring in freelancers I have worked with for a long time.

I listen first to how things actually work at the client, and only then propose a solution. I take on work once I understand the problem and can see a path to a solution. If I can't, I say so and suggest who or what would help more.

I use AI tools daily. Client code and data stay in the tools the client has approved, and I follow the client's rules. On my own projects AI agents write a large part of the implementation, working on code and test data, not production data. The brief, splitting the work into small changes, reviewing every change and the tests stay with me.

Technologies

Frontend

React, TypeScript, Next.js

Mobile

React Native

Backend

Java, Spring Boot, Node.js, Go, Python

Databases

PostgreSQL, MySQL, MSSQL, Redis

Processes & messaging

Camunda 7 (BPMN), Kafka, RabbitMQ

Operations

Docker, CI/CD, Linux, DigitalOcean, Kibana, Prometheus, Grafana

Domains

Retail, warehousing & services

Tills, warehouse and picking, bookings, payment terminals and ERP integration.

Enterprise & ERP systems

Extending ERP platforms, process layers and integrations.

Banking, leasing & finance

Automation of loan and mortgage processes and support for running them, web and mobile applications, auditability.

Energy

Customer portals and mobile apps.

Healthcare

A telemedicine mobile app, a clinic reception system.

Logistics

Delivery planning, route optimisation and working with geodata.

Tell me what you need

Free 30-minute intro call · I usually reply to a first message within 2 working days.