The Linux Foundation Projects
Skip to main content
Blog | Mentorship | Zowe

Summer Mentorship 2025: Building the Future of Mainframe Integration: My Journey Creating a Go SDK from scratch for IBM’s Zowe Project, Ojus Chugh

By | September 18, 2025

Introduction

Hey everyone! I’m Ojus Chugh, an open source software engineer currently working as an Associate Technical Consultant, where I focus on AI/ML solutions and enterprise software development. I’ve been actively contributing to open source projects for the past few years – you might know me from my Google Summer of Code work with Eclipse Foundation in 2023, where I was selected from over 43,000 participants and contributed 450+ hours to Eclipse Cargo Tracker.

This summer, I had another amazing opportunity to dive deeper into the open source world through the Linux Foundation’s LFX Mentorship program from June 2025 to September 2025. My project was all about developing a Go SDK for Zowe under the Open Mainframe Project. The main goal? Create a comprehensive client library that would finally let Go developers interact seamlessly with IBM z/OS mainframe systems – something that was surprisingly missing from the ecosystem.

I was fortunate to work under the guidance of Zoran Krleža, an IT Infrastructure Architect and DevOps Engineer with extensive experience in IBM systems architecture, containerization, and cloud technologies. Zoran’s deep technical expertise and mentorship were instrumental in shaping both the technical direction of the project and my understanding of enterprise-grade software development.

Project Overview and Contributions

The Challenge

So here’s the thing – Zowe is this really cool open-source framework that lets you integrate with z/OS mainframe systems through different interfaces like CLI tools and SDKs. But there was this glaring gap: while they had client SDKs for Python, Java, Kotlin, and Node.js, Go developers were completely left out in the cold.

This really bothered me because Go is becoming huge in the automation and DevOps space, and IBM is actually starting to support Go on z/OS platforms. As someone who’s worked extensively with Go (I built several projects with it during my time at Eutech Cybernetics), I knew there was real demand for this. Having contributed to various open source projects over the years, I could see this was exactly the kind of gap the community needed filled.

What I Built

Building this SDK from scratch was honestly one of the most challenging and rewarding projects I’ve tackled. Coming from my GSoC experience where I worked on upgrading Eclipse Cargo Tracker from Jakarta EE 8 to EE 10, I knew the importance of solid architecture and maintainable code. Here’s what I managed to put together over these few months:

Core Functionality

The heart of the SDK focuses on what developers actually need day-to-day:

  • Dataset Management: I implemented full CRUD operations for z/OS datasets. This was trickier than it sounds because mainframe datasets have very specific structure requirements
  • Job Management: Built out APIs for submitting jobs, monitoring their status, and retrieving results – basically everything you need for automated mainframe workflows
  • Authentication & Security: Had to figure out secure authentication mechanisms. Mainframes take security seriously, so this required a lot of research and testing
  • Error Handling: Spent a lot of time on this because mainframe errors can be pretty cryptic, so I wanted Go developers to get meaningful feedback

Create a partitioned dataset (PDS)

Output-:

Upload a member (JCL) into that PDS

Output-:

Submit a job based on that member

Output-:

Technical Architecture

Drawing from my experience in enterprise software development at SAS, I focused on:

  • Modular Design: Made sure other contributors can easily extend the SDK without breaking existing functionality
  • Cross-Platform Compatibility: Tested extensively on different OS environments – learned this lesson from my IoT work with embedded systems
  • Performance: Implemented connection pooling and smart resource management. Nobody wants their automation scripts to be slow
  • Testing: Built comprehensive test suites. After contributing to Eclipse projects, I’ve become a bit obsessive about test coverage

Developer Experience

  • Clear Documentation: Wrote comprehensive documentation with code examples and usage patterns
  • Intuitive API Design: Designed developer-friendly interfaces that follow Go best practices
  • Example Applications: Created sample programs demonstrating common use cases

Impact and Contribution

The Go SDK I developed addresses a critical gap in the Zowe ecosystem by:

  1. Enabling Go Integration: Go developers can now programmatically interact with mainframe systems without needing to learn other languages or use external tools
  2. Expanding the Ecosystem: The SDK broadens Zowe’s reach to the Go developer community, particularly important in DevOps and automation contexts
  3. Future-Ready Foundation: The modular architecture I implemented makes it easy for future contributors to extend functionality
  4. Enterprise Readiness: The SDK is built with enterprise requirements in mind, including proper error handling, logging, and security considerations

Key Learnings and Growth

This mentorship was transformative in multiple dimensions:

Technical Expertise

Working on this project really pushed me in new directions:

  • Mainframe Systems: I’ll be honest, I knew almost nothing about z/OS when I started. Now I have a solid grasp of dataset structures, job management, and mainframe architecture. It’s fascinating how different this world is from modern cloud-native development
  • Enterprise SDK Design: My previous GSoC experience with Eclipse Cargo Tracker helped, but building an SDK from scratch taught me so much about API design, backwards compatibility, and enterprise requirements
  • Go Deep Dive: I’ve used Go in various projects before, but this really made me dive deep into advanced concepts like interface design, concurrent programming, and Go-specific testing patterns
  • Open Source Best Practices: Between GSoC, my contributions to projects like RustCargo and Sugar Labs, and now this, I feel like I’ve really matured as an open source contributor

Professional Skills

This mentorship complemented my day job at SAS really well:

  • Cross-Platform Development: Working with mainframes while ensuring compatibility across different development environments was a unique challenge
  • Documentation: Having published Android apps and contributed to major projects, I thought I was good at documentation. This project showed me there’s always room to improve
  • Community Engagement: Learning how to build software that other developers will actually want to use and contribute to

Industry Insights

  • Mainframe Modernization: Gained valuable perspective on how legacy systems are being modernized and integrated with modern development practices
  • Enterprise Integration: Understood the challenges and solutions in enterprise system integration
  • Open Source Impact: Experienced firsthand how open source contributions can have real-world impact on enterprise software ecosystems

Looking Forward

Finishing this SDK feels like reaching a major milestone, but honestly, it’s just the beginning. Coming from my GSoC experience where my contributions to Eclipse Cargo Tracker are still being used by the community, I know the real impact happens when developers start actually using and building on what you’ve created.

I’m planning to:

  • Keep contributing to Zowe and the broader Open Mainframe Project ecosystem
  • Present this work at some Go and open source conferences (following in the footsteps of my mentors from GSoC)
  • Work on getting more Go developers interested in mainframe integration
  • Maybe write a few more blog posts about the technical challenges I solved along the way

After GSoC with Eclipse Foundation and now this LFX mentorship, I’m more convinced than ever that open source is where the most interesting problems get solved. Plus, working on enterprise-grade software while keeping it open source feels like the sweet spot for making real impact.

Acknowledgments

Huge thanks to Zoran Krleža for being such an incredible mentor. Coming from my GSoC experience with Microsoft Principal Program Manager and Java Champion mentors, I had high expectations, and Zoran absolutely delivered. His industry experience and technical insights made all the difference.

Also grateful to Tom Slanda, Linux Foundation, and IBM Open Mainframe Project for this opportunity. As someone who’s been contributing to open source since college (Eclipse, Adoptium, Sugar Labs, etc.), these mentorship programs are such a great way to tackle bigger, more impactful projects than I could manage solo.

This project has been a perfect bridge between my open source passion and my professional work in enterprise AI/ML at SAS. It reinforced something I learned during GSoC: the best software projects happen when you can combine community collaboration with real business needs.

The Go SDK for Zowe is out there now, ready for developers to use and improve. After all my open source contributions – from Android apps with 400+ downloads to major enterprise projects – this one feels special because it opens up an entirely new ecosystem for Go developers.

Check out the project at GitHub and feel free to connect with me below if you want to chat about Go, mainframes, or open source development in general!

Linkedin | GitHub | Fosstodon | Website | X | Medium | Linux Foundation Mentorship | Mail | Playstore

Share