“Stack Builders was a great partner throughout the project. Their team was always helpful and responsive, and their expertise made a real difference in getting our system working the way we needed.”
Plow Technologies, a U.S. leader in oil and gas well site automation with over a decade of field experience, builds custom control systems for industrial challenges. Now part of PakEnergy, Plow continues driving innovation across critical industries.
Plow Technologies needed guaranteed consistency between its Haskell backend and ReasonML frontend as SCADA data structures evolved. Shifting types risked runtime failures, slowed development, and compromised reliability in mission-critical systems.
Stack Builders developed a custom code-generation tool that automatically generated frontend types based on the backend, eliminating manual errors, streamlining delivery, and ensuring Plow Technologies’ systems remained reliable and deployment-ready.
A closer look at how we worked together on this project, including the engineering decisions, delivery practices, and collaboration model that helped us accomplish the goal.
We worked closely with Plow Technologies to share knowledge, align on design decisions, and enable their team to maintain and extend the system.
We used property-based and golden testing to validate serialization between Haskell and ReScript for consistent data encoding across both systems.
We generated frontend types directly from backend definitions, keeping code changes aligned while reducing human error and long-term maintenance costs.
We designed an architecture connecting Haskell Servant API and ReScript/ReasonReact to ensure consistent data flow and reliable system performance.
Stack Builders built an automated workflow to keep Plow Technologies’ Haskell backend and OCaml/ReasonML frontend perfectly aligned. Using Haskell types as the source of truth, we generated matching OCaml types and codecs. Integrated into CI, the system ran cross-language tests on every commit.
This diagram shows an automated workflow that enforces type-level consistency between a Haskell backend and an OCaml/ReasonML frontend. Types, serializers, and tests are generated from a single Haskell source of truth and validated via golden and property-based tests in CI.
Automated OCaml/ReasonML code generation from Haskell types, plus auto-derived QuickCheck data via custom in-house libraries.
Added golden and property tests ensuring Haskell < - > OCaml JSON serialization remains accurate and fully round-trippable.
Integrated type generation and tests into the CI pipeline, guaranteeing backend–frontend type consistency on every commit.
Ensured data integrity across a large, mission-critical system by automating type syncing and cross-language validation.
The automated type-synchronization system enabled Plow Technologies to release updates faster and with greater confidence. By generating types and tests directly from backend definitions, Stack Builders eliminated data mismatches, cut manual maintenance, and surfaced errors earlier in development. The result was improved reliability across mission-critical systems and a foundation that scales safely as payloads evolve.
Verified through automated property-based and golden tests.
Manual backend–frontend syncing was eliminated, reducing engineering time.
Serialization errors were caught during development, reducing risk and accelerating releases.
We combined Haskell, ReasonML/ReasonReact, and four in-house tools to automate type generation, serialization, and testing, ensuring consistent data, fewer errors, and easier long-term maintenance.
Real impact, real growth. Hear directly from the team at Plow Technologies.
“Stack Builders was a great partner throughout the project. Their team was always helpful and responsive, and their expertise made a real difference in getting our system working the way we needed.”