Raincode S.P.R.L. is a leading company in compiler design and more generally, language processing infrastructures. We are headquartered in Brussels, Belgium, and serve customers in all major regions of the globe. We have a sales and support office serving the North American market, and a development facility in Bangalore, India.

Mainframe to Powerapps

The context

Raincode provides tools and services to rehost mainframe applications to Microsoft’s Azure. The product portfolio includes a CICS and an IMS emulator, both supporting 3270 streams, a.k.a the infamous green screens of the 70’s, so that applications that depend on these antiquated technologies can be ported to more modern platforms. On the other hand, Microsoft offers a technology to connect these 3270-based applications to Azure Logic Apps (Connect to 3270 apps on IBM mainframes – Azure Logic Apps | Microsoft Learn) so that the existing business logic can be integrated in new workflows.

The assignment

The purpose of this internship is to build a comprehensive demo, combining the Raincode technology and Mirosoft’s ability to integrate 3270 -based application in Azure Logic Apps, applied to some of the sample applications that Raincode makes available as part of the Raincode 360 sandbox environment. These sample applications include a few screens interactions, and may have to be improved to better demonstrate specific capabilities of the technology. The resulting demo should be integrated in Raincode 360, as a demonstration of a specific application  of the Raincode technologies.

A performance analysis


Raincode provides a mainframe-compatible sorting tool. It comes with a versatile set of features to configure how data must be sorted, combined, joined, filtered, etc. This sorting tool is used to rehost mainframe workloads which depend heavily on file processing, including sorting. This sorting tool has been shown to mimic the behavior of the original mainframe tool very accurately.

The assignment

This work is about running extensive performance tests, with a variety of setups, using different feature sets, different input data sizes, under the supervision of sophisticated profiling tools (specialized for multi-threaded projects), to identify performance hotspots, and suggest avenues for improvement. This is thus *not* about changing the existing implementation, except for experimentation purposes, but rather, about producing a detailed report describing the performance profile of this sorting utility.