Enzo Damato's Mainframe Journey Is Just Getting Started
High-school student Enzo Damato has unique insight for those seeking to bring to younger audiences to the platform: 'Getting new people into a computer platform is done ... in your formative years.'
Enzo Damato: Well I first got interested in computers when I was a real young kid. Someone gave me a bunch of old surplus servers when I was in 5th grade and I’ve been messing around with those ever since. Along my journey, I eventually bumped in to Connor Krukosky’s talk where he described how he got a mainframe and he got it set up for SHARE, and I saw his presentation. I thought the tech looked really interesting. At first, because I was little, I thought oh this is really cool. It’s so big. You know then as I got older, that initial interest propelled me to do more research into the platform and I started discovering all the really cool things that the mainframe could do. I started participating in the Master the Mainframe competitions and challenges and decided that I wanted to take it to the next level and start looking for my own machine. I started trolling eBay and the other government surplus sites for a few years. I found many machines that had been bricked or damaged or otherwise made non-functional, usually by the support elements being removed, until I eventually found one machine on eBay that was still intact, that wasn’t in some crazy location [and] that I could actually get shipped to me, that was generally in good condition, reasonably recent, and all around would be a fit for what I was hoping to use it for. After much convincing of my parents and weighing my options, we decided to go ahead with it. I got the mainframe. I arranged and organized freight shipping and I got it trucked up to my house. Then began the project of setting it up—you know connecting power, connecting data lines, and programming it. I had around two months of programming time before SHARE. I started off by just doing IOCDS and getting it to Power On Reset, then put on Linux, built my own fiber channel SAN so I could do storage. So did that, put Linux on top of it to make sure it was all working, then started working with VM and the other mainframe-specific technologies. I got a VM installation up and running, VSEn installation up and running on top of that, and currently I’m working on getting a z/OS system up and running.
Reg: Cool. Now that’s such an interesting journey for me because the fact is you actually started from the theory and moved into the practice. I’m one of these mainframers who learned UNIX and such, but when I moved onto the mainframe, I hadn’t learned really much at all about the mainframe, so I had to learn at work about the mainframe. So I think it’s really interesting that you’d actually spent years, it sounds like, learning about the mainframe before getting your own mainframe. Tell me about your experience with Master the Mainframe. How did you find it, and how did you find it [laughs]?
Enzo: Well I found it from the r/mainframe subreddit. So I had gone there initially to view Connor’s progress about his machine because I saw so many posts, and you know then I think well, I might as well stay on here. It’s pretty interesting, and I want stay up to date. So you know, stayed on that, found the Terminal Talk podcast, some other good stuff, saw some people give away machines—unfortunately not in my country—but then I eventually saw someone posting about the opening of Master the Mainframe, thought hey, this looks pretty interesting. I should check it out. I did and I got started.
Reg: Now I understand that both Connor Krukosky and Sebastian Wind—both of whom have done this podcast, by the way—are both mentors of yours. I’m curious. Were you talking to both of them before you had your mainframe?
Enzo: Ah no and actually it’s kind of funny. I only really started talking to both of them after I’d already gotten it mostly set up. Connor I did manage to chat with—we exchanged a few emails after I had gotten it set up, gotten it physically in the house—about IOCDS and some other hardware oddities that he was able to help me with. I actually only met Sebastian Wind at SHARE a few weeks ago. Yeah, I also had talked with Christian Swenson. He’s not young like me, but he also has a personal mainframe and his blog entries were very helpful during the process. Also working with Connor was great because I met up with him when I was doing my tour of the IBM Poughkeepsie lab. We just got to chat about the mainframe generally and some good ideas of what to do now that I have a basic functioning system. With what I’ve done, the mainframe is a huge platform and I’ve only just reached the entry level of having a functioning system. Now is the real fun of getting to mess with all the software and stuff.
Reg: Oh yeah. Well of course one of the things that I’m sure that you’ve already discovered in many ways is that the mainframe is unique compared to any other computing system in general use out there, beginning with the code page. The EBCDIC is a bit of a mind twister until you get used to it. What are some of the things you found that you had to basically learn brand new, even though you already knew computing?
Enzo: Things I had to learn brand new: Honestly the most jarring thing for me was the command syntax. I’m so used to Linux commands. Having to learn the whole new set for VM and of course z/OS stuff was an adjustment for me, you know not a hard adjustment but certainly different. Obviously 3270 isn’t that big of an adjustment, it’s just a different type of terminal, but you know the different programming languages is also a bit of an adjustment. I mean obviously you’re always learning new languages as you go along—and not even the COBOL stuff but just the scripting in Rexx, the structure of the way the execs are set up, XEDIT vs. VIM, just a lot of those user LAN utilities—because I’m always learning new stuff and new systems and what not. But it’s all used to be on top of something that I was familiar with so I always knew how the commands would be done. Changing it up certainly hasn’t been the hardest part of what I’m doing, it’s been the most unfamiliar.
Reg: Now the hardware itself—I mean I know a number of software jokes, and one of my favorite ones is "how many computer programmers does it take to change a light bulb?" to which the answer is "none. That’s a hardware problem." You didn’t have that option. You had to deal with the hardware as well. What are some of the interesting lessons learned and challenges you had with actually getting the hardware ready?
Enzo: It’s always bigger than you think it is would be at first. Yeah, it turns out our doors were built around half an inch under code—
Enzo: Didn’t fit until we ripped the weather stripping straight off the door so—
Reg: Oh wow.
Enzo: But it got in. So yeah, so that and also adding cards to the machine—the I/O cards gave me a bit of headache. I thought you know, just like a PC. You turn it off, you plug the cards in, and they all appear when you turn it back on. It turns out you have to go under in the support element, you have to go under the service and concurrently add and remove hardware, and you’ve got to do it that way, otherwise the cards won’t work when you install them. Another hardware issue was fiberoptic compatibility, like working out. It turns out 1 gig and 10 gig OSAs aren’t compatible even though they are the same wave length or that sort of thing. I’m pretty used to hardware, though. Right next to me actually I have an open system server cluster complete with 10 gig networking fiber and stuff like that, so I had known a decent amount of what to expect working with bigger, weirder hardware without support contracts. But it was still working with the mainframe—you know the support element, the hardware management console, the way the Initial Program Load is done, channel I/O—was all different. None of it was particularly nasty. I mean I’ve worked with software that’s a lot nastier than the hardware workout I had to do to get this machine set up, but just an adjustment to the different way of doing things on the mainframe vs. on open systems.
Reg: It sounds like one of the things you’ve done quite well is learn the language of the mainframe, because you’re just comfortable moving back and forth between boot and IPL and POR, just all those—there must be quite a few mainframe words you’ve had to learn over the past couple of years.
Enzo: Yeah, I’ve learned a decent chunk of the mainframe words, obviously not all of them but you read enough PDFs and you start to pick up the vocabulary and also—
Reg: Oh yeah.
Enzo: I have a folder on my desk of all the PDFs I’ve downloaded from IBM. It’s several hundred, currently.
Reg: Oh, my goodness. That’s a lot to learn. Now one of the interesting things about doing something like this—there’s always going to be challenges and somehow those challenges sometimes become advantages. And one of the ways that you’ve actually had a challenge that you’ve turned into an advantage, you were telling me beforehand is that you’ve actually been able to work through Asperger’s to get probably even a better-quality result. Any thoughts you’d like to share about that?
Enzo: Just the message to anyone else with Asperger’s: You can do it. It’s not an insurmountable obstacle; presenting in front of a group of people isn’t an insurmountable obstacle. Neither is working with others. It can be kind of intimidating having to step outside your comfort zone—you know present, ask for help—but the results and the benefits are worth it, especially in the long run. Although we’d all like to think we all work best alone, even if you do enjoy working alone, you still do need other people because there is always going to be something you don’t know. You can either search through 10,000 pages of PDF yourself or ask for help, and help is usually faster. Even with that, people are surprisingly wonderful, especially in mainframe. You know ask for help, asking for software, asking to work with people or questions, a lot of people are really happy to show off what they’ve done and really happy to help you with your project. So if you have Asperger’s, don’t be afraid. You can do it.
Reg: Very cool. I know seeing you at SHARE recently and it was kind of neat because I had the distinct impression that everybody around you felt like they were your big brother or sister—you’re just automatically just part of the family—and it was just so neat to see how everyone was just happy to have you there. Obviously there are other aspects of the culture that one encounters, and part of those is the culture of the operating system and environment that’s implicit. I note that you mentioned Linux as being the first operating system you put on the mainframe, and I’m curious what your feeling is about the experience of Linux on the mainframe—you know, which particular hypervisor and how that contrasts with the VM as a hypervisor in VSE and maybe z/OS?
Enzo: So Linux was my first choice to put on only because I was familiar with the error codes, and I needed to debug my storage because I knew it wasn’t working, but I didn’t know what the problem was. So I knew that I knew the Linux error codes and I could work through the problem that way. But comparing hypervisors, most of my open system stuff runs under Proxmox, which is a QEMU or QEMU-based hypervisor. On the mainframe, I chose to go with VM because I wanted to learn VM’s base system, too. Obviously the most interesting difference for me was how VM is built from the ground up to be a hypervisor instead it being added on top of, like the userland utilities. You know with VM every account, everything being a virtual machine, everything, you know: there is no such thing as a single-user VM system. That was a very interesting change and it’s interesting how the mainframe has sort of been built for virtualization from the ground up. Obviously compared to the other operating systems, I’ve noticed though that the mainframe operating systems seem to be a lot more tightly integrated than on Linux, where everything is a separate module. Now obviously that has its pros and cons. I mean the pros are that everything—there’s no weird version incompatibility between different things that leave you scratching your head. Like my biggest challenge getting the mainframe set up wasn’t actually on the mainframe side, it was on the Linux side. The software I was using to create my SAN was genuinely like, awful, because the kernel version and the program version had to exactly match, and the correct versions weren’t shipped in the repositories. So it was hours of reading cryptic kernel logs to try and figure out what the problem was, and then installing the patch kernel—and then the software was still broken. So going and patching it itself—you know I just haven’t had those experiences on the mainframe so far, but on the other hand you only get one text editor, so a lot tighter integration, a lot tighter packaging of utilities, and therefore obviously less bugs but with the con of having less flexibility and less choice in getting the system set up.
Reg: Now you’re probably using XEDIT and Rexx a fair amount?
Reg: Have you had a chance to look at Zowe? I gather you’re not doing z/OS yet, so maybe you haven’t had too much Zowe exposure.
Enzo: No. Unfortunately my z/OS system is halfway finished right now. I’ve been working with IBM on this. So far I’ve gotten the customized offering driver. I haven’t gotten the server pack to install it yet. My machine only runs up to z/OS 2.2 and apparently, they’re trying to find the installation images because they don’t have them on the servers anymore because it’s out of support. I’m expecting to receive that sometime soon. TM obviously, I’m going to be getting it soon. Everyone at IBM has been really helpful in terms of getting me what I need, but I haven’t gotten it yet. When I do get it though, I have a loaner Flexcube unit from Gary Eheman at Fundamental Software. I can keep it until the end of the year for z/OS installation. After that, obviously I’m going to find another solution for CKD DASD. So when I do get that, I’m obviously going to install Zowe on that, install the other modern mainframe goodies—you know, language support and all that stuff—and start playing with it.
Reg: Well by this time you probably have a pretty good idea of things that aren’t there that you think should be there—whether or not they’re on other platforms—just ideally should be there. Do you have some things that maybe you yourself would like to innovate or you just wish somebody else would?
Enzo: Stuff directly on the mainframe—well I think that the biggest thing the mainframe platform needs right now is a hobbyist program. I know that’s not typically a feature, but IBM has a ton of really cool technology that they just won’t let go of. There’s always talk of the mainframe skill shortage, how they need more people in mainframe. You know my first ever experience with Linux is because I wanted to play Minecraft with my friends. Minecraft, actually someone did this, runs under z/OS on the mainframe. If they included a hobbyist program, I could have downloaded a z/OS emulator and been running z/OS from my Minecraft server and had that experience from when I was in 5th grade, instead of Linux. You know the outreach is done getting new people into a computer platform far before college, sometimes even before high school. It’s done when you’re in your formative years and you want to do your first cool project, or you saw an article about some awesome technology or some really cool thing that you want to do—and the mainframe is not at a shortage of cool stuff to run the platform. It’s at a shortage of people knowing about the cool stuff. Like recently this year I was at the DEF CON convention—you know the big cybersecurity conference out in Vegas—and I had the opportunity to meet with another mainframer who had been on the platform for around three years, and he didn’t know that you could run Python or Node.js on the mainframe. I was telling him about all the cool stuff they were doing and he was like wow, that’s really interesting. I thought you could only run COBOL and Java. You know like that happens because for reasons that are totally justifiable, banks don’t want developers just messing around in their production environments. But with Linux, you can just download it, slap it on a $5 computer—you know, a Raspberry Pi—and if things go wrong, even if you manage to completely fry the hardware, you’ve lost $20. I think that the biggest thing you could do for the mainframe is to allow more people to experiment and mess around with it at a young age when they don’t have parents who can accommodate an 1800-pound computer or the ability to go out and try and find something and scavenge together a hardware solution. I think getting people in early and letting them do cool stuff and play with the mainframe, create community support for all that stuff, would really help the platform a lot. Because you always have a list of features that are too small for any corporation to sell as a solution, but also really important—and this is what the Linux package management has done really well. There are a few thousand Linux package management tools that are just simple commands that allow you to do stuff like number lines in a report. You couldn’t sell that, but it’s still a really helpful feature when you need it.
Reg: Well, that is all really cool insights. I really think that’s instructive. I know we’ve had this conversation quite a long time, and it feels like it’s gone so quickly because it’s been so interesting. But I’d like to ask if there’s other things you’d especially like to share with us, or at the very least some thoughts you have about where the mainframe is at and where it should be going.
Enzo: Well obviously again, my thoughts on the hobbyist program. I would also highly recommend continuing to work on AI and on the mainframe. AI is going to be a really big part of any future on the platform and I’ve often found with distributed servers, when you have a large AI model or a large AI workload, you know it just really becomes inefficient because you can’t even run it on like a VM or whatever because it’s too big. And the mainframe really has that advantage of being a large system that can really handle those big AI workloads in a real time training and all that other stuff. So I’d continue to advise focus there. I would also advise the people working on the mainframe to not lose focus on their core technologies—like IMS and CICS are really good. You don’t want to abandon those just to chase the latest fad. Instead take that and combine it with the new stuff. Create a CICS API using Python from Node.js that allow you to use those amazing technologies that have been so powerful and run the world basically, and instead of replacing them instead allow you to modernize them. They always talk about modernizing; you know I don’t really think that should mean dumping what you have. I think that should mean—
Enzo: Use parts of what you have and improve it with modern technologies that are easier to maintain and can use some of the newer stuff. And I would also say, just a personal note, if anyone here has any DASD they don’t need anymore, I have experience shipping large items. Please contact me.
Reg: And how would you like people to contact you? Do you want them to use your email address or—?
Enzo: Yeah. I’m writing a blog actually that I’ve just started with all of the notes not only from the past five or six years of open system stuff, but also all the new stuff I’m going to be doing on mainframe. Like I said, there’s a real lack of community content and I’m hoping to remedy that by creating a ton more stuff that I’m doing personally. A lot of people are reaching out and helping me get set up with really cool enterprise software. I’m going to want to create a blog entries on that and all the other cool stuff I’m doing on the mainframe, so my blog enterpriselab.dev [[ LINK: https://enterpriselab.dev/ ]] is where all of this stuff is going to be posted, and if you want to contact me, my email is [[ LINK: [email protected] ]]. That will go straight through to my inbox.
Reg: Great. Well I’ve typed those up, so I’ll put them on the transcript as well. You were going to say, go ahead?
Enzo: I was going to say I just got home from SHARE around a week ago. SHARE was done, I think [August 27]. The first blog entry just went up today on the second of September, and I’m hoping to add around a new article every week.
Enzo: So yes, I’m going to be putting up all the cool stuff I’ve done.
Reg: Well I’m looking forward it and I’m looking forward to see you in the world of mainframe. I think you have an important career ahead of you and we’re all sort of looking at you as our little brother who's got big potential. So thank you so much for taking the time to chat with me today.
Enzo: Oh, my pleasure. It was really great getting an opportunity to chat with you as well.
Reg: So I’ll be back with another podcast next month, but in the meantime, check out the other content on TechChannel. You can also subscribe to their weekly newsletter, webinars, e-books, Solutions Directory, and more on the subscription page. I’m Reg Harbeck.
About the author