Gregory Simmons
Gregory Simmons is a software engineer with PC Richard & Son. He started on the IBM i platform in 1994, graduated with a degree in Computer Information Systems in 1997, and has been working on the OS/400 and IBM i platform ever since. He has been a registered instructor with the IBM Academic Initiative since 2007, holds a COMMON Application Developer certification, and was recently acknowledged with a speaker award at POWERUp23 as well as a Level 1 Contributor badge with IBM. When he’s not trying to figure out how to speed up legacy programs, he enjoys hiking, backpacking, SCUBA diving, hunting, and fishing.
-
Guru: Cohesion First – What A Procedure Should Be Responsible For
April 6, 2026 Gregory Simmons
One of the easiest mistakes to make in procedure-driven RPG is assuming that small procedures are automatically well-designed procedures. They are not. Size and cohesion are related, but they are not the same thing. A cohesive procedure has a single, clear responsibility. It exists to answer one business question or perform one business action. When a procedure tries to do more than that, it stops being a reusable building block and starts becoming a liability.
In procedural RPG, nothing enforces this discipline. There is no compiler warning when a procedure quietly takes on a second responsibility. There is no language …
Read more -
Guru: IBM i Job Log Detective Brings Structure To Job Log Analysis In VS Code
March 9, 2026 Gregory Simmons
Remain Software has released a new Visual Studio Code extension called IBM i Job Log Detective, and it targets a pain point every IBM i developer understands: reading job logs efficiently.
In addition to its marketplace availability, IBM i Job Log Detective is open source under the MIT license and can be found on GitHub at: https://github.com/RemainSoftware/jld
Read more
There has never been anything wrong with IBM i job logs themselves. They are exhaustive, consistent, and remarkably detailed. When something fails, the job log contains the truth. The issue has always been consumption. Large QPJOBLOG files can run thousands of lines (or … -
Guru: Managing The Lifecycle Of Your Service Programs – Updates Without Chaos
February 23, 2026 Gregory Simmons
You’ve written your service programs, organized your modules, picked your activation groups, and maybe even set up a tidy binding directory. Everything seems perfect – until someone needs to update a procedure that half the shop’s programs depend on. Suddenly, that tidy structure can feel like a trap. Welcome to the reality of service program lifecycle management.
The key principle here is simple: change with care. Any update to a service program can ripple across every program bound to it. Without a strategy, you’ll find yourself fielding calls about broken reports, failed jobs, or, worst of all, subtle logic errors …
Read more -
Guru: Are Binding Directories A Shortcut Or A Source Of Chaos?
February 16, 2026 Gregory Simmons
Ask any IBM i developer about binding directories, and you will usually get one of two reactions: A grateful nod or an eye roll. For some, binding directories are a lifesaver, making compile commands cleaner and projects easier to manage. For others, they are a ticking time bomb, introducing hidden dependencies that come back to haunt you months later.
I have seen both sides. In fact, one of the worst compile-day disasters I’ve witnessed started with a well-meaning developer adding a single service program to a global binding directory. Suddenly, half the shop’s programs were linking against the wrong version …
Read more -
Guru: Service Programs And Activation Groups – Design Decisions That Matter
February 9, 2026 Gregory Simmons
If you have been writing service programs for a while, you might treat binding like flipping a light switch: write some code, compile it, bind it, done. It works – until it doesn’t. Behind the scenes, IBM i is doing a lot more than just connecting your program to a library of procedures. And if you’re not paying attention to activation groups and how you structure your service programs, you might be setting yourself up for sluggish performance or debugging nightmares down the road.
Let’s demystify what is really happening when you bind and why activation groups deserve more of …
Read more -
Guru: Binder Source Is Your Service Program’s Owner’s Manual
February 2, 2026 Gregory Simmons
If service programs are the backbone of modular RPG development, then binder source is the owner’s manual you didn’t know you needed. It’s not glamorous, but it’s the piece that ties everything together: Controlling what you export, defining your public API, and managing change over time. Yet, far too many shops treat binder source as optional – if they use it at all. That’s a mistake.
Let’s start with what binder source actually does. When you create a service program, you need to tell the system which procedures should be visible to callers. You could just use EXPORT(*ALL) and call …
Read more -
Guru: Access Client Solutions 1.1.9.11 – Security First, With Continued Investment In SQL Tooling
January 26, 2026 Gregory Simmons
Big Blue has released IBM i Access Client Solutions (ACS) version 1.1.9.11, and while the release is anchored by an important security fix, it also reflects IBM’s continued investment in the SQL tooling that has become central to day-to-day IBM i development and administration. This is not a feature-heavy update on its own, but it arrives after a series of releases that have steadily expanded the usefulness of both Run SQL Scripts and SQL Performance Center.
The primary driver for upgrading to ACS 1.1.9.11 is the remediation of CVE-2025-66516, an XML External Entity vulnerability related to how ACS processes certain …
Read more -
Guru: Taming The CRTSRVPGM Command – Options That Can Save Your Sanity
January 19, 2026 Gregory Simmons
If you have ever run CRTSRVPGM without paying attention to its parameters, you are not alone. Many developers just accept the defaults and move on, only to discover later that those defaults can introduce subtle bugs or unnecessary headaches. The command looks simple, but it is packed with options that can either make your life easier or create a ticking time bomb in your system. Let’s talk about a couple of the most important ones.
One parameter that deserves special attention is OPTION. By default, this parameter is blank, which seems harmless, but that blank value means you’re allowing duplicate …
Read more -
Guru: CRTSRVPGM Parameters That Can Save or Sink You
January 12, 2026 Gregory Simmons
It was 2 a.m., and the phone wouldn’t stop ringing. A production job had failed, and the error logs weren’t making any sense. After an hour of digging, the culprit finally revealed itself: the wrong procedure had been bound in a service program. Somehow, a silent duplicate had snuck through, and everything downstream was broken. If you’ve ever been in that situation, you know that “it compiles, it runs” is the worst mindset you can have when creating service programs. The parameters on CRTSRVPGM exist for a reason, and ignoring them can turn a simple build into a nightmare at …
Read more -
Guru: A First Look at Bob, The IBM i Assistant That’s Closer Than You Think
December 8, 2025 Gregory Simmons
I recently was granted early access to IBM’s new Project Bob, and I have been putting the Bob-IDE through its paces to understand what IBM is aiming for and what IBM i developers should expect as the offering matures. Bob is IBM’s emerging AI-powered development assistant and IDE ecosystem designed to modernize how developers work on the IBM i.
One of the first things that stands out is that the Bob-IDE is not an extension like the older WCA4i project, which was in extension form. IBM learned a lot from that experience, and those lessons led them to take a …
Read more
