“CENGN gave me the opportunity to grow into a leading contributor…” 
– Raymond Maika

Transitioning from traditional IT to discovering the potential of cutting-edge automation and software-defined networking (SDN) is no easy task. This transition takes careful observation and understanding at a pace that is custom to few. One of CENGN’s newest hire’s and former student, Raymond Maika, has made this shift, taking mere days to become a puppeteering master and one of the main contributors to our innovative multi-vendor platform and OpenStack environment.

Last year, Raymond was a full-time student studying software engineering and computer science at Carleton University while balancing part-time employment at CENGN. Now Raymond is a full-time employee and a major contributor in our day-to-day operations. Raymond began his journey configuring our initial IT infrastructure, which includes our Mitel Communications System, JIRA (a project management tool), Confluence (a content management tool), Salesforce (a CRM database) and synchronizing all of this enterprise software together, while providing ongoing IT support.

In early 2015, we executed our first cross-Canada roadshow, to raise awareness of our support for Canadian Small-to-Medium Enterprises (SMEs) and encourage project submission through our commercialization acceleration program. Raymond was instrumental in seamlessly integrating and embedding the online submission and evaluation software into our website, allowing CENGN to quickly connect with Canada’s most innovative companies. The online submission process is powered by Canadian developed technology called FluidReview.  (learn more about our partnership with Fluidware through our success story: https://www.cengn.ca/cengn-uses-fluidreview-to-connect-with-canadas-most-innovative-companies/).

Raymond has been integral in helping CENGN’s engineering team balance the numerous ongoing commercialization acceleration Proof-of-Concepts (PoCs) that require both lab and technical expertise. He has done this by automating the process for reviewing code, so that when there are patches that need to be made, the code is inputted, revised and pushed through the production environment.

CENGN operates in a DevOps environment and Raymond has truly embraced this concept.  Recently, during a regular security audit with CENGN member, EWA Canada, potential risks were highlighted.   In response to this, Raymond automated the steps that would allow CENGN to restart, recheck and automatically inject a patch and reset the system. This has had great implications on our network security, for example, if someone tried to exploit CENGN’s networks, the system is set to automatically protect against this by detecting and patching any vulnerabilities.

In May of 2015, Raymond discovered and created a patch to repair a bug in a Puppetlabs module (IT automation software). This represented CENGN’s first technical contribution *of many to come* to the open source community. How did Raymond discover and patch the bug? Well, Puppet automation is broken up into functional chunks of code (groups of code to provide a specific set of functionality) called modules. A significant portion of these modules are released by either individuals or corporations as open source code, so that it can be used/improved/added to by the community. Puppetlabs, as the creators and curators of Puppet, manage several such modules that are open to community use and contributions.

The most common of these modules is called puppetlabs-stdlib (Standard Library). It provides a suite of functions for manipulating data and other functions and types that extend the base installation of Puppet. One such item in the stdlib module is the “file_line” resource type. There was a feature of that type that was meant to allow users to manage multiple instances of a single line in a file that had a bug. When using another feature of that type, it rendered the multiple line feature inactive. Raymond wrote a patch that extended the feature for managing multiple lines to work in this use case, and accompanying tests to ensure that the patch was working as intended.

Check out this link to the actual patch on Github!