GridGain (2017 till now) - Frontend developer
GridGain Nebula
GridGain SaaS, allows to provision, manage and monitor GridGain and Apache Ignite clusters.
Highlights
- Architected the Angular application from scratch, maintained and grew it ever since. New developers did not have much trouble joining the project.
- Designed and implemented a framework for highly customizeable monitoring dashboards a-la Grafana. The framework decouples dashboard management and individual widgets, making it easy to add new widgets using well-defined interfaces. I authored several such widgets, which involved charting (Chart.js), grids (AgGrid) and real-time data sources.
- Implemented a networking layer for the frontend app to communicate with a GridGain cluster over a custom RPC protocol based on WebSockets and STOMP.
- Proposed a generic way to monitor and handle long running cluster operations, which was implemented later by the backend team. I try to get insight into every part of the project I'm working on, even if my expterise lies elsewhere.
- Ensured test coverage stayed at high level, both for unit (Jasmine) and E2E (TestCafe) tests. Authored lots of tests myself.
- Implemented a Node.js-based tool to mock complex backend infrastructure, the tool was used for rapid UI development and in E2E tests via a TestCafe adapter. This required for me to learn low-level WebSocket and STOMP details. The tool exposes an easy to use public API so other developers don't have to understand all the low-level details.
- Delivered features on time as a part of cross-functional team. Participated in design of most of the project aspects. Sometimes, I had to manage the frontend team, which included transforming vague feature descriptions from higher ups into concrete Jira tasks and epics, and planning the execution of those.
- Did lots of code reviews. During reviews, I prefer to inspect if the implementation matches the requirements, how well the code is designed, the ease of supporting it later, how comprehensive the code coverage is; I don't care about minutae like formatting, this should be handled by automatic code formatting, which I also introduced to the project (Prettier). My collegues highly regard code reviews I do.
- Due to complex nature of data, most of features used a different mix of REST/STOMP/RPC, this had to be factored into all steps the of development process - what are UI limitations, how to present the data better, what are available tools, how to structure backend endpoints - I took a very active role in all of these activities.
- As a part of the team, participated in process adjustments, quite a few of my suggestions solved various pain points.
Apache Ignite Control Center
A previous generation of Apache Ignite and GridGain monitoring and management solution, superseded by GridGain nebula.
Highlights:
- When I joined the project (written in Angular.js), it had a structure that did not scale and was hard to maintain. To address this, I've re-architected it to use modern approaches like components, introduced E2E testing, RxJS for real time data and helped team mates to learn these new tools and approaches.
- The project was open-sourced under the Apache Software Foundation. I am an ASF contributor.