Today was my last day at Citrix. An eventful journey of three and a half years finally comes to an end. Amidst all the formalities to complete, people to meet, knowledge transferring sessions to be delivered, I never had the chance this week to reflect on the moment. So I thought about writing down what’s on my mind before signing off for the day.
It was July 9, 2012. I joined Citrix R&D India Pvt Ltd office at Bangalore. There were 4 other friends from my college who joined with me. Kanishka, Souvik, Rishabh and Priyadarshi. I still remember the first diary that I wrote on that day. I was assigned to Receiver and End User Services (REUS) group, reporting to Maharajan Arunachalam. On my offer letter it was mentioned that I’ll be reporting to Vani Sharma. I was very excited. Joining a company fresh out of college is a different experience altogether, we lose the innocence and excitement as we age. I cherish those early days, brimming with enthusiasm, filled with joy, hungry for challenges.
We started off with few introductory sessions about the company and what it does. Virtualization, Cloud, Mobility ... I was flooded with tech jargons. Every day I used to come back and read on the web about the terms learnt that day.
To engage the new joinees, Citrix organized a geek camp. During this geek camp I met few folks who remained friends even till today. I met Pradeep Gangishetty, P. Ravi Sagar, Monis Majeed, Anusha Bilgi, Harshal Gupta, Sumit Mishra and of course Rishabh Jain. Our mentor Nishant Jain was an amazing guy, one of the coolest and sharpest person I have seen in Citrix. We were the joint winner for the geek camp.
People say Bengalis form a group everywhere they went. So in Citrix also we had our own small Bengali group. Kaushik Bhattacharya was our leader, there were Subhajit Mandal (pursuing PhD in US now), Subhranshu Mandal (pursuing PhD at IITKgp), Angshuman Karmakar (PhD in Belgium), Soumyajitda, Soumajitda, Sayantan Mukherjee (PhD IISc), Prasenjit Karmakar (PhD IISc), Debopriyo Ghosh, Rajarshi Biswas and Souvik Mitra (now at Flipkart). I still miss the “adda” (bengali chitchat) we used to have at the terrace.
My first few months at Citrix mostly spent watching Citrix Synergy videos and reading about Citrix products (XenDesktop, XenApp, Netscaler). In Maha’s team along with me there were Himanshu, Jaydeep (Now at Ola), Ravinder, Ankit (Now at Ola) and Ketul (now at Housing). I interacted most with Ankit and Ketul. Ketul was a funny guy, he taught me different ways to extract money from Citrix. He openly claimed his morals were not that high and the only thing he cared about was money.
I got assigned some actual work when I moved to Suresh’s org from Vani’s. My current manager Vineet introduced me to my then manager Mohammad Yasir, who eventually proved to be one of the best teachers I ever had. In Yasir’s team, I met a lot of new people. Sagar Thirumala was my guide and colleague on the same project. I met Ashish Goyal, Krishna Kumar, Anand Kummur, Kiran Kumar, Rohan Kapoor, Yagnasri Alla, Vipin Aravind. Sagar became my best buddy in Citrix and he still continues to be so.
Me and Sagar started working on a project called WorxMail, an enterprise email application delivered as part of the Citrix XenMobile solutions suite. We took the android open source code for email, calendar and contacts and integrated that code to our need into a single application. During first few months of WorxMail, I worked with some of the sharpest people in Citrix. Sagar himself, Ashish, Vikas Nambiar (now he is in Citrix Ft Lauderdale office) and Arun Krishnan (now in Myntra). I learnt a hell lot of things about android and the overall SDLC (Software Development Life Cycle) during the first release of WorxMail (”Ares”).
After Ares, the management focus shifted to WorxHome more. Zenprise got acquired in between and a lot of org change happened. I still remained reporting to Yasir. Yasir was busy during this time in WorxHome work along with Kiran, Rohan and Yagna, that he left the responsibility of WorxMail solely to me and Sagar. We worked a bunch of new features this time. Some of which still remain to be part of the WorxMail codebase. I worked on Rich Text Editor, Simplified Account Configuration, Fast join and dial in functionalities for WorxMail “Nike” release. Yasir was impressed with the pace of work and the authority I had over my components.
I remember one incident that happened just before Citrix Synergy in the year 2013. For Synergy we had show to show a custom launch screen UI for WorxMail. For some reason Sagar was unavailable at that time. Suresh Mathew John took a risk and asked me to work on that screen along with Nick Yeh, a new designer who also joined at that time. Me and Nick worked along and the final prototype was demoed live on synergy by Brad Pederson (Now at DocuSign), the then Citrix Chief Demo Officer. Suresh was more than impressed with this and he talked about this every time he to India after that.
Nike was a huge release for WorxMail. I had the pleasure of working with two product managers, Bharath Rangarajan and Chetan Jog, at that time. The fast join and dial in feature was the brainchild of Bharath and we designed it as an edge a competition called MobileDay. Bharath used fast join extensively and his feedback made the feature more user-friendly and more robust.
Following Nike, we had a smaller release called “Kratos”. I worked on a feature called MeetingResponse, which still remains one my favorite works on WorxMail. During this feature development, I grew strong bonds with the developers working iOS Calendar, Sandeep Agarwal and Anil Kumar Telaich. We spent a lot of time analyzing the exchange protocols, the google client code, the exchange server code. It was an amazing learning experience.
After “Kratos”, Yasir assigned me the responsibility of entire calendar codebase for WorxMail. Me and Sagar had to do complete UX overhaul of the app for WorxMail “Artemis” release. Yasir was initially sceptical with the volume of work that was there and the experience I had. But he trusted me. Artemis almost killed us. We faced a deluge of bugs. We made changes that we were not very sure of. But we had to make changes as early as possible. During this time we had a new member in our team, Ankit Goel. Ankit was new at that time, so me and Sagar were mostly at the fire-fighting end. We shipped Artemis successfully and it proved to be one of primary releases that gave XenMobile sales a great boost. WorxMail theme color became purple from blue officially.
Following Artemis I had several meetings with Yasir about the number of bugs we had in calendar and how we should tackle them. Yasir defended me always from the QA folks but he himself knew that the product was not stable and we couldn’t continue developing features on top of it. I proposed writing unit tests, that’s the only solution I could find. Yasir told me that it was not an easy task. In the past both Sagar and Vikas had tried to the same unsuccessfully. Yasir could not risk allocating developer time for an uncertain project. He asked me to integrated AOSP unit test code into our project and if I could do that he would push to allocate time for unit testing.
It was a challenging few weeks. But together me and Sagar were able to integrate about 600 AOSP tests to our main code. We researched extensively about code coverage and settled on Emma for WorxMail. We were ready to integrate the side-project into our build system. By the time we were working on this unit test project, our build team moved WorxMail build system from Ant to Gradle. We had to change also. So we moved to Jacoco from Emma for code coverage and that still remains to be the standard in WorxMail. We ended up with 25% method coverage after 4 months’ of effort. Yasir was ecstatic.
We released Perseus, Avatar and Beetlejuice successfully, by that time I had become much familiar with the WorxMail codebase. I asked Yasir for a more challenging project and Yasir gave one. S/Mime - Secure Mime protocol for mail. The project was being worked upon on iOS WorxMail for over a year by three developers - Udaya Kiran from Bangalore (who became 2nd best mentor after Yasir for me, I learnt a lot from Udaya in a very short span of time), Valentin Balaschenko and Christian Bau from UK security team. For android I had to port the iOS code in less than 3 months. So I was on it. By the time Sagar had moved to the Santa Clara office so I had to work on this completely on my own.
I worked very hard for those three months (April to June 2015). I had to understand Objective C to get iOS code, learn NDK to write native code for integrating OpenSSL with WorxMail java code. The challenges stretched my limits to extreme ends. I kept on working day in and day out without affirmative results. Just experimenting, playing with code. Then Yasir came to the rescue. He discovered the source code for the Google’s Conscrypt project which was doing similar things that we wanted to achieve. Me and Yasir integrated that source code in a week, my knowledge of JNI and iOS codebase and Yasir’s knowledge of design patterns came in handy. I went for a couple of weeks holiday and Yasir asked if I could complete the remaining from home. We declared S/Mime feature complete by the end of that two weeks.
Yasir declared that he was leaving Citrix. It was a heart-breaking news for me. I couldn’t imagine something like that even in my worst nightmare. I think that incident changed me a lot. It made me more strong and made more independent. His departure was a huge loss for the entire group but I admired his choice. Yasir will remain to be one of the best teachers I ever had, I am mentioning this twice here. But I am not shy of uttering that a thousand times, the best teacher ever.
After Yasir’s departure my role changed drastically within Citrix. I became the only person with more knowledge about the WorxMail code than everybody else. We had plenty of new members in the team by this time - Manbendra, Ravi, Vivek, Pranshul and Shivani. Even Vipin moved to WorxMail as the architect. I spent a lot time helping them understand the codebase and debug through the code. It presented me with a new kind of challenge. The challenge of leading the team technically. To me I did not fare well, may be I was not ready for this sudden change. May be I wanted to spend time on new challenges. So I decided to start fresh.
I am leaving Citrix with ton of memories. I am keeping the good ones for inspiration and the bad ones for learning. The people I had interacted with in these three years shaped me as a better person, as a better developer. I embark on a new journey with a lot of love and respect for them in my heart.