Key Responsibilities and Required Skills for an RPG Programmer
💰 $75,000 - $130,000
🎯 Role Definition
An RPG Programmer is a specialized software developer who serves as a custodian and innovator for an organization's core business logic, which often resides on the robust IBM i (formerly AS/400) platform. At the heart of this role is the mastery of the RPG language (including modern ILE and Free Format versions) to design, develop, implement, and maintain the essential applications that power critical business functions like finance, logistics, manufacturing, and inventory management. This professional is not just a coder but a problem-solver, bridging the gap between legacy stability and modern business requirements, ensuring the seamless, reliable, and efficient operation of enterprise-level systems.
📈 Career Progression
Typical Career Path
Entry Point From:
- Junior Programmer / Associate Developer
- Computer Science or Information Systems Graduate (with relevant coursework)
- Application Support Specialist (with programming aptitude)
Advancement To:
- Senior RPG Programmer / Lead Developer
- Systems Analyst / Business Systems Analyst
- IT Project Manager
- Application Architect (specializing in IBM i)
Lateral Moves:
- Quality Assurance (QA) Analyst
- Business Intelligence (BI) Developer
- Database Administrator (DB2/400)
Core Responsibilities
Primary Functions
- Design, code, and test new applications and enhancements using modern ILE RPG, RPG FREE, and CL on the IBM i platform to meet evolving business needs.
- Perform comprehensive analysis, maintenance, and modification of existing RPG and CL programs, ensuring the continued stability and functionality of critical legacy systems.
- Develop and maintain complex embedded SQL and native I/O routines within RPG programs for efficient data access and manipulation on the DB2 for i database.
- Create and modify interactive screen programs and batch processes using DDS, Display Files, and Subfiles to provide intuitive user interfaces and automate backend operations.
- Troubleshoot, debug, and resolve complex production issues in a timely and efficient manner, minimizing downtime and impact on business operations.
- Translate business requirements and functional specifications into detailed technical designs and program specifications for development.
- Conduct thorough unit testing, system integration testing, and support user acceptance testing (UAT) to ensure the delivery of high-quality, error-free code.
- Write and maintain clear, concise, and comprehensive technical documentation for all developed code, system modifications, and processes.
- Collaborate closely with Business Analysts, Project Managers, and end-users to understand requirements, provide technical insights, and deliver effective solutions.
- Utilize change management software (like Aldon or Turnover) and adhere to established SDLC processes for code promotion from development to production environments.
- Optimize application and query performance by analyzing program logic, database access paths, and system jobs.
- Develop and maintain interfaces and data exchange processes between the IBM i platform and other internal or external systems.
- Participate in on-call rotations to provide after-hours support for critical system incidents and batch job failures.
- Contribute to modernization initiatives, such as developing web services (REST/SOAP) on IBM i to expose business logic to other applications.
Secondary Functions
- Support ad-hoc data requests and exploratory data analysis by writing complex SQL queries against the DB2/400 database.
- Contribute to the organization's data strategy and roadmap, particularly concerning data residing on the IBM i platform.
- Mentor junior developers and share expertise on RPG programming best practices, coding standards, and platform nuances.
- Collaborate with business units to translate data needs into engineering requirements for reporting and analytics.
- Participate in sprint planning, daily stand-ups, and other agile ceremonies as part of the development team.
- Evaluate and recommend new tools, technologies, and techniques for improving development efficiency and application performance on the IBM i.
- Assist in system administration tasks, such as managing user profiles, monitoring system performance, and applying software updates (PTFs).
Required Skills & Competencies
Hard Skills (Technical)
- Advanced RPG Programming: Deep proficiency in ILE RPG and RPG Free-Form, with experience in older versions (RPG/400, RPG III/IV) for maintaining legacy code.
- Control Language (CL): Strong command of CL programming for job control, system automation, and scripting.
- DB2 for i & SQL: Expertise in database design, data modeling, and writing complex, efficient SQL queries, including embedded SQL in RPG (SQLRPGLE).
- IBM i Platform: In-depth knowledge of the IBM i (AS/400, iSeries) operating system, including its architecture, work management, and security concepts.
- Development Tools: Hands-on experience with IBM Rational Developer for i (RDi) or similar modern IDEs, as well as traditional tools like PDM and SEU.
- Data Description Specifications (DDS): Skill in creating and maintaining Physical Files, Logical Files, Display Files, and Printer Files using DDS.
- ILE Concepts: Solid understanding of the Integrated Language Environment (ILE), including Service Programs, Modules, and Binder Language.
- Web Services & APIs: Experience with creating or consuming REST/SOAP APIs on the IBM i platform is a significant plus.
- Change Management Tools: Familiarity with source control and change management systems like Aldon, Turnover, or Git.
Soft Skills
- Analytical & Problem-Solving: Exceptional ability to analyze complex business problems, diagnose issues in legacy code, and devise practical, effective solutions.
- Communication: Excellent verbal and written communication skills to clearly articulate technical concepts to both technical and non-technical stakeholders.
- Attention to Detail: Meticulous approach to coding, testing, and documentation to ensure accuracy and system integrity.
- Collaboration & Teamwork: A proven ability to work effectively within a team environment, sharing knowledge and contributing to a collective goal.
- Adaptability: Willingness to learn new technologies and adapt to modern development practices while working with established legacy systems.
Education & Experience
Educational Background
Minimum Education:
- Associate's degree in a relevant technical field or equivalent professional experience.
Preferred Education:
- Bachelor's degree in Computer Science, Information Systems, or a related discipline.
Relevant Fields of Study:
- Computer Science
- Software Engineering
- Management Information Systems
Experience Requirements
Typical Experience Range: 3-10+ years of professional experience in application development on the IBM i (AS/400) platform.
Preferred: 5+ years of dedicated experience in an RPG-focused development role, with a demonstrated history of working on both maintenance and new development projects in a corporate environment.