I am an MS Computer Science student at Stony Brook University. I work at the File Systems and Storage Lab with Ming Chen under the guidance of Prof. Erez Zadok. I am working on maximizing the performance of the Network File System(NFS). Prior to this I worked as a Systems Engineer at Tata Consultancy Services for 3 years. I am interested in Systems, primarily Storage, OS, Distributed Systems and High Performance Systems. I love understanding how various factors affect the performance of systems and figuring out ways to make things run faster.
• 3 years of work experience developing software using C/C++ on Linux. Basic knowledge of shell scripting.
• Experience working with and applying concepts like shared memory, inter-process communication, socket programming, multithreading and signaling.
• Linux kernel programming.
• Experience with performance evaluation and optimization of systems and knowledge of NUMA, HugePages and In-memory Databases.
• Basic knowledge of Java.
Systems Engineer, Tata Consultancy ServicesAugust 2013 to July 2016
• Chosen to lead a team of 6 fellow trainee engineers to implement a project during my training program from August-November 2013.
• Worked on the development of the low latency trading system of the National Stock Exchange of India.
• Developed multiple software components that have successfully gone live.
• Developed the Connection Management module that handles connections with thousands of brokers. Wrote the code for error checking, flow control, handling very slow network connections, buffering of outgoing data, various connection and disconnection scenarios.
• Developed the critical Validation module that performs hundreds of checks on the received packet before forwarding it to the order matching engine.
• Worked on the development of the Data Subsystem. I developed the Master Data Management module of the system that is responsible for managing the tables that store all the market data, processing requests to perform updates, synchronizing the updates with all the other layers of the system and broadcasting the updates to end users in real time.
• Wrote extremely efficient code to minimize latency.
Performance Analysis and Optimization:
• Worked on performance testing and optimization of the trading system and dealt with microsecond latencies.
• Analyzed the performance to reveal bottlenecks and areas of improvement. Optimized a critical module of the system and reduced the latency of the module by half, from 23µs to 11µs.
• Accomplished this by optimizing some of the data structures used, replacing Posix Queues with simple shared memory queues, distributing processes across the processing cores optimally and reducing the overhead of inter-process communication by using NUMA effectively among other things
• Performed unit testing on the modules I developed. Also performed parallel run testing on the entire trading system by pumping in millions of orders from past trading days and analyzing the output.
• Performed stress testing and technical testing.
MS Computer Science, Stony Brook UniversityAugust 2016 to December 2017(Anticipated)
GPA : 3.84
Coursework : Operating Systems, Anaysis of Algorithms, System Security, Computational Biology
BE in Computer Engineering, University of MumbaiAugust 2009 to May 2013
GPA : 69%(First Class)
TraceFS (2016)Developed a stackable file system in the Linux kernel that traces calls to the lower file system and writes them to a trace file that can be replayed later.
Per-process System Calls (2016)Developed a Linux kernel-based system that supports per-process system call vectors. Each process has a vector of system calls it can invoke. New versions of system calls can be written and plugged in and out on the fly. Different processes can use different functions for the same system call
Antivirus (2016)Developed an antivirus for Linux that scans files or folders on demand and also dynamically scans files when a user tries to open or run them. Used C and shell scripting.
Packed Suffix Array (2016)Worked on improving the performance of the suffix array data structure for DNA sequencing by packing each character into 2 bits instead of a byte to speed up substring matching. Used C++.
Ant Colony Optimization (2013)Implemented a modification of the Ant Colony Optimization Algorithm for network routing on NS2 simulator and analyzed its performance. Used C and TCL.
Awards and Honors
- Achieved a perfect score(340) in the GRE(Graduate Record Examination).
- Received a scholarship for the entire duration of my undergrad studies.
- Awarded 'Star of The Month' at Tata Consultancy Services in July 2015.