- +91 87 67 99 29 27 (India)
- +1 510 704 8743 (US)
- Architect and hands-on developer (since 1987) of several large systems, some that have influenced company fortunes, some that have influenced the enterprise-software industry and some that have had national-level impact in India. A system to me includes people and manual processes, not just the automation.
- Trusted to perform whole-system architectural reviews of societally-critical systems in India by NCPI (UPI), National Stock Exchange, Indian Railways, Aadhar, Materials and Commodities Exchange etc.
- Expert in fault-tolerant concurrent and distributed systems, functional programming and systems programming in general, and moderately proficient in compiler design
- Programming language geek; current interests include
Rust, Haskell, Go, Maude and Elm, besides 60 others (ranging from
expert to familiar)
Advanced Perl Programming
(O'Reilly and Associates), an O'Reilly bestseller and top-10 Amazon book in the computer books section at one time. It played an influential part in the rise of the early Web and e-commerce servers.
In addition to academic experience (below), I have taught month-long distributed systems courses and short-format courses and talks on programming languages,
mathematics of PK cryptography, networking and distributed systems at a number of companies and conferences since 1987.
Academic Experience & Research
- IIT Bombay
- Adjunct Professor [2013–21]
- Created and taught "Engineering a Cloud" where UG and PG students wrote fault-tolerant file systems and distributed databases from scratch, including implementing the Raft consensus protocol
- Co-taught (with Prof. S Sudarshan), "Implementation Technniques in DBMS" for UG and PG students, including an in-depth treatment of Postgres internals.
- (My consultancy) [2010-]
- Berkeley, Mumbai
Design of the next generation of the Universal Payment Interface for the National Payments Corporation of India. UPI is a lynchpin of the Indian economy and already supports upto a billion transactions a day. The present design is a soft-state transaction coordinator between banking systems that handle all the state.
My task is to design and deliver (a) a stateful transaction coordinator to support mobile-to-bank and mobile-to-mobile transactions and, (b) a robust multi-site active-active system to handle up to 10 billion transactions a day
Advisor for National Stock Exchange, Materials and Commodities Exchange. and UIDAI for Aadhar.
In-depth architecture reviews for Receivables Exchange of India, Clearing Corporation of India and Indian Railways Passenger Reservation System.
- UC Berkeley
- Project Scientist [2011–12]
Worked on the Bloom
language, a Datalog variant for declarative networking. Restructured, re-implemented the interpreter for performance.
- Consultant [2010–11]
- Barcelona, Mumbai
Investigated online database compression. Designed and prototyped parts of a NoSQL database with Sinfonia-style coordination.
- Consultant [2005, 3mo]
Designed, developed and delivered a power-aware secure cryptographic solution for wireless sensors that are embedded in roads and highways. This environment is extremely hostile to electronics, and it is expensive to stop traffic and replace batteries, so power management is key.
Designed & wrote the world's first high-performance Java-based distributed transaction manager
(still in production), and the first-ever EJB container. The Weblogic server convinced the world to take Java seriously for the enterprise-server side, especially for transactionally-sensitive data handling.
- Principal Systems Eng. [1989–96]
Designed and implemented a Cargo Handling System for Federal Express (now FedEx). This was a large-scale simulaiton with complex constraints to assist planners in optimizing FedEx's aircraft utiliization. Constraints included different metrics for cargo (e.g. by volume for seasonal flowers, by weight for engines from Detroit). The system won the 1999 Computerworld-Smithsonian award for best transportation software.
Delivery Confirmation Information System for UPS.
Participated in the design of one of the world's earliest commercial CORBA ORBs, and implemented the transactions and concurrency service components.
Introduced Python/TCL bindings for the company's core C++ product that made it so usable that the company pivoted to making the scripting language as the main development platform
- Tata Unisys Ltd
- Software Engineer [1987–89]
Wrote firmware for embedded systems (terminals, boarding pass printers), protocol gateways for airlines to connect to airline networks (Galileo, Amadeus)
Advisor for the LeTS project
, and developer of website and mobile app
Mentoring and advice for WTI's technical needs, such as
robust low-cost digital networks in tough environments, animal tracking, poaching databases, and so
System and method for prepreparing a transaction process involving a chain of servers in a circular flow
Systems and methods for application management and deployment
System and method for transaction processing with transaction property
System and method for transaction processing with delegated commit feature
System and method for transaction processing with synchronized callback processing feature
- PhD (2010)
- Computer Science
- MS (1987)
- Industrial Engg.
IIM, Mumbai (prev: National Institute for Training in Industrial Engineering (NITIE)), Mumbai
- B.Tech (1985)
- Mechanical Engg.
IIT BHU (prev: Institute of Technology, BHU)
- Machine Learning
- Indian classical music, Cooking, Reading, Trekking, Pottery, Charcoal sketching, Football, Electronics, Hindi film songs of the Golden Era, Tabla, Travel, Bicycling