Khushboo Bhatia is a full stack developer whose insatiable curiosity and desire to dig deep into a code base to identify a critical problem led to making her first open source contribution. She started her career at VMware as a R&D intern four years ago. Today Khushboo is the maintainer of StackStorm and a member of the VMC SRE Automation platform team, a part of the Cloud Infrastructure Business Group (CIBG).
The best way to observe a fish is to become a fish
Khushboo’s desire to tinker, problem-solve and build an end solution with code came from looking over her sibling’s shoulder.
My elder brother was majoring in computer science in college while I was in high school and watching him build games and mobile apps with code resonated with me. I wanted to emulate the logical approach of bringing ideas to fruition, breaking down issues into small, separate parts and figuring out how each affected the other, then work through the fixes to the end solution. So, I too pursued a computer science (and engineering) degree and got interested in open source and envisioned kicking off my career as an open source developer for a prominent tech company, immersed in everything code and being part of a collaborative community where its members solve real-world problems.
In dreams begin responsibilities
The potential to deepen her understanding of coding and tackling complex programming tasks in Python and Java, clinched Khushboo’s full time employment for the VMC SRE Automation platform team. The team is responsible for reducing operation toil by providing tools that enable operators to visualize service state and automate any task on any appliance at any time. An integral part of VMC SRE Automation’s service is working with StackStorm, an open source event-driven automation platform that automates tasks using actions and workflows and is trusted by enterprises, such as Cisco, NASA, Netflix, Target and Pearson. Khushboo defines StackStorm in her own words:
StackStorm is an “if this, then that” framework that catches events and triggers actions or workflows. Actions are simple scripts that can be written in any language and workflows tie multiple actions together. There are multiple components involved in StackStorm like sensors that monitor external events, triggers that are generated by sensors, rules that are evaluated against a trigger, actions that are associated with a rule, policies that enforce control on the action execution, etc. All of this makes StackStorm a great tool for auto-diagnosis and auto-remediations.
The problem contains the solution
In 2021, between Khushboo’s first and second promotions at VMware (she’s been promoted three times in her brief tenure), she made her first contribution to StackStorm.
Our team was migrating Remediation and Troubleshooting Service (RTS) to use StackStorm internally. We were seeing 1 million script executions on average per month. As we were onboarding multiple teams and multiple cloud providers to use RTS, we expected the usage to increase further in coming months, and reliability and availability of our service became the utmost priority. Sometime after the migration, we started encountering issues because of the scale at which we were using StackStorm. One such P0 blocker (top priority) issue came in our queue and disrupted the entire service for five to six hours. This gave me an opportunity to dig deep into StackStorm code base to identify the issue and once the Root Cause Analysis (RCA) was complete, I worked on fixing the issue and started with my first contribution.
Genuine learning is impossible without curiosity
There are multiple services inside StackStorm and Khushboo began exploring how each service worked and how they were stitched together. This curiosity led her to looking into open issues and contributing to bug fixes and new features like handling graceful shutdown.
Of course, part of the motivation behind these contributions was to keep our service up and running to meet our service level objectives (SLOs). Plus, as our service evolved, new requirements and feature request issues would come up, and I began contributing to the community on a regular basis.
Motivation is what gets you started
Khushboo’s managers and a senior member of the StackStorm community encouraged her to remain active in the project and guided her on the path to fulfilling the requirements to becoming a good maintainer. The criteria include the following:
- Being proactive in the community Slack channel and helping troubleshoot issues. You may not have answers to all the problems, but you can help others by sharing the knowledge you do have or providing the name of the person who might know the solution.
- Reaching out to maintainers in the community to get more pointers on your pull request or feature request. Before beginning the process of merging new code changes, you can receive valuable feedback from other maintainers that you can include in your implementation.
- Understanding the core code base as you contribute. This will help you review pull requests raised by other contributors and provide quality reviews. Also, understanding the core code base will help you contribute to more complex features and bug fixes.
- Following the development process established by the project’s community. For example, ensure your changes have good test cases and test coverage, provide a detailed description on why a change is needed, follow quality coding standards, etc.
- Demonstrating good technical knowledge, a solid understanding of the project and competence with git and the GitHub workflow. These requirements feed into your ability to improve the open source project you’re working on.
- Respecting the Code of Conduct to foster a kind, inclusive, cooperative and harassment-free community.
Habit is what keeps you going
A good maintainer not only incorporates many of the above requirements in an exceptionally organized manner, but they also ensure the continued healthy development of their project and care about their community.
In my role as maintainer, I focus on facilitating these tasks and more to keep StackStorm thriving:
- Articulating the project’s high level needs on an ongoing basis
- Delegating and leveraging team members’ strengths
- Actively reviewing pull requests
- Respecting and enforcing the project’s quality standards and contribution guidelines
- Administering the project’s issues, code review workflow and release lifecycle
- Managing convergence with the project’s goals
- Participating and engaging in technical discussions with the community on Slack
- Encouraging teamwork and making small contributions that allow disparate parts of the community to function together as a unified whole
- Mentoring new contributors
Leadership and learning are indispensable to each other
Success in open source comes down to how well you can communicate, manage and encourage a community, while focusing on the mission of the project.
Other keys to my success are making an impact in my work every day and remaining a curious learner. For instance, I stay on top of trends by reading online tech journals, which helps me evaluate our system design and improve wherever we can.