For my third internship, I returned to FNBO as a Software Engineer within their Core Services team. I worked with a team of developers that all focused on the bank's mainframe system, which included various legacy applications and databases. My primary focus was to help modernize the system while also learning how to work in a completely alien world to a modern software engineer.
The mainframe system is old, really old. I frequently opened files that were written in the early 1980s, which is about twenty years older than I am.
Recognizing the system's legacy and how most schools don't teach COBOL or JCL courses, my team was focused on modernizing the system via GitLab and CI/CD practices. This ensured that new developers wouldn't have to use outdated technologies that they were unfamiliar with.
This was done by creating environments that used IBM Z Open Editor ↗ within VSCode which allowed us to develop locally, in a modern IDE, push into a GitLab code repository, and collaborate on files.
In order to effectively develop our CI/CD pipelines and modernize our processes, I had to become a proficient COBOL developer.
I created several programs that focused on reading in customer credit card transactions, manipulating the data, and writing it back out to a report file, which is what the mainframe is best at.
While this internship wasn't exactly on the cutting edge of technology, I gained invaluable experience in learning how to adapt to new languages. I have been able to take the strategies I formulated when working with COBOL and learn myriad of other languages and tools. I truly feel like I can teach myself anything.