My image

    My professional career, thus far, has been an interesting journey through numerous industrial domains including 
insurance, financial, retail, manufacturing, and numerous ISV's including a loan servicing platform and IBM i security 
products and solutions.'
 
    As a junior programmer, there was no internet.  Large enterprise midrange computers ran the show and the UI were 
derived from pigtail wired dumb terminals!  Enter the internet age and client server frameworks.  A lot changed in the 
software development space and technology began to evolve at a very rapid pace.  Development continued under waterfall 
methodology, though agile was up and coming, and midrange UI's remained loyal to the 24x80 terminal outputs.  The platform
continued to handle the enterprise wide core application processing at an incredibly reliable and secure day to day basis.  
The midrange had survived this internet evolution thanks to its reliable, secure and scalable architecture. 
 
    Fast forward to current year and the platform remains prominent among many Fortune 500 companies.  
IBM continues to enhance OS releases bringing the most modern development avenues for we developers to indulge in.  
 
    However, many companies are at a crossroad due to the large volume of technical debt on their IBM i systems.  
The systems reliable nature and backwards compatibilty with programming lanquages was a huge advantage obviousy, but at 
the same time would prove to be an issue as it rarely demanded modernization efforts to be applied to it.  
Therefore  day to day reliable core processing turned into year to year, that before we knew it turned into decade 
to decade.  Now large companies are faced with modernizing old legacy code that is greatly customized to the business 
model and operating rules, or migrate to a system that is more common to GUI.  For someone like me that has been their 
from the beginning, it is a no brainer to simply modernize the current system implementing modern standards such as moving 
business rules to the database, transforming the monolithic application layer to a MVC or 3rd tier architecture model.
 
    As a modern day developer I have great passion in re-architecting legacy code of 20-30 years ago.  I also find applying 
modern practices in new development and system integration highly rewarding.  

   The platform may have lost the UI game, but is unmatched in security and scalability and the best business class 
database and microservices server on the planet.

    


Modern Enterprise Development & Integration Experience


2016 - 2017 (Insurance - IBM i Developer)


In a developer role, worked alongside frontend java developers to help provide IBM i DB2 data to the insurance companies website. Calls to backend SQLRPGLE programs were consumed via sending json payloads and I would return the JSON response.

2018 - 2019 (Mortgage Lending Platform - R&D/Developer)


Architected/developed a complete end to end MFT (managed file transfer) framework for our hosted customers. Utilized technologies outside of native IBMi offerings such as openSSH, Linux, sftp key authentication.

See MFT product here


Participated in DB2 data warehousing project which required DB2 side custom triggers and data queues that were designed to offload database changes to a batch process to arrive at an SQL server.

2019 - 2020 (Freelance)


In the last few years I have developed an IBM i json REST API webservice framework. It leverages the Apache server and provides a way for traditional RPG/COBOL developers that do not know anything about HTTP and cross platform integration to develop small microservice type API's (webservices) and read a JSON request and simply provided a JSON response. That response can be consumed from other systems. It is more flexible and has better performance than using IWS.


This framework is currently used with a current Fortune 500 company and has been working great for them for years.


View IT Jungle Publication Here

2020 - present (Cybersecurity Software Engineer and Integrations Architect)


Currently at the cybersecurity software company I am employed, I was tasked with integrating IBM i endpoints with an enterprise cloud application offering. This offering allows companies to maintain all its systems endpoints (from linux, windows, IBM i) using our cybersecurity products.


- Wrote goLang and C code that called IBM i programs, that would be routed through the IBM i PASE environment.


- Designed to have a single C program running in PASE that would pass in a native IBM i program name along with a string of parms.


- The IBM i PASE call would return a json response back up through PASE and to the Linux fork & exec method of processing.


Our large customers could have hundreds if not thousands of different servers on different operating systems. This cloud architecture allows a variety of endpoints running on different operation systems (including IBM i) to be "plugged in" to the hub. They can quickly manage those endpoints with our security products from a single web based gui.

2020 - present


Still anticipating working with projects that integrate the IBM i with AWS, Mulesoft, and Apache Kafka & Camel.


Other interesting areas of developement and integration I have recently worked with...

* Encryption - DB2 data at rest encryption with the use of AES encryption via field procedure exit programs. - complex enterprise implementations with HA and journal processing over IFS files.


* LPM (Live Partition Mobility) - With our encryption product, we use the lpar serial# to decrypt master key so when an lpar serial# changes, it must not impact the current functionality product. For this I leverage certain exit points that fire during the process that allows us to re-encrypt the master key with the new lpar serial#. Completely transparent to the user and functionaly of the product.


* Antivirus - on demand and on access IFS file protection with AntiRansomware.


* Exit Points - tasked with a special project to better integrate cybersecurity IBM i products that share exit points. I designed and developed a solution to allow multiple exit pgms to be called on exit points including qibm_qpwf_file_serv pwfs0100/pwfs0200. - a large customer of ours runs another cybersecurity product on pwfs0200 - my solution allows that to fire and still call our exit programs on pwfs0100.





My image