Upgrading & Expanding a Food Quality Platform
- dedicated team
- RoR development

Normec Foodcare specializes in quality assurance and food safety across the entire supply chain. The company provides end-to-end solutions in QA automation, lab testing, and regulatory compliance. Their work helps ensure that millions of consumers have access to safe, high-quality food every day.

may 2024 - ongoing
Netherlands
foodcare
- 3 full-stack developers
-
2 weeks
to assemble the team
-
1 month
to fix critical bugs
-
2 months
to initiate file storage migration
-
1 year
to eliminate major tech debt and launch a new product
challenge
lack of in-house technical resources
After acquiring QC-One and its software, Normec faced a challenge: they needed full control over the codebase but lacked internal development capacity. Finding skilled developers locally proved difficult, prompting the company to look for a reliable external partner to scale their tech team.

legacy code and technical debt
The existing system came with a substantial amount of technical debt. Our team had to deal with legacy code, fix critical bugs, write missing tests, and gradually refactor parts of the system.

developing a new quality reporting system from scratch
We were tasked with building a new, improved version of the company’s product quality reporting system – Specification Manager. This tool helps inspectors and quality managers maintain high industry standards across the entire supply chain. The first version of the system was released in April and continues to be actively improved.
transition to modern infrastructure
Migrating legacy components (file management from Paperclip to Active Storage) required careful planning and incremental steps to avoid breaking existing functionality.

solution
eliminate legacy technical debt
Our backend team focused on stabilizing the system by addressing the most critical legacy issues. This included writing missing tests, fixing persistent bugs, and refactoring outdated parts of the codebase to support further development.

migrate to modern file storage
To modernize the infrastructure, we initiated and partially completed the migration from the deprecated Paperclip library to Active Storage. This ensures better scalability and long-term maintainability of the system.
develop the specification manager from scratch
We engineered the new Specification Manager tool, a key system component for generating food safety reports, from the ground up. Our team handled backend development and delivered an alpha version despite evolving requirements and shifting priorities


implement long-requested SEATS functionality
SEATS, a long-awaited feature that had been in the backlog for several years, was successfully delivered to production. It replaced the outdated manual onboarding process with a more scalable and self-service model. Now, instead of setting up each employee account manually, customers can simply purchase a set number of seats and assign access on their own.

extend test coverage
To make the platform more robust and future-proof, we increased test coverage by introducing automated tests across key modules. This allowed us to catch regressions early and improve development confidence.
support evolving business logic
Our team provided ongoing support for updates to existing functionality and adjustments driven by new business needs. We remained flexible in responding to changing requirements, even when they were introduced mid-sprint.

introduce interactive API documentation
To improve communication between frontend and backend teams, we integrated OpenAPI Swagger documentation. This step clarified request and response structures, accelerated development, and helped avoid miscommunication in interface implementation.
delivered features
- refactored legacy codebase
- migrated to Active Storage
- alpha version of Specification Manager
- SEATS feature delivered to production
- improved business logic
- increased test coverage
- OpenAPI Swagger documentation
- enhanced system stability
- ongoing support and optimization
technology stack
Backend
Ruby Ruby on Rails PostgreSQL Sidekiq Redis Docker Kubernetes Turbo StimulusFrontend
React React NativeInfrastructure & DevOps
Google Cloud Platform Google KubernetesEngine GitHub Actions ArgoCD Google Cloud Console

communication
We followed the SCRUM framework and ensured regular, structured communication with the client and within the team. Daily stand-ups, sprint planning, demos, and retrospectives were conducted via Microsoft Teams. Slack was used for quick questions, async updates, and team chats. Jira and Confluence helped us manage tasks and document progress effectively.
result
We helped the client strengthen their internal tech capacity by closing the developer gap and taking full ownership of the Portal side of the product. Over the course of our collaboration, we reduced technical debt, stabilized the legacy system, and implemented a new subproduct from scratch, which has already been successfully released in production and is being actively improved based on user feedback.
estimate your project

Roland Masiazhyn Business Development Manager
Thank you.
Your message has been sent successfully!
We'll get in touch with you within 24 hours, excepting requests received on Saturday, Sunday.