Meet the Adobe I/O Team: Software Development Engineer Sangeetha Krishnan on Scaling Adobe I/O Events
Sangeetha Krishnan is one of the founding members of Adobe I/O’s Bangalore team and has contributed to the development of Adobe I/O Events, specifically Adobe Analytics Trigger events. We caught up with her to find out more about her career path, how she helps scale I/O Events and what the tech scene is like in India.
How did you get started in the industry, and what’s your career path at Adobe been like?
Adobe is the first company I worked at, and it’s where I started my career. Prior to that I was pursuing my Masters in Computer Science at the Indian Institute of Technology, Delhi. I got selected for Adobe through campus placements.
For a year I worked at the Noida office of Adobe, where we created a library for face detection and recognition that was used in Adobe Photoshop and Lightroom. After a year I decided to move to Bangalore, which is when I became part of the Adobe I/O team.
Adobe I/O Events has been a very exciting project to work on. We expose various events published by Adobe services, so that partners, independent software vendors, and customers can subscribe and build apps that react to these events. These in turn kick off other workflows, which call Adobe APIs or execute serverless code I/O Events is incredible because it allows you to deliver targeted, personalized experiences in near-real time. It helps our partners transform the way they do business and allows them to make more informed decisions backed by data.
My major contribution was setting up the Analytics Triggers workflow. Triggers help marketers identify, define and monitor key consumer behaviours. Partners and customers can configure a trigger to fire an event when visitors to their website perform certain actions, for example when they make a purchase, or view products but don’t add anything to the cart. They can subscribe to these events in order to create a personalised experience for their visitors, or take near real-time actions in response to a visitor’s behaviour, like converting an abandoned cart into a successful purchase or detecting fraudulent transactions.
I have been at Adobe for three years now, and the learning curve has been incredible. Each new project has helped me develop new cutting-edge industry skills in, but not limited to, machine learning, distributed streaming platform Kafka, and containerization using Docker.
Can you tell us about a technical hurdle that you worked on solving?
One of the challenges we faced was scaling I/O Events to handle about 2.5 to 4 million messages per second arising from trigger events. We faced huge lags on account of this, and had to figure out a way to optimize the system to the best possible extent. We had several brainstorming sessions on possible ways to handle large volumes.
Not all messages arriving are useful. Those that do not have any subscriptions are dropped off in the initial components. So one way we could optimize was to filter at source. We worked with the Experience Cloud team to enable this, as they are the producers of these events. We then built an in-memory cache to reduce network hops and look-up times for the faster processing of messages. We also increased the number of containers for handling these requests. All these put together helped build a robust system capable of handling large volumes.
What are you currently most excited about in your work?
I live by a saying my school teacher once said, “No tree can grow without daring the lightning!” I love new challenges, and every new task as part of I/O Events has been challenging and exciting.
Currently, I am very excited about integrating a new project built on top of Kafka Streams developed by the Experience Cloud Platform team along with Adobe I/O Events. It opens doors to many event types and several use cases. Once this project is in place, it should greatly improve the performance and event processing time and also allow easy onboarding of new event providers.
In addition to that, I really enjoy having enriching discussions with my teammates who have been in the industry for many years. Some of them have been mentors to me, and I learn a lot from their experiences.
What’s the tech scene in India like?
The tech scene in India has really heated up in the past 10 years, with companies vying for the best talent in the country and challenging them with innovative, home-grown projects in the areas of AI, ML, Blockchain, big data, FinTech, CloudTech, and IoT to name but a few.
There is absolutely no dearth of innovation in India right now, and I feel it’s a great time to be an engineer here. The government is also playing a pivotal role in encouraging innovation in India through initiatives like the Digital India campaign. There is also a lot of confidence among venture capitalists to invest and guide startups in India.
Gone are the days when India was thought to be mostly responsible for back-end office maintenance. On the contrary, right now many of the projects are developed from scratch in India, which has created great opportunities for Indian engineers. This can be said for Adobe and for other multinational tech companies as well.
What’s the best piece of advice you’ve received in your career?
It’s always important to understand the business impact of the project you are working on. Get answers to questions like ‘what drove the need for this project?’ and ‘who are our customers and what will they use this for?’. Having a clear understanding of these basics, and always keeping the big picture in mind, helps you build a robust system, anticipate workloads, and drive the development of new features, which leads to innovation.
I’ve had several conversations with my manager and product manager about the customers enquiring about I/O Events, and their use cases. This has helped me understand the impact of my work on the overall growth of Adobe and has motivated me to put my best into what I do. In the end, it’s always about reinventing yourself and challenging your limits. Have fun, and love what you do!