The work
I created a parallel compilation pipeline for an enterprise isCOBOL application in GitLab. The work involved more than starting several compiler processes: shared prerequisites, source preparation, output handling, and release packaging all had to fit a distributed build.
I separated that process into three responsibilities: a setup job, parallel compile workers, and a finalizer. Each stage has an explicit handoff, so the pipeline can coordinate concurrent work without leaving the final release to whichever job finishes last.
Prepare once, then distribute
The setup job compiles shared prerequisites and prepares a consistent source workspace. Workers restore that prepared workspace instead of independently repeating the shared preparation. A deterministic queue assigns compile groups using GitLab’s worker index and total worker count.
Each worker also bounds the concurrency inside its own job. This separates two decisions: how many jobs the pipeline distributes, and how much work each runner executes at once. Worker outputs stay in separate bundles, and compilation failures retain diagnostic output for investigation.
Make the final artifact deliberate
The finalizer checks that all expected worker bundles arrived before assembling the result. It validates bundle paths, checks conflicting output, applies a defined merge order where the existing build requires it, and rejects an empty release archive. Checksummed transfers help verify that the bundles reaching the next stage match the files that were published.
The resulting ZIP preserves the format expected by the downstream deployment workflow. That compatibility lets the build gain a parallel execution path while retaining a clear contract with the systems that consume its output.
What this demonstrates
The contribution is a coordinated parallel build with explicit dependencies, consistent inputs, isolated intermediate output, and validation before publication. Those controls make concurrency easier to reason about and failures easier to investigate.
Related documentation
Primary references for the technologies discussed. The case study describes my work; these references explain the underlying tools.
