1. Apoorv Bhargava
apoorvbh@usc.edu | www.linkedin.com/in/apoorvbhargava89/ | https://github.com/apoorvbhargava
(213)-785-4936 | 2353 Portland St. Apt# 20, Los Angeles, CA-90007
Education
University of Southern California M.S., Computer Science May 2015
Coursework: Internetworking and Distributed Systems Lab, Computer Communications, Software Defined Networking, Advance Operating
Systems, Security Systems, Introduction to Computer Networks, Analysis of Algorithms & Artificial Intelligence, G.P.A - 3.55/4
Vellore Institute of Technology, India B.Tech, Information Technology May 2011
Relevant Coursework: OS, Database Management systems, Object Oriented Analysis and Design, OO Programming, G.P.A - 9.12/10
Technical Skills
Languages: C, C++, Core Java, Python, Shell, assembly, PHP, ColdFusion, HTML, JavaScript, JQuery, SQL
Tools: Windows, Linux, git, wireshark, OPNET, Mininet, tcpdump, LibPcap, gdb, U-boot
Work Experience
Information Sciences Institute, Marina Del Rey (Graduate Student Researcher) Jan 2015 - Present
Contributing in developing a malware detection system in embedded systems (Embedded Linux, U-Boot)
Lister Technologies, India (Software Engineer) July 2011 - June 2013
Responsible for design and development of SaaS (Software as a Service) based E-Commerce platform
Automated processes and designed developer’s kit to help other co-worker’s
Academic Projects
Software IP Router in user space (C, C++ 11, Sockets, Pcap, POSIX Threads, Linux Kernel)
Developed a user space IP router to dynamically update routing tables using custom OSPF
Updated kernel routing tables using the user space routing table and supported packet destination unreachable scenarios
Interfaced with quagga routers to dynamically update their routing tables as well.
Content Centric Network using SDN (C, C++ 11, Python, Sockets, POSIX Threads, Linux Kernel)
Designed a Publisher-Subscriber model to share data among nodes and forwarded packets based on keywords/unique Id
Dynamically installed forwarding rules for each subscribed keyword
TCP state machines on Open vSwitch (C, Python, Mininet)
Modified Openflow protocol - Added support to match-action based on TCP flags
Used multi-table capability in OVS to implement TCP state machines and added 5-tuple hashing to identify flows
Fast and Reliable File Transfer Protocol over UDP (C, Sockets, TCP/IP, UDP, SCP, POSIX Threads)
Used UDP sockets to replicate TCP reliability to transfer file with higher throughput
Achieved 92 Mbps for lossless link and 55Mbps for 200ms RTT and 20% lossy link over 100Mbps bandwidth link
Improving TCP performance over lossy links (C, Linux, SCP, TCP, Linux Kernel)
Hacked into Linux Kernel to improve/remove TCP components including slow start and exponential back-off
Achieved 16 Mbps throughput for 200ms RTT and 20% lossy link over 100 Mbps bandwidth link
Grid Computing Network (Java, Sockets, RMI library, Thread Library)
Engineered a grid network to distribute processor intensive jobs among multiple executors
Designed a centralized controller to coordinate, detect (least busy node) and delegate tasks among the executors
Designed a Custom Network Protocol (C, C++11, Raw sockets, POSIX threads)
Minimized packet header length by stripping off Ethernet and IP headers to reduce overhead
Added capability to support variable packet length and tested the protocol using our custom router
File Sharing Network (C, TCP/IP, Sockets)
Simulated a resource discovery/ file – sharing network using hybrid architecture with TCP & UDP sockets.
Emulated Token Bucket Filter (C, POSIX Threads)
Designed a time driven token bucket filter to transmit packets from one queue to another
Publications
Masoud Moshref, Apoorv Bhargava, Adhip Gupta, Minlan Yu, Ramesh Govindan, Flow-level State Transition as a New
Switch Primitive for SDN, appeared in HotSDN '14 - ACM SIGCOMM