Position

DevOps Development Intern @ watsonx.gov OpenPages SaaS Team

Location

IBM Canada Lab - Markham, ON


From May 2024 - August 2025, I had the amazing opportunity to work as an Intern at the Markham, Canada IBM Lab as a DevOps Development Intern. During my time here, I worked with a wide range of technologies, cloud providers and environments throughout the coding, deployment and monitoring portions of the software lifecycle.

DevOps Development

OpenPages is a AI-driven and scalable Governance, Risk and Compliance (GRC) platform. The product is available as a SaaS service which requires a wide variety of DevOps work to ensure smooth, stable and predictable operation. Throughout my internship, I worked with several technologies across the tech stack and, more importantly, worked on automations and improvements where I applied my knowledge and understanding. I learned about several new and important innovations related to OpenShift and Kubernetes, as well as had a better

Part of the tech stack that I worked with

Part of the tech stack that I worked with

During my time at the IBM, I had the pleasure of working with the talented, global SaaS Team. Working with such an incredible team taught me a lot about taking ownership of tasks, the process of collaboration across many parties, and communicating blockers, completed tasks and questions.


Below are some of the categories of work I contributed to:

CI/CD Pipeline Automation

Containerization, Docker and OpenShift

Security & Compliance

Navigating CI/CD Pipelines & Processes

Our team primarily used IBM Cloud’s Platform Automation Toolchains to host our Continuous Integration and Continuous Delivery Pipelines. These pipelines were configured using Tekton and IBM’s internal project to standardize and facilitate pipeline creation named ‘One Pipeline’.

Tekton Pipelines

Tekton is a framework that is used to create CI/CD Pipelines. Different aspects of the CI/CD process are organized into entities like ‘Tasks’ and ‘Runs’.

Our team required the use of a pipeline that would run in our IBM Cloud environment to trigger Twistlock Scans and alert the team of any issues. This was previously done using a Travis CI Pipeline, but was to be migrated to Tekton. As part of this effort, I moved our team’s nonprod scanning pipeline over to IBM Cloud and Tekton. This required creating an image for use in the pipeline and migrating the python and bash code as well.

The pipeline itself also required access to tools and services like our GitHub repository hosting the code and tracking the team’s issues, our evidence and inventory repositories and secrets to authenticate the Twistlock service. This meant that the pipeline itself had to be integrated with IBM Cloud Secrets and the GitHub toolchain integration software as well.

Sample pipeline use case provided by the Open Source Tekton Documentation. The flow diagram used within the pipeline is similar to the setup used in IBM Cloud

Sample pipeline use case provided by the Open Source Tekton Documentation. The flow diagram used within the pipeline is similar to the setup used in IBM Cloud

Nightly Notifications

The team had set up nightly pipeline runs for our CI and CD pipelines to track and monitor the status of the code and pipelines everyday. This information was then picked up by a pipeline that would run a Python Script to publish this information in a Slack Channel. Over the first portion of my internship, I was regularly responsible for modifying and updating this pipeline to ensure that reporting was done predictably and accurately. The pipeline was built in Python, and run using a custom Tekton framework and scripts.

As pipelines and testing frameworks changed for the various microservices, the script was modified to make sure developers were aware of what step the process failed in. This was crucial for our dev branches in particular, as merged requests throughout the day may not have been tested with changes made to other microservices in certain cases.