Praphull Purohit
Praphull Purohit ๐Ÿ‡ธ๐Ÿ‡ช ๐Ÿ‡ฎ๐Ÿ‡ณ
Staff Software Engineer at Truecaller
Software Engineer - Stockholm, Sverige.
I'm a full-stack software developer with 15.7 years of experience in creating reactive microservices, enterprise products and legacy applications across various industries. While my primary expertise lies in backend development, I've also dabbled in web and Android development.
For past 4.7 years, I've been working with Truecaller across different teams in Stockholm, Sweden and Bengaluru, India. I am currently working in the Truecaller HQ at Stockholm, as a backend software engineer in Plaform/Cloud Infrastructure team, responsible for providing core tooling, services and infrastructure for the Truecaller developers in India, Sweden, Israel & Poland. Before my transfer to this role in Stockholm, I owned the backend microservices (Scala, Cassandra, Akka, Play Framework, Kubernetes and Java) for Truecaller's developer platform and SDKs (Android, iOS, mobile web & Shopify).
Before joining Truecaller, I spent 4 years at Zilingo, a fashion e-commerce startup. During my time there, I focused on developing reactive microservices for Zilingo's logistics platform, using Scala, Akka, Play Framework and Kafka, and contributed to the company's growth from seed-funded stage to almost billion dollar valuation.
Throughout my career, I've worked across various industries, including Communications, e-Commerce, Logistics, Supply Chain, Aircraft maintenance and Energy. I'm always eager to explore new business domains and apply my expertise to solve challenges in different industries.
Summary
Scala, Play Framework, Go, gRPC, Protobuf, Cassandra, Java, Kafka, MariaDB, Shopify
Scala, Play Framework, PostgreSQL, Kafka, Webhooks, MongoDB, FoundationJS, Bulma, JavaScript, HTML, REST, SOAP, XML
Java, ADF, Oracle/PLSQL, SOAP Web services, UTPLSQL, OAF, XML
Documentum, Java, C#, .Net, Oracle, XML
Experience
Scala/Akka9 years
Java8 years
Golang<1 year
Oracle/PLSQL6 years
OAuth 2.0, Openid1 year
PostgreSQL4 years
Cassandra5 years
Node.js2 years
C#1 year
Documentum2 years
What I love
ScalaAkkaDatabases/SQLJavaNode.jsJavaScript/WebKubernetesgRPC
Employment History
Truecaller - Plaform Backend/Cloud Infrastructure | March 2023 โ€ Present | Stockholm , Sweden ๐Ÿ‡ธ๐Ÿ‡ช
  • Working on core tools, services and infrastructure for development teams in Sweden, India, Israel & Poland.
Truecaller - Developers Solutions | July 2022 โ€ March 2023 | Bengaluru , India ๐Ÿ‡ฎ๐Ÿ‡ณ
  • Led an engineering team (Android, Backend, QA, Web) for Truecaller SDK development.
  • Worked on features not yet publicly released
  • Led a critical data migration from a MariaDB to Scylla (Cassandra)
  • Created a new version of a reference client framework in Java, using Truecaller's Business Messaging gRPC APIs, complete with auto-recovery mechanisms with exponential backoff, currently being used by business customers to send millions of messages on behalf of their clients, via Truecaller Business IM every day. Visited business customers' development facilities to facilitate a robust integration; talking to business/tech counterparts about integration issues and feature requests, and helped code review their implementation to improve stability.
Truecaller - Developers Solutions | January 2021 โ€ June 2022 | Bengaluru , India ๐Ÿ‡ฎ๐Ÿ‡ณ
  • Led an engineering team (Android, Backend, QA, Web) for Truecaller SDK development.
  • Built a Shopify App, to enable number verification by Truecaller in Shopify ecosystem.
    • Built the backend service for this implementation from scratch, implementing Shopify's OAuth 2.0 flow and a custom authentication layer for app configuration flows.
    • Worked on Shopify Polaris React components, Shopify App Bridge 2.0, Firebase hosting & Google Cloud Functions for the React frontend of Shopify app configuration.
  • Implemented the backend services for OAuth 2.0 authorization server with PKCE from scratch, using Scala, Play Framework & GRPC.
  • Led the architecture for OAuth client SDK implementation in Android & iOS, to ensure it is done in a way that lets future backend evolution of these OAuth services work without a neeed for SDK update in 3rd party applications, thereby reducing time to market for future revisions (e.g. Openid support)
  • Designed the architecture for Openid, the 2nd phase of OAuth implementation, making our OAuth backend & client SDKs compliant with Openid
  • Led the migration of a microservice from Dropwizard & Java to Play Framework & Scala
  • Created a FIDO server in Scala and an Android app using FIDO for authentication, as part of lab-days at Truecaller
Truecaller - Developers Solutions | July 2020 โ€ December 2020 | Bengaluru , India ๐Ÿ‡ฎ๐Ÿ‡ณ
  • Took over the backend development for Truecaller SDK and developer ecosystem
  • Handled development/evolution of multiple microservices (Scala, Java, Play Framework, Dropwizard, gRPC, Cassandra) deployed over Kubernetes on GCP and on-premise data center. These services provide backend APIs for Android, iOS and mobile web SDKs, used by hundreds of developers and 300 million+ monthly active users.
  • Led the early access program for Truecaller's Business Messaging APIs
    • Set up tooling for integrating Business Messaging GRPC services in partner backends on Java (Maven, Gradle), Node.js, Go & Ruby
    • Created documentation for integrating these APIs in all these languages and helped early access partners in integration
    • Created reference implementations for Business Messaging APIs in Java & Node.js
    • Ported a proprietary image compression algorithm used by Truecaller Messaging from Kotlin to Java & Node.js. Architected the algorithm in a way that the backend implementations could plug in their platform specific image libraries to read a variety of image formats and use it with the algorithm. Fixed a performance bug as part of the porting (backported to Kotlin later by owning teams), that reduced algorithm's memory footprint by >1000x and fixed rotation/skewing issues in the output image
    • Created a Java & Node.js implementation of Business Messaging GRPC client as a runnable jar, with several command line options, to enable QA teams to test these APIs as they evolve during/post EAP. This was also used for load testing the APIs
    • Joined the GTM team and made the initial product pitch to all early access partners, working with external product & backend teams to get APIs implemented in the right manner, with proper instrumentation and scalability considerations.
Zilingo - Logistics | June 2016 โ€ June 2020 | Bengaluru , India ๐Ÿ‡ฎ๐Ÿ‡ณ
  • Rewrote the logistics API integrations system from scratch using Akka Actor system for handling thousands of concurrent operations. Scaled the system from 1 API integration to 35. Designed the system to work with third party APIs of varying complexity and tech stacks (webhooks, SOAP, REST, legacy XML APIs), and to handle tracking, shipping label, order, pickup and returns management for 100K+ live orders at peak, operating on mere 512 MB JVM memory.
  • Collaborated with 3PL tech & business counterparts across 9 countries/time zones (India, Singapore, Thailand, Indonesia, Philippines, USA, Australia, China and Myanmar) from feasibility analysis and requirement gathering till acceptance testing. Created specialized workflows to be able to serve differences in operational processes of different 3PLs. Worked closely with Zilingo Operations teams across regions to tweak systems for solving operational challenges in different business scenarios: B2C logistics (efficiency), B2B logistics (cost) and cross-border logistics (first mile visibility & customs).
  • Designed/implemented an internal Scala library to extract & transform one or more domain specific data terms from different microservices in real-time using Akka Streams and Kafka. Led the development of a data sync control microservice, that controlled the configuration for push, pull, and data syncing range. The library can sync different versions of same source data to different destinations (e.g. data-warehouses, other services), and it formed the basis of entire data warehousing operations, reporting and data science practices in Zilingo.
  • Designed/implemented a highly available zones backend system to serve country specific administrative zone hierarchy and associated metadata (e.g. postal codes) as a periodically refreshed cached. The system supports data versioning upon change in a region's administrative structure and allows different versions/snapshots of data to be served to different consumers at a given time, to ensure different microservices can adopt the data updates gradually, and the service deployments are decoupled with the availability of data.
  • Led the design and implementation of reverse logistics management by creating a separate microservice to handle Returns.
  • SBT multi project configuration setup for data warehouse sync client library standardization.
  • Did some ground work on a data validation library for region specific/agnostic phone number verification using Google's libphonenumber library
  • Worked with devops and implemented specialized monitoring and alerts using Grafana for developer view of the third party API performance and health
  • Implemented a microservice for seller rating management as the task for Scala/Play Framework onboarding and delivered the entire service from ground up in the first 2 weeks.
Oracle - Oracle Fusion SCM - Manufacturing | November 2014 โ€ June 2016 | Bengaluru , India ๐Ÿ‡ฎ๐Ÿ‡ณ
  • Worked in Oracle Fusion SCM - Manufacturing software development team for 1 year
  • Worked on the Work Order Execution and mass import components (Java, ADF, PLSQL, SOAP Web services, UTPLSQL)
Oracle - Oracle E-Business Suite - CMRO | March 2012 โ€ November 2014 | Bengaluru , India ๐Ÿ‡ฎ๐Ÿ‡ณ
  • Worked in Oracle EBS development team, for their CMRO product (Complex Maintenance, Repair and Overhaul) that's used for configuration management, planning & execution of MRO activities on aeroplanes, engines and other complex equipment (Java, OAF, PLSQL, XML).
  • Implemented extraction of CMRO Visits hierarchy as Microsoft Project supported XML, for better planning of Visits in MS Project
  • Implemented Material and Squawks pages in new Non-routine Enhancement dashboard
  • Search Unit Configuration, and Search UC drill down pages in Maintenance Control Centre workbench
  • Integrated existing part changes page into MCC workbench
  • Converted Alternate Item Groups pages (Search/Manage) from CSI framework to OAF
Infosys Limited | October 2011 โ€ March 2012 | Mysore , India ๐Ÿ‡ฎ๐Ÿ‡ณ
  • Developed a tool to extract document/metadata from Livelink servers and store metadata as XMLs, content natively in an organized structure (.Net/C#).
  • Feasibility analysis for migration of a decade old Livelink system to SharePoint
  • Worked on setting up an offshore data center for migration from existing Documentum and Livelink servers to Sharepoint
Infosys Technologies Limited | July 2009 โ€ October 2011 | Mysore , India ๐Ÿ‡ฎ๐Ÿ‡ณ
  • Taxonomy standardization of more than 2 million documents in Documentum CMS
  • Production system upgrades for highly critical Documentum/Sharepoint docbases (Java, XML, Oracle)
  • Production support for almost 25 Documentum 5.3 and 6.5 docbases across the world
Infosys Technologies Limited | January 2009 โ€ May 2009 | Mysore , India ๐Ÿ‡ฎ๐Ÿ‡ณ
  • Remote Compiler - Web-based IDE and compilation/execution environment for various programming languages (C, C++, Java). Generalized the UI widgets created for the project as reusable component library (J2EE, JavaScript, CSS, Compilers, Oracle)
Projects/Tooling/Experiments
Sudoku Solver (2020)
DFS implementation to solve 9x9 Sudoku Boards(Scala)
Financial Functions Library (2020)
Scala library of commonly used financial functions (e.g. XIRR, NPV)
Android app & backend (2015-16)
Banana Kick - Android application (Java) and backend (Node.js) for booking sport venues (Android, Node.js/Express.js, Mocha/Should.js, MySQL, AWS, Twitter Digits, JWT)
Android ROM Building (2011-12)
Tried my hands on building AOSP to understand the build processes, and created a working AOSP port for Samsung Galaxy Ace (Android Open Source Project, C)
Virtual Classroom (IBM TGMC 2008)
Online lecture delivery and collaboration platform (J2EE, Websphere Application Server, DB2)
Social Networking Portal (IBM TGMC 2007)
Make your wish - Social Networking Portal for college/universities (J2EE, Websphere Application Server, DB2)
Tank Game (2006)
SPEAR TankTank Game using Borland Graphics Libraries (C++, BGI)
Fee collection management (2003-2005
FECOMAS - Built Fee collection management system for the school (Visual Foxpro 6)
Trainings/Courses
Zilingo - School for Gifted Youngsters (Apr-Dec 2019)
Attended a leadership development program spanning 9 months, with 9 full-day sessions and several personally guided coaching/mentorship sessions with Sriram Kalyanaraman and Tomas Gustafsson.
Coursera courses
Education
Jaypee University of Information Technology, Waknaghat, IN
Bachelor of Technology, Computer Science Engineering | July 2005 - May 2009