Dhruv Matani

E-mail: dhruvbird@gmail.com | GitHub: github.com/dhruvbird | LinkedIn: linkedin.com/in/dhruvbird/

 

 

Profile Summary:

A software engineer, technical lead, and architect with 16+ years of experience with large scale distributed systems, performance critical services, API design, ML infrastructure, and on-device AI. I have a passion for creating infrastructure products that delight users. 

 

Work Experience:

 

Meta Platforms (Facebook Inc), Menlo Park

March 2013 - Present

 

PyTorch (AI Frameworks and Infrastructure) - Technical Lead

·         Leading key initiatives to bringing PyTorch On-Device to everyone! Developing a machine learning framework for powering state of the art research to production workstreams, and closing the feedback loop between the two.

·         Bringing Speech, Vision, and Text based ML experiences to Edge Devices

·         Building the AI Infrastructure powering the metaverse

 

Data Platform - Logger - Engineering Manager and Technical Lead

·         Led Meta’s Logging Team. Responsible for all analytics logging at Meta across all apps/experiences

·         Led the semantic warehouse effort to support semantically rich types across major frameworks at Meta (such as Ent, Logger)

·         Led the data platform wide XFN effort to support structured types all the way from data collection through efficient query engine support in Presto and Spark

·         Pioneering the near real-time warehouse initiative

·         Spun up critical DE (Data Engineer), SWE (Software Engineer) collaborations across both organizations to empower DE driven Logging

·         Focusing on key outcomes related to reliability, usability efficiency, and privacy

·         Powering critical company-wide metrics such as time spent, DAU, advertiser revenue

·         Providing the data backbone for various analytical workflows, debugging tools, and customer insight dashboards

·         Responsible for the continued wellbeing, growth, and productivity of the team

·         Aligning engineering with business, and product outcomes

 

Data Platform - Logger - Technical Lead

·         Led the Logging Team at Meta. Encompasses mobile, desktop, web services, backend services

·         Mentored numerous engineers both on the team, and in the broader Data Platform organization

·         Point of contact for all cross-functional initiatives regarding warehouse data logging

·         Achieved phenomenal efficiencies at various levels by re-architecting the on-wire serialization format for loading data into the Facebook Data Warehouse. This affects both batch and real-time workloads

·         Re-architected the PHP Logger framework to leverage type-safety and runtime efficiency offered by Hack and HHVM. This resulted in single digit percentage wins across the entire fleet of machines

·         Led an intent driven sampling initiative for warehouse data logging to allow data growth to scale independently of the popularity of the platform

·         Led the backend C++ Logger initiative to ensure high quality data logging from services at Facebook to various downstream data stores. Changed the development paradigm for logging by providing static type checking (instead of run-time failures and alerts) against downstream table schemas in C++ code, greatly increasing developer productivity

·         Led the cross-language C++/PHP/Python Reader initiative to provide a consistent data ingestion API for real-time workloads across Facebook. Involves integrating with multiple real-time solutions at Facebook such as Stylus and Puma. The focus here is also to have downstream table schemas bubble up into code, and have the code fail fast, enable developers to iterate quickly, and for the application be more reliable. Additionally, the reader frees developers from worrying about the positional nature of columns in their data streams, and provides them the convenience of keyed column lookup without the related performance overhead

 


 

Ads Targeting and Custom Audiences – Software Engineer

·         Led the effort to platformize the custom-audiences backend (for use in other targeting products) and improve targeting by enabling matching on a broader category of traits

 

 

Data Platform - Scuba - Software Engineer

·         Part of the team that implemented a performant in-memory columnar storage engine that results in increased data compression

·         Improved data ingestion CPU utilization by 4x

·         Improved overall reliability and availability of scuba

·         Part of the team that implemented Fast Database Restarts in Scuba, bringing restart times down to 120 second from 2.5 hours (98.7% reduction)

·         Migrated a running service (thousands of machines) to a different region with zero downtime, over a period of 2 months; i.e., rolling migration without service disruption

·         Led the disaster recovery effort, which replicates data in real time across machines in multiple geographic regions

 

Facebook Inc., Menlo Park

May ‘12 – Aug ‘12

 

Software Engineer Intern

·         Developed a per-table backup and restore tool (for MySQL databases), which lets you restore individual tables from a complete database backup without restoring other unrelated tables. This tooling enables much faster table restores in case of MySQL table corruption. Still used by Meta.

 

Directi Pvt. Ltd., Mumbai, India

Jan ‘09 – Jun ‘11

 

Senior Software Engineer

·         Authored, tested, and integrated an XMPP BOSH Server for use in the talk.to project. This was later released as an Open-Source project, which is used by many globally as a standalone BOSH proxy. https://github.com/dhruvbird/node-xmpp-bosh

·         Responsible for problem-setting and training interviewers for the IIT graduate hiring process

·         Developed and owned the online update logic for .pw desktop chat client. This handles creation, shipping and fail-safe application of differential updates (deltas) which update the application in a way that minimizes network data utilization

·         Setup, administration and question setting for the Directi Online Test (DOT) which is used for the recruitment of software developers and engineers

·         Developed the Business Logic Layer for administering the chat server and related services

·         Led the project to develop and deploy an online community driven translation tool to help internationalize web applications. http://sofi.directi.com/

·         Email Context Analysis Engine (CAE): Developed an email context analyser to determine the most relevant commercial keywords/phrases for a given email

 

Mukesh Patel School of Technology Management & Engineering., Mumbai, India

Jul ’08 – Jan ‘09

 

Lecturer

·         Taught a course on Systems Architecture & Programming

·         Taught a course on Operating Systems-II

 

Calsoft Pvt. Ltd., Pune, India

Jul ’06 – Apr‘08

 

Senior Development Engineer

·         Developed an HTTP Caching Proxy to cache YouTube flash video content for Umber Media systems

·         Prototyped an RTSP Caching Proxy to cache YouTube 3gp video content for Umber Media systems. Also performed re-encoding and down-sampling of the video and audio content. This proxy also let you insert advertisements at various places in the original video. It was prototyped for use as a video ad-serving proxy

·         Developed the DiskImage tool which is used by ScaleMP for fully automated installation of linux (distribution hosted on TFTP servers) on machines

·         Performance tuned the Ingres Database Server's statistics collection module for ScaleMP's VSMP architecture (which is a glorified NUMA architecture)

·         Optimized and fixed long standing bugs in the logpar (log parser) application for ScaleMP, which is used for parsing the performance logs produced by their system

 

Education:

 

Master of Science (M.S.), Computer Science

Stony Brook University, Stony Brook (NY)

Aug ‘11 – Dec ‘12, GPA 3.82/4.00

Bachelor of Engineering (B.E.), Computer Engineering

University of Mumbai, Mumbai, India

Aug ’02 – Jun ’06, Aggregate: 62.6%

 

Publications:

 

·         Fast Bitmap Fit: A CPU Cache Line friendly memory allocator for single object allocations
https://arxiv.org/abs/2110.10357

2021

·         A Simple Solution to the Level-Ancestor Problem (1 citation) https://arxiv.org/abs/1903.01387

2019

·         Fast Database Restarts at Facebook (42 citations) https://research.facebook.com/publications/fast-database-restarts-at-facebook/

2014

·         Avoiding locks and atomic instructions in shared-memory parallel BFS using optimistic parallelization (10 citations)

·         Partial deamortization of the Packed Memory Array http://dhruvbird.com/pdpma.pdf

2012

·         Compressing the human genome against a reference (6 citations) http://dhruvbird.com/genome_compression.pdf      

2011

·         An O(k log n) algorithm for prefix based ranked autocomplete (15 citations) http://dhruvbird.com/autocomplete.pdf

2011

·         An O(1) algorithm for LFU (Least Frequently Used) cache replacement (40 citations)

http://dhruvbird.com/lfu.pdf

2010

·         A technique for extracting song lyrics from web pages without knowing their structure

http://dhruvbird.com/liblyric.pdf

2006

·         A distributed approach for solving a system of linear equations (2 citations)

2004

 

Skills:

 

Programming Languages:

C, C++, Python, Hack, Javascript, PHP, Bash, Object Pascal, SQL

RPC/API paradigms:

Thrift, JSON, CSV

Presentation technologies:

HTML, LaTeX

Platforms:

Linux, MS-DOS, Windows

DBMS:

MySQL, SQLite, Hive, PostgreSQL, Oracle

Tools:

Jupyter Notebooks, node.js, Mercurial, git

 

Contributions:

·         Contributor to PyTorch, an Open-Source AI/ML framework

·         Authored articles on On-Device Machine Learning and PyTorch on KDNuggets, TowardsDataScience, PyTorch Blog

·         Architected and built the infrastructure powering the analysis in the book “Who’s Bigger” – by Steven Skiena and Charles Ward

·         Provided key insights into the complexity analysts of the R1Q algorithm mentioned here

·         Added a cache-optimized single-object allocator (bitmap_allocator) to libstdc++

·         Contributor to libstdc++-v3 (g++’s C++ Standard Template Library) – which is used to power a vast majority of applications built using C++

·         Built node-xmpp-bosh, an Open-Source web proxy to serve XMPP over HTTP