MasterClass

St Staff Engineer, Android: July 2021 - Current

As a Senior Staff Engineer leading Android development at MasterClass, I've significantly contributed to MasterClass’s Android, Android TV, and Fire TV applications. My responsibilities include developing and enhancing features, process optimizations, CI/CD tasks, documentation,  collaborating with various cross functional teams and individuals, mentoring Android engineers, and making sure that Android experience is meeting the high expectations that MasterClass customers expect. I've played a pivotal role in mentoring engineers, mobile facing API ideations, and resolving customer or developer issues.

Some of my key contributions include:

  • Dynamic home feed, WYSIWYG-ish tiles for rapid feature iterations. 

  • Authentication & multi-user profiles.

  • Enhancing the media player with features like audio descriptors, video settings, media analytics, user progress synchronization, and enforcing concurrent watching limits.

  • Active participant of various API discussions and decisions that impact mobile and TV applications. 

  • Migrating our Android app from GraphQL to OpenApi & REST apis.

  • Enhancing design system and building a design system android app for our product, design and engineering teams to visualize UI elements.

  • Significantly improving MasterClass Android app build times in both local and CI environments. Brought it down from ~45min to around < 5 min in CI.

  • Migrating build scripts from Groovy to Kotlin and modernizing them to extract reusable tasks and scripts. 

  • Transitioning CI from Bitrise to GitHub Actions which reduced our infrastructure costs and helped ease the bottlenecks between Android and iOS.

  • Modularizing the app to enhance performance and maintainability. Also introduced module publishing via Github packages to reduce build times and enforce separation of concerns.

  • Advancing application architecture by eliminating user state-specific screens which had been a pain point and bottleneck for our Android engineers.

  • Incorporated comprehensive error logging, business and engineering facing analytics, and performance tracking. 

  • Building experiment framework on Android mobile and tv apps.

  • Enhancing testing methodologies to eliminate flaky tests and streamline the development process.

  • Work on legal, monetary, security, and accessibility audits, Google/Amazon legal and publishing compliance issues, and marketing improvements.

  • Environment/Tools: Kotlin, Android, Jetpack, RxJava, Coroutines, Compose, ExoPlayer, Github Actions, Gradle, Bitrise, JIRA, Looker, GraphQL, OpenApi, REST, Firebase.

SAP SuccessFactors

Developer Expert (Android): November 2019 - July 2021

  • Lead the architecture and development of various SuccessFactors Android app features and engineering initiatives by working closely with engineering directors, managers, and architects globally.

  • Drive the modularization efforts in splitting the app into smaller self contained modules with a tiered architecture that is driven by contracts and eliminating circular dependencies between modules.

  • Proposed and formed a few cross region ownership teams. This was crucial for SuccessFactors as we had teams working in siloed feature teams across four different regions across the world.

    • Mobile tech round table for architectural chats and reviews

    • Mobile build representatives team for a shared ownership of all CI/CD tasks

    • Android UI components and framework and team

  • Streamline the CI/CD process by proposing and showing how we can reduce our build times, bring in periodic builds and reduce developer wait times during PR builds.

  • Lead the development of SuccessFactors customer facing design overhaul of the home page UI and bringing in Multiple-Roles feature in Continuous Performance Management(CPM) that allows for activity and goals management between managers and reports.

  • Refactor the legacy Org-Chart feature to fix various user bugs and modernize it.

  • Build POCs and made proposals for multitude of things including modularization, markup support, coroutines, code-styles standardization, making PR builds faster, cards framework, etc.

  • Mentor other Android engineers within Palo Alto and other regions and provide technical feedback.

  • Drive Kotlin adoption and do knowledge sharing sessions.

  • Wrote and reviewed several architectural and functional documents catering the mobile teams globally.

  • Environment/Tools: Kotlin, Java, Android, Git, Gradle, Dagger 2, OData, JUnit 4, Jenkins, Jira.

MasterClass

Lead Android Engineer: April 2018 - November 2019

  • Hired to start the Android app and team at MasterClass, I set up the architecture to build it upon. We had a 4.8* rating, 99.7% crash free rate and was featured by Google as one of the best new apps for 2018 http://bit.ly/2018-gplay-self-help

  • Architect & build Android app for MasterClass, and publish it to Google Play. [https://bit.ly/masterclassapp]

  • Mentor and lead the Android engineering team.

  • Being a part of a small team, I was involved in most stages of feature planning, code reviews, and defining the client API requirements.

  • Add authentication via Email, Google, and Facebook.

  • Built in-app payments to let users buy MasterClass courses and subscriptions.

  • Implemented video playback, UI controls for videos and chrome-cast integration.

  • Drove the MasterClass video injection standardization process across all videos regardless of the platforms (Mobile / Web / TV). We then changed all MasterClass videos to be streamed with these unified formats. This brought in the standardization of video formats, qualities and closed captions across all our videos to provide a consistent UX across all platforms and videos.

  • Built Android TV app for Fire TV and Android TVs by modularizing the app to extract out common code into a separate module.

  • Environment/Tools: Kotlin, Java, Android, BrightCove Git, Gradle, Dagger 2, Retrofit 2, Rx-Android, GraphQL, JUnit 4, Espresso, Circle CI and Jira.

Xero

Lead Android Engineer: November 2014 - April 2018

  • Hired as the first Android developer in San Francisco to build the Android apps for Xero's Payroll team.

  • Architected, built and and published the Xero Me and Xero Expenses apps into Google Play.

  • Was one of two global Android leads that created the architecture, built and set the direction for most of Android libraries within Xero. Xero has Android teams in Wellington(NZ), Aukland (NZ), Melbourne (AU), and San Francisco (CA).

  • Re-architect network and authentication modules that are used across Xero Android apps. Moved it from using HttpUrlConnection & in-house networking layers that used AsyncTasks to use modern libraries like RxJava and Retrofit. This greatly reduced the number of issues we had, and also the amount of code we were required to maintain.

  • Built a suite of Android libraries like Auth, Orgs, Pixie-Dust, Xception, Calendar UI and Dateutils. This helped us develop and iterate new apps faster as demonstrated by Xero’s new apps. It brought down the app creation time for new apps that use Xero’s Auth and apis from a few weeks to a day.

  • Worked on creating versioned artifacts of the libraries above and pushed them into Xero’s internal Maven Artifactory.

  • Added Checkstyle, PMD and Findbugs to ensure that the code is clean and consistent.

  • Setup the CI/CD for the apps in Jenkins on build machines that mobile teams used and then on TeamCity that Xero used for all CI/CD purposes.

  • Mentor Android engineers on the team.

  • Environment/Tools: Java, Android, Git, Gradle, Dagger 2, Retrofit 2, Rx-Android, JUnit 4, Espresso, Jenkins, Teamcity and Jira.

Tagged / if(we)

Senior Android Engineer: January 2014 - November 2014

  • Worked on the new Android Tagged application for Tagged/Hi5 app.

  • Built in-app payments using Android in-app billing(v3).

  • Built all the settings screens in the app including their synchronization with the backend.

  • Implemented sessions that can be carried over to webviews from the native app.

  • Integrated A/B testing and analytics tools.

  • Environment: Java, Android, Dagger, Android Studio, Git, Retrofit, Swrve, Android in-app purchases & subscriptions, Jira, Jenkins, and Appium.

MedHelp

Android Developer: July 2011 - January 2014

  • Architect and build MedHelp’s Android applications[I’m Expecting, My Diet Diary, My Cycles]. I was the first and only Android Engineer for over the first two years.

  • Worked on myHdl and PicHealthy Android apps.

  • I’m Expecting and My Cycles were featured by google multiple times in Google Play’s the health category.

  • Developed component libraries to reuse Android components in multiple applications.

  • Implemented multiple domain login and sync functionality to sync MedHelp users’ data.

  • Built a problem reporting tool that users can use from any Android app to bundle crash reports and non sensitive user data to MedHelp’s servers.

  • Helped designers and product teams understand, design and customize apps for Android platform.

  • Improved the apps according to Google’s guidelines and recommendations which led to two of our apps being featured by Google and ultimately a few hundred thousand to over a million downloads.

  • Environment: Java, Android, Eclipse, Android Studio, Linux, Git, SVN, JUnit.

Healthagen

Android Developer: August 2009 - April 2011

  • Architect and build the iTriage application on Android.

  • Built various prototypes for iTriage on Android, Blackberry and Windows Mobile 7.

  • Implemented voice search, global search and location retrieval as suggested by the Google team on short notice to get iTriage featured in Google Play. That success of that led to us having over 1 Million users and was one of the best Healthcare apps for Android at that time.

  • Being the only Android engineer at that time, I responded directly to the feedback from end users and answered any questions related to the android application to ensure that the users are satisfied. 

  • Created an Android analytics library, wrote scripts to optimize the database for mobile applications.

  • Worked on Google Health, Microsoft HealthVault and Dossia APIs to integrate PHR.

  • Environment: Java, Android, Linux, Rails, Perl, SVN, Git.

i3Logix

Software Developer: April 2009 - August 2009

  • Developed web services to export user’s medical data.

  • Built forms for capture, process and analyze drug screening data using PHP and Ext-JS

  • Maintained Image Server that automates capturing and storing fax images on DMS.

  • Created a Java application to use Tesseract to read characters from image files.

  • Environment: Java 1.6, Tomcat 6, Axis 2 1.4, Log4j, MySQL, PHP, Perl.

Gomiapp LLC

Software Developer: September 2008 - February 2009

  • Worked on automating the retirement process for the state of Kentucky. [Kentucky Retirement Services]

  • Developed FileNet workflows using FileNet P8 3.5 Document Management System, and Document Capture.

  • Environment: FileNet P8 3.5, Document Capture, Java 1.5, Windows Server 2000.