Challenge
The app had paying users and was growing fast, while the previous contractor was leaving. The audit showed 8 backend outages in half a year without a single alert, no database backups, no tests or automated deployments, and no persistent logs, so server errors could not be investigated. It was not even certain which version of the code was running in production.
Users reported that the scanner and search did not find food, and former contractors still had access to the infrastructure.
Approach
We started with a read-only audit: app code, backend, server and payments. On that basis we arranged work packages in order of risk. We checked every claim from the audit before writing code. One of them, about missing refund handling, turned out to be false, so an unnecessary module was never built.
Production follows a simple rule: every change has a way back and a data backup, and we approve every operation separately. Measurements on the live database are made only in read-only transactions.
Implementation
We cut off the access of former contractors, took over the deployment repository and fixed a dozen server and API security problems. The audit of payments and login produced 24 reports, of which 6 were real after verification. Among them: registration in imperial units was practically impossible, and a network error logged out a paid account.
We rebuilt the product catalogue from scratch as our own index combining open food databases and reference tables, with Polish lemmatisation, synonyms and typo correction. We prepared the localisation into 47 languages with strict validation of keys, variables and plural forms.
Results
A product search that used to take over 2 s and gave a wrong result now takes 77 ms. The app runs in 47 languages. Moving production to the new release in August cost 11 s of downtime, and after the October release the server logged not a single 5xx error.
The backend has 859 tests and the app 2,530. In that time the base grew from about 700 users in May to over 10k accounts at the beginning of October.











