Igor Mazur

All projects

Quality-assurance desktop suite

The desktop application that runs a food plant's quality process, from incoming deliveries and laboratory analyses to complaints and environmental records.

Role
Lead maintainer
Stack
Python, PySide6 (Qt 6), Oracle, LDAP, PyInstaller, Inno Setup
Type
Case study, 2 of 17

The problem

Everything that has to be recorded, proved and signed off between a lorry arriving at the gate and a batch being released: the delivery, the samples drawn from it, the laboratory results and the decision that follows; supplier complaints and return protocols; non-conformance reports; the reagent and equipment registers; and temperature and humidity records from the storage halls.

The users sit at plant-floor and laboratory workstations inside the corporate network, some of them attached to scales and printers, and the application has to keep working when the wider network does not.

What I did

I took over as lead maintainer and have shipped every release since, including the move to a major.feature.patch scheme at 2.0. In practice that means owning the backlog, the release and the support queue, not only the code. I am the largest single contributor to the repository.

I built the laboratory register subsystem (reagents, units, equipment and test methods, each with ordering and per-record history, and the cost link between a reagent's price and the orders that consume it), the environmental monitoring screens with a smoothing window so a month of sensor readings is readable, and the spreadsheet import, an upsert keyed on document number and source sheet so a corrected file updates rows instead of duplicating them.

The incident I would point at: after a directory change, a group of users could sign in but saw every screen empty. Sign-in succeeded and the group lookup returned nothing, which ruled out credentials. I wrote a standalone probe to reproduce it outside the application against one affected account. There were two causes, stacked. Accounts from a trusted domain appear in the local directory as stand-in objects filed under their security identifier, so the group search has to be built from that identifier. And with one directory controller configured, an unreachable controller was being reported as "no groups" instead of as an error.

The fix tries each configured controller in turn with a short timeout, distinguishes "found nothing" from "could not ask" in the log, and resolves trusted-domain accounts through their identifier. Losing a controller is now a slower sign-in, not an outage.

A decision and its cost

It is a Qt desktop application talking straight to Oracle, not a web application. The users are not on the internet, the workstations are managed and the software talks to hardware, so a desktop client removes a whole tier. The cost is that deployment is not a page refresh. That cost was paid deliberately: the application ships as a Windows installer with its own self-update channel, so every workstation runs the current build without a visit from IT.

  • BasePy desktop platform

    One shared framework (MVC, directory sign-on, self-updater, packaging) behind five departments' desktop applications.

    Short note Lead maintainer of one, sole author of another, release engineer across the family

    Python 3.12 · PySide6 · Oracle · SQL Server

  • Attendance kiosk

    A badge-scan kiosk that shows an employee their own attendance record, then clears itself.

    Short note Sole author

    Python · PySide6 · PyInstaller · Inno Setup

Contact

Warsaw
Office, hybrid or remote
Notice: three months

igor.j.mazur@gmail.com