Software Engineering Intern IBM January 2016 – May 2017
After I returned to IBM, my first project was to help develop a metric reporting service for my squad’s auto-scaling cloud services. Second, I co-developed a continuous-integration Jenkins job generator that saves our team many hours of time by ensuring the pipeline is consistent and easy to use. Lastly, I developed a Python library that increased the speed of one of our most critical services by at least 8 times.
Throughout my work at IBM, I helped write and maintain a data collection application that reports metrics on IBM Bluemix Autoscaling services.
I also co-developed our current continuous integration pipelines. I prepared the pipeline deployment jobs with end-to-end tests by writing a Jenkins job generator. All of our services have switched to using the generated jobs, automatically building our app images, and deploying those apps on successful builds. This saves us hours of time each week spent digging through Jenkins jobs looking for bugs and hours of time training newcomers how to use our system.
In my last few months I wrote a Message Hub library for Python clients to support IBM’s Kafka messaging service. This library increased the speed of one our most important services by at least 8 times. In this client, I increased performance over our old client by wrapping a Kafka C library in Python, control resources with context managers to ensure proper cleanup, and provide a simpler API for our Python apps to connect to. In this project, I learned how to develop Python libraries for installation into other projects, wrap lower-level languages in Python, and strategies for increasing the performance of our application services.