Freelance software analysis, design, development, data integration and software implementation.

You can also find me on LinkedIn


I am an experienced, self-motivated and business oriented Analyst/Programmer and software developer focused on delivering effective solutions to enhance business processes.

I have over 30 years of experience as a developer and have very strong RPG, ILE and SQL skills along with a great deal of experience in ERP, EDI, data integration and software implementation. I also have the flexibility and the ability to quickly understand new technologies and to see where they can best be incorporated into existing processes to provide real business benefits.

I have designed EDI mappings and developed interfaces to integrate this and other data into various ERP systems. I have also extended and enhanced existing frameworks and interfaces to ensure timely message processing and remove bottlenecks.

I have a strong track record in application modernisation, interface design and implementation across heterogeneous environments. I am always interested in migration projects, as well as understanding how new technologies can be leveraged to support existing business requirements.

I am a strong communicator and am able to combine the ability to understand business needs with the flexibility and adaptability to solve the technical problems that impact business processes.


New Links

IBM recently completed the migration of their online documentation from the IBM Knowledge Center to IBM Documentation. The tile based navigation takes a bit of getting used to, but it’s not too bad once you do. But if you’re in a hurry, all of the IBM i documentation starts here.

Searching strings in SQL with LOCATE_IN_STRING

I’ve been somewhat remiss in maintaining this blog over the past few months, but the LOCATE_IN_STRING scalar function really is worth mentioning. The LOCATE_IN_STRING function returns the starting position of a string (called the search-string) within another string (called the source-string). If the search-string is not found and neither argument is null, the result is …