GAURANG KHETAN 1401 Red Hawk Cir Apt E214 grkhetan@gmail.com Fremont, CA 94538 http://gaurang.org (650) 380-4602 Objective: Software Developer in an intellectually challenging work environment involving interesting technology. Education: Master of Science in Computer Science May 2004 University of Southern California (USC), Los Angeles, CA. Bachelor of Engineering in Electronics July 2001 University of Pune, India. Computer Skills: (Work/School) - Application Development: Expertise in C, C++, (familiar with: Perl, Assembly, Java) - Experience in: Linux/FreeBSD/IOS kernel programming, device drivers, new hardware board bring-up, file-systems, Computer Architecture, operating systems, Embedded systems, multi-threaded, multi-core programming. - Network Programming: Ethernet driver, Socket programming, Client-Server, various networking protocols like TCP, IP, UDP, Ethernet, ARP, etc, file sharing systems, ad-hoc networks - Web: Perl, HTML, CSS, JavaScript, PHP, JSP, Servlets, XML, Web Services (SOAP, WSDL). - Databases: Oracle, Mysql RDBMS; SQL - GUI Programming: Java, GTK, GNOME (familiar with: VB, VC++). - Development Platforms: Unix - Linux, FreeBSD, Solaris; MS Windows Work Experience: Sr Software Engineer Cisco Systems, San Jose, CA Feb ‘05-present Worked on several complex systems projects in the general area of Platform Software, involving intricate system design and development (often at product architectural level), complicated debugging through a large codebase, in an important role while showing leadership in several technical areas in the team. The main language used was C, and some assembly. Work included: - Worked on system design and development for porting and bringing up IOS and Linux operating systems on a new hardware platform called SAMI, a complex system involving several processors (Broadcom sibyte MIPS processors, several PowerPC processors, several IXP network processors including XScale ARM processors, nitrox processors, etc), several custom FPGAs/CPLDs. This provided experience in Operating system bringup, hardware/processor initialization/configuration/architecture, Linux kernel powerpc platform code, device drivers including Ethernet driver, interrupts handling, memory initialization, bootloader, image self-compression, embedded systems domain knowledge, networking protocols, etc. Also developed offline diagnostics software for the board. - Developed numerous platform features on the SAMI platform, including linux user-space device driver infrastructure, multi-threaded health-monitoring software, statistics and control protocol software on QNX operating system, control packet prioritization in network driver, etc. Worked on IXP network processor on the SAMI board to process packets in a heavy multi-core environment with both parallel and pipeline designs, requiring coding closer to hardware - Provided leadership in "all things Linux"in the team, and assisted in bigger picture work - like analyzing linux operating systems within cisco to identify useful components, evaluating software architecture options for next platform (virtualization of IOS on Linux, etc) - Initially worked on enhancements in the former platform called Multi-processor WAN Application Module Software Engineer Paypal (eBay Inc), San Jose, CA Mar ‘04-Oct ‘04 - Worked on implementing new product features in C++ and SQL in a Apache/Oracle/Linux environment within an industrial-strength code base of a scalable, reliable, multi-tiered, multi-component website that impacts more than 50 million customers. - Worked on Paypal’s industry-leading anti-fraud system with features like implementing anti-fraud card models, address authentications, third party communication in XML, client-servers, etc. which required understanding of web protocols and skills in programming at application, database and network levels; and involved working closely with other engineering, product, content, design, QE and other groups in the product development lifecycle. Software Developer (Internship) Lightline Software Inc, Palo Alto, CA Aug ‘03-Dec ‘03 In an exciting fast-paced Storage Security startup, worked on storage system software involving kernel programming in FreeBSD UNIX, with major features being: - Designed and implemented non-volatile caching in FreeBSD UNIX ATA/IDE disk device driver. - Wrote a simple volume manager used to form a higher capacity logical volume by doing software RAID Level 0 over existing hardware RAID Controller (3ware Escalade) storage units. - Developed a configuration system consisting of a Java Applet front-end and Perl back-end. - Developed a client-server system with a simple communication protocol. - Assisted creation of a stack of pre-allocated inodes in the file system. Research Assistant (Part-time) Prof. Massoud Pedram, EE Dept, USC Jun ‘02-Aug ‘03 - In a team of two, ported Linux kernel to an XScale-based embedded system, which involved modifying low-level details like configuration of memory controller, PCI bridges, interrupt routing, and device drivers of PCMCIA, etc. - Implemented a power manager in Linux kernel for an embedded system, using a dynamic power management algorithm to shut down devices. Modified device drivers of PCMCIA and IDE. Programming Experience: (School/Self projects) - Implemented an ad-hoc wireless network of embedded systems: Implemented Ad-hoc Positioning System which involved forming an ad-hoc network of embedded Berkeley motes and implementing a communication protocol so as to perform localization using hop-based distance estimation. Used C on TinyOS embedded operating system with resource constraints and low wireless network reliability. - Parts of Nachos Operating System: Implemented core parts of Nachos Operating System, an instructional operating system - thread synchronization, virtual memory, file systems, and multiprogramming. Used C++ on UNIX. - Built a Peer-to-Peer Network File System: Developed a distributed file sharing system using peer-to-peer mechanism (like Kazaa). Used C++ on UNIX. - Computer Virus in MS-DOS (Self): Developed a self-encrypted, polymorphic computer virus that self-replicates by infecting MSDOS executable files. Used x86 assembly language. - Retail Website: Developed a retail website with frontend in Perl/PHP and backend in Java/MySQL - Othello-playing computer program (Self): Developed a program that plays Othello, a strategy board game. Uses Artificial Intelligence Game Playing algorithms. Used VC++ on MS Windows. - DC Defibrillator Monitor: Designed and built a microcontroller (8051) based electronic system to control and monitor a medical electronics instrument called DC defibrillator. Included a software component on a PC and its interfacing with hardware. Papers: - Comparison of Memory Management Systems of BSD, Windows and Linux May 2002 A course term paper. Not a publication. Notable: - Represented USC in the regional ACM International Collegiate Programming Contest held on November 10, 2001. Competition tests problem solving and programming skills. - Presented Apollo Testbed 2 research project with Prof. Massoud Pedram at Design Automation Conference 2003, Anaheim, CA. - Scored in GRE (Graduate School Entrance Test): 2290/2400 (Verbal: 97% Quantitative: 98% Analytical: 98%). Positive Qualities: - Natural programming skills, conceptual thinking and memory, ability to understand complex concepts, fine logical/analytical thinking, passion to work. Course Work: - Graduate: Advanced Operating Systems, Computer Networks, Intelligent Embedded Systems, Analysis of Algorithms, Cryptography, Multimedia Systems, Database systems, Advanced Compiler Design, Advanced Artificial Intelligence, Logic and Its Applications, Programming the World Wide Web. - Undergraduate: Microprocessor based Systems, Digital Electronics, Electronic System Design, Computer Architecture. Other: - Visa Status: H1B: will require H1B Transfer processing. - Availability: Please inquire. - Member of Glia Society, society of people with IQ higher than 99.9% of human population. - Worked as Contributing Writer to Daily Trojan, the USC student newspaper.