IBM VS Code IDE Extension
Software Development
Project Overview
This extension was created to help facilitate the development of a blockchain network using Hyperledger Fabric. It supports development across multiple languages, and is an open-source project available on Github.
My Contributions
During a period of 9 months I contributed from its early conception through to its main GA release. I implemented new features, fixed existing bugs and inserted utilisation metrics to help the team track the usage of each functionality. Whilst this was not my only main project within IBM, this extension was very well received and has had very high praise from both customers and the community.
Click here for a more in-depth Medium article describing the extension
IBM - Blockchain
Software Developer Intern
Jun 2018 - Jun 2019
I mostly worked back-end on the extension as there wasn't much front-end work required. One feature I created was packaging your smart contract which takes your current project, compiles your code and puts it in a ready state to be installed on your Blockchain network.
This is one of the main fundamental processes that must be taken when developing your blockchain project and so is an important must-have feature. Previously, this process could have taken 5-10 minutes and required running multiple CLI commands but, with the extension, it is accomplished in a matter of seconds, vastly improving the development experience.
One fantastic approach to development the team had was enforcing the use of both unit and integration tests for every aspect of the project. To prevent regression and the implementation of faulty code, we had to uphold a 100% test coverage metric and every test had to pass (including the ones that existed prior to your code). Through using the Mocha framework, I created automated tests for every feature or bug fix I completed. This project exposed me to automated testing for the first time, and is certainly something I advocate for when developing new projects. Below is an image of my implemented "Package a Smart Contract Project" feature being called on a generated project from the developer terminal.
By clicking "Local Fabric runtime" as shown in the gif below, you start your Docker containers which set up your environment ready for deploying your code. If the containers were already running, it would cause issues and the Local Fabric runtime would not start. My process of fixing this issue was through implementing code to ensure that all Docker containers were removed and cleaned, before running the command.
Here is a photo of the team after our GA release!