Bachelor of Engineering in Computer Science

Aug 2009 - Jun 2013
R. V. College of Engineering, Bangalore, India
GPA 9.54/10.00

Courses Algorithms, Data Structures, Operating Systems, Database Management Systems, Computer Networks, Cryptography and Network Security, Unix Network Programming, Compiler Design, Computer Architecture, Software Engineering, Computer Graphics, Multimedia Communication, Digital Electronics and Microprocessors, Operations Research and Fuzzy Logic

Professional Work Experience

Member Technical Staff - Intern, Acropolis Hypervisor Team

May 2016 - Aug 2016
Nutanix, San Jose, USA

  • Worked on a project using docker container technology and libguestfs tools, which will be incorporated into the future releases of Acropolis.
  • Composed the Invention Disclosure Form and filed the patent application for the above work which is under review process.

Member Technical Staff - II, VMware ESX Storage Team, Research and Development Team

Jun 2013 - Aug 2015
VMware, Bangalore, India

  • Implemented scripts to scan, detect and report data corruption of a virtual machine’s snapshot delta disks and their metadata.
  • Incorporated architectural changes in disk and object libraries across versions of ESX, virtual SAN (vSAN) and virtual volumes (vVols).
  • As the Scrum Master and Triage Lead, tracked team activity and assigned tasks to team members after analyzing feature requests and complex storage stack issues raised by customers and partners.

Software Develoment Intern, Media Labs

Jan 2013 - May 2013
Ittiam Systems, Bangalore, India

  • Designed and implemented Customer Subscription and Billing Modules for farmOTT, Cloud Based Video Transcode Service.
  • Technologies Used: Amazon EC2, PHP, REST APIs.

Research Work Experience

Graduate Research Assistant under Professor Barton P. Miller

Aug 2015 - May 2016
Department of Computer Sciences, University of Wisconsin - Madison, USA

  • Designed plugins for Eclipse/IntelliJ to support SWAMP functionalities that facilitated testing code for security vulnerabilities across various development environments. Java, Curl APIs..
  • Automated the infrastructure (virtual machine creations, OS image customization and packaging of tools).
  • Technologies Used: OZ tool, RPMbuild, Linux.

Software Research Intern under Professor Dr. A. G. Ramakrishnan

Jun 2012 - Aug 2012
Medical Intelligence and Language Engineering Lab, Indian Institute of Sciences, Bangalore, India


NFS-Like Distributed File System
  • Built a simple distributed file system based on NFS-like protocol.
  • File system was integrated into the Linux client side using FUSE (FUSE allows to make something that looks like a file system but which is built in user space).
  • All basic file system functionalities such as make/delete directories, create/delete/read/copy/write to files and listing of directory contents were supported.
  • Optimized Writes by Batching and use of COMMIT protocol.
  • Built server to be able to recover from crashes. Server crashes are transparent to clients who notice just degradation in performance. Assumed fail-recover behavior.
  • Technologies Used: C++, NFS v3 Specification, FUSE
PageRanking, Structured Streaming and Twitter Stream processing using Spark and Apache Storm
  • Developed a PageRanking application using Python on Spark on a Hadoop cluster for the Berkeley-Stanford Web Graph dataset.
  • Experimented with custom partitioning of the RDDs, analyzed and fine tuned the performance by varying Spark Context.
  • Wrote a simple Python application that emits the number of retweets (RT), mention (MT) and reply (RE) for an hourly window that is updated every 30 minutes based on the timestamps of the tweets.
  • This was used to analyze the Higgs Twitter Dataset which was built after monitoring the spreading processes on Twitter before, during and after the announcement of the discovery of a new particle with the features of the Higgs boson.
  • Used Apache Storm to collect and process more than 500,000 english tweets on a Hadoop cluster that match certain conditions such as particular hashtags, friendsCount etc using Twitter API.
  • Technologies Used: Python, Spark, Apache Storm, Structured Streaming and Zookeper,
Timing and Communication
  • Used Linux timer clock_gettime() to measure Dean's numbers after determining resolution and precision of the timer.
  • Built a reliable communication library on top of raw UDP-based sockets that allows two processes to communicate via UDP packets, using a simple timeout-retry mechanism to detect when the receiver has not received a message, and then re-send that message. Measured its performance and reliability characteristics by inducing controlled message drops.
  • Google RPC and Apache Thrift
    • Measured the overhead of marshalling a message (packing an item into a protobuf, time it takes to pack an int, a double, a string of varying size, a complex structure on each platform).
    • Measured round-trip time for a small message, when both client/server are on the same machine and when on different machines.
    • Compared overhead of protobufs and RPC with that of barebone RPC library.
    • Measured bandwidth when sending large amounts of data without streaming and with client or server streaming and analysed size of messages required to reach peak line rate.
  • Technologies Used : C++, Python, Google RPC and Apache Thrift
Benchmarking of Data Analytics Stacks - MapReduce and Tez
  • This project mainly involved benchmarking the performance of MapReduce and Apache Tez using TPC-DS and TPC-H workloads.
  • Deployed a Hadoop cluster on Microsoft Azure VMs.
  • Ran SQL query "jobs" atop Apache Hive using MapReduce and Tez.
  • Tuned and analyzed the configuration of the MapReduce and Tez jobs by varying the number of reducers, parallel shuffle copies and the slow start of reduce jobs to obtain optimal performance for certain queries.
  • Developed and deployed a simple MapReduce application in Java that groups and sorts anagrams in a large corpus of words.
  • Technologies Used: Python, Java, Hadoop, Hive, Map Reduce and Tez
Jua : Customer Facing System to Improve User Experience in Public Clouds
  • Designed and developed Jua, a customer facing system that adopts machine learning methodology to perform the task of choosing the appropriate VM instance type and also implements a number of placement gaming strategies to ensure that the customers get the best performance relative to the cost they incur..
  • Technologies Used: python, Amazon Web Services(AWS). Project Report.
Predict Cricket Match outcome
  • Designed a machine learning based prediction system by learning features sets from CricInfo.
  • Technologies Used: python's scikit-learn and beautiful soup. Project Report.
  • Implemented the entire data science pipeline on data sets extracted from two restaurant aggregator websites : Yelp and Zomato.
  • Built a focussed web crawler to retrieve and store all the restaurant pages from Zomato and Yelp.
  • Performed data cleaning and information extraction by constructing manual wrappers on the retrieved HTML files.
  • Parallel and sequential Blocking was done on several attributes by applying appropriate similarity measures such as Jaccard, TF-IDF, Levenshtein distance to scale down the data to be considered for entity matching.
  • Applied learning methods : Decision Trees, Linear Regression, Logistic Regression, Support Vector Machines, Randomized Forest and Naive Bayes to predict entity matches and evaluated the best learning method based on Precision, Recall and F1 measure.
  • Technologies Used: beautiful soup, iPython, pandas, magellan. Project URL.
  • Designed and developed an application to share multimedia files and stream video over the cloud.
  • Catered to live streaming requests by splicing the contiguous video segments and storing it for subsequent forwarding.
  • Technologies Used: Java RMI, Amazon Web Services(AWS), Amazon S3, Microsoft DivX.
Projects in Computer Networks
  • Iperfer - Implementation of the iPerf tool in Java that was used to measure network bandwidth and performance of virtual networks.
  • Implementation of Virtual Switch and Router for Link and Network layer forwarding
    • Learning switch forwards packets at the link layer based on destination MAC addresses.
    • Router forwards packets at the network layer based on destination IP addresses.
    • Designed and developed the logic for packet forwarding, route lookup, longest prefix matching of the IP, MAC address lookup from the ARP cache and the generation of ICMP packets for error conditions.
  • Software defined networking (SDN)
    • Implemented two control application for a software defined network (SDN).
    • Implemented layer-3 routing application that installed rules in SDN switches to forward traffic to hosts using the shortest, valid path through the network.
    • Implemented a distributed load balancer application which redirected new TCP connections to hosts in a round-robin order.
  • Domain Name Server (DNS) - Designed and implemented a simple DNS server that performed recursive DNS resolutions, and appended a special annotation if an IP address belongs to an Amazon EC2 region.
  • Language Used: Java.
Machine Learning Projects
  • Naive Bayes and Tree Augmented Naive Bayes (TAN) Classifiers Code
    • Implemented the Naive Bayes and TAN classifiers intended for binary classification.
    • Used Prim Algorithm to construct the Maximal Spanning Tree in TAN.
    • Laplace estimates was used to calculate all probabilities.
    • Tested the classifier on data sets used to predict lymphatic cancer and to predict whether a U.S. House of Representatives Congressman is a democrat or a republican based on 16 key votes identified by the CQA
  • Single-Layer Neural Network Using Stochastic Gradient Descent Code
    • Implemented an algorithm that learns a single-layer neural network using stochastic gradient descent (on-line training).
    • This algorithm was intended for binary classification problems where the output unit used a sigmoid function.
    • Stochasic gradient descent was used to minimize squared error.
    • Tested the obtained neural net on a data set that represented energy within particular frequency bands when the signal from a RADAR bounces off a given object. This data was used to determine if the object is a rock or a mine.
  • Iterative Dichotomiser 3(ID3) Decision Tree Learner for Classification Code
    • Implemented a ID3 Machine Learning algorithm in Python for binary classification to predict heart disease, diabetes and moves in a Tic-Tac-Toe game. Extended it to include numeric and nominal attributes.
    • Plotted and analyzed the learning curves that characterize the predictive accuracy of the learned trees as a function of the training set size.
  • Language Used: Python.
Performance Analysis during Live Migration
  • The aim of this project was to analyze the performance of the chosen workloads during live migration.
  • Downtime and total migration time rate which are the key considerations for choosing a live migration approach(pre-copy or post-copy) were recorded for drawing inferences.
  • Technologies Used: iSCSI protocol, Xen hypervisor, Perl.
Online Test Management System
  • Developed an Online Test central database coupled with an online web-portal which was an end to end framework to conduct examinations online and get details about end-users comprising of students and faculty.
  • Technologies Used: C#, ASP.NET, MySQL, SQL Server. Code.


Jua : Customer Facing System to Improve User Experience in Public Clouds

Semantic Scholar, Summer 2016

Performance Analysis during Live Migration

Volume 2, Issue 4, International Journal of Engineering Research Technology (IJERT), 22nd April, 2013.

Performance Analysis of Goldwasser-Micali Cryptosystem

Volume 2, Issue 4, International Journal of Engineering Research Technology (IJERT), 22nd April, 2013.

Green Computing – A Case Study on the Holistic Approach of Innovative Computing

National Conference on Recent Trends in Computer Technology, 29th April, 2011.

Holy Grail of Cloud Computing – Comparison of three IT giants Amazon, Google and Microsoft

International Conference on Applications of Wireless Sensor and Ad Hoc Networks (ICWSAN), 10th March, 2013.