THE LINUX FOUNDATION PROJECTS
Blog | Mentorship | Zowe

Summer Mentorships 2026: From Zero Mainframe Experience to Contributing Workflow APIs to Zowe

By | August 26, 2026

Eshaan Gupta

Written by Eshaan Gupta, Open Mainframe Project Summer Mentorship 2026, mentee researcher, guided by mentor Francesco Giordano

How It All Started

Hello everyone! My name is Eshaan Gupta, and I’m an IT graduate from Victoria University. I’ve always been passionate about full-stack development and open source. Even before this mentorship, I had contributed to projects like the Godot Engine and NOAA-FIMS. When I came across the Open Mainframe Project’s LFX Mentorship listing online, the Zowe Client Java SDK project caught my attention. Although I had no prior experience with IBM z/OS or mainframe technologies, I saw it as an opportunity to learn something completely new while contributing to a meaningful open-source project.

Getting Started

The Zowe Client Java SDK enables Java applications to communicate with IBM z/OS mainframes via z/OSMF REST APIs, allowing developers to manage datasets, submit jobs, and automate workflows programmatically. Under the guidance of my mentor, Francesco Giordano, I began by familiarizing myself with the codebase, understanding the SDK’s design patterns, and reading IBM’s z/OSMF REST API documentation.

My first task was a small but important bug fix by correcting an incorrect getter used for the RECFM header in the JobSubmit class. This one-line change helped me understand how the SDK maps z/OSMF headers and gave me confidence to take on larger issues.

My Contributions

Over the course of the mentorship, I merged 5 pull requests into the Zowe Client Java SDK:

Bug Fixes and Testing:

PR #489 (Bug Fix): Fixed incorrect getter for RECFM header in JobSubmit, the X-IBM-Intrdr-Recfm header was being set using the LRECL getter instead of the RECFM getter.

PR #490 (Testing): Added unit tests to verify that submitByJcl() correctly sets X-IBM-Intrdr-Recfm and X-IBM-Intrdr-Lrecl headers with custom and default values.

PR #494 (Bug Fix): Added missing copyAllMembers field to toString() method in DsnCopyInputData.

Feature Development:

PR #523 (Feature): Implemented Start Workflow API, around 799 lines across 7 new files including WorkflowStart, WorkflowStartInputData, response handling, conflict resolution enum, and 15 unit tests.

PR #528 (Feature): Added Get Properties of Archived Workflow API, reusing existing request/response classes for a clean, consistent implementation.

My largest contribution was the Start Workflow API (PR #523), where I implemented the full z/OSMF Start Workflow REST API end-to-end. This involved creating the main method class, input data handling with builder patterns, response parsing, and comprehensive unit tests, all following the SDK’s established conventions.

Challenges and Lessons Learned

Coming in with zero mainframe experience, the steepest part of the learning curve involved several areas:

Mainframe concepts -> Terms like z/OS, z/OSMF, JCL, workflows, datasets, and RECFM/LRECL were entirely new to me. Reading IBM’s z/OSMF REST API documentation to understand what the SDK was abstracting gave me a deeper appreciation for enterprise computing.

Codebase conventions -> The SDK follows strict design patterns: versioned constants, builder-pattern input data classes, URL encoding conventions, and consistent test structures. Learning to work within these patterns rather than around them was an important lesson.

Code review process -> Each PR went through detailed review from Francesco, where I learned to write better commit messages, structure PRs with clear summaries and test plans, and respond constructively to feedback. This process refined my implementation through multiple iterations.

Navigating a large codebase -> Understanding how the SDK’s shared REST layer, constants, input data classes, and test infrastructure all fit together took time but was essential for writing consistent, production-ready code.

Looking Ahead

This mentorship has opened my eyes to the world of mainframe computing and enterprise-grade open source development. I plan to continue contributing to the Zowe Client Java SDK and exploring the broader Zowe ecosystem. I’m grateful to my mentor, Francesco Giordano, for his patience, detailed code reviews, and willingness to explain mainframe concepts throughout the program. I also want to thank the Open Mainframe Project and the Linux Foundation for giving mentees like me the opportunity to contribute to meaningful projects.

I encourage anyone interested in open source, especially those unfamiliar with mainframes to apply for future mentorship rounds. You don’t need prior mainframe experience; you just need curiosity and a willingness to learn.

 

Stay tuned for more mentee blogs as our Summer Mentorship Program continues!

 

Share