C and C++ Journey
I started commercial programming in C and C++ when one great IBM colleague affectionately called it "C Double Plus" back in the 1980s. At home, I dabbled using what I think was a Microsoft compiler, later moving on to the unforgettable Turbo C. To be honest, back then I spent more of my time with Assembly and BASIC—languages that didn't mind if you bent the rules a bit.
Things got serious in 1995 when I joined IBM in New Zealand. That's where C++ and I really became an item. We were working on a major transition—moving a green screen application to a shiny new client/server solution that could run on OS/2 or Windows NT. IBM had just released VisualAge, a C++ compiler that came bundled with its own take on MFC-style libraries. It ran on Windows, OS/2, and—believe it or not—even the AS/400. That's right: C++ on the AS/400. Yes, it was possible. No, it wasn't quick.

Accessing the AS/400 meant using either a "dumb" terminal or installing IBM Personal Communications from a stack of floppy disks tall enough to qualify as office décor. I've been tempted to try installing it again for the nostalgia—but usually decide golf is a better use of my time. I think one of the floppies was labeled "confidential." What secrets did it hold? Access keys? Hidden features? The location of Jimmy Hoffa? We may never know.
"C and C Double Plus have been lifelong companions—grumpy, elegant, quirky, powerful. Kind of like a classic car you still enjoy taking out for a spin, just to hear the engine purr (or scream, depending on the pointer arithmetic)."
Cross-Platform Development
One of the things I loved most was getting all these systems to talk to each other. We had Windows NT, AIX running CICS2 with a DB2 database, and C++ applications on the AS/400. It was like a symphony of systems—if the symphony occasionally exploded and required overnight compiles.
Speaking of which, compiling our project on the AS/400 took ages. Kicking off a build was a "set it and go home" operation—ideal if you enjoyed suspense and unexplained crashes.
Working at IBM
Working at IBM also meant dealing with real power—like, "trip-the-breakers" power. And since we were targeting both OS/2 and Windows, we avoided using the Windows Registry for configuration. Instead, we opted for environment variables. Seemed clever—until we hit a snag: exporting over 32K of them caused Windows to throw a BSOD tantrum. Being IBM, we escalated it directly to Microsoft. Two days later, we had a patch from Mr. Gates himself. That's the kind of service you get when your name starts with "I" and ends in "BM."

I'm probably one of the few people who have written C++ on an AS/400. And yes, I've also used RPG IV ILE, and even wrote a little assembly for the platform. I might not remember syntax details (I'm an F4 key fan when it comes to prompts), but I never forget where to find the answers. For what it's worth, if someone ever asks you in an interview "What position do you put an 'A' for allowing addition to a file in the F-Spec?"—the answer is position 66. You're welcome.

Years later, around 2000 (when COVID was just a twinkle in a virus's eye), I found myself helping a customer migrate off J.D. Edwards—a financial system running on, you guessed it, an AS/400. I hadn't touched one in a while, but the key sequences came back like muscle memory. I could still navigate the emulator like it was 1995.
Recent C/C++ Work
These days, I still turn to C/C++ when the situation calls for it. I've contributed to the Kodi project (specifically the pvr.iptvsimple plugin), and most of my electronics work was done in C/C++—at least until Rust came along with its beautiful Hardware Abstraction Layers.