Kamal R. Prasad
Qualifications:- B.S (Comp. Science & Engg)
Course on "Unix kernel implementation" at UC Berkeley
Course on "Bridges and Routers" at UC Santa Cruz (grade B+)
Course on Linux kernel programming and device drivers at IBM India
AIX Kernel Implementation & debugging course at IBM
Audited course on "Advanced Compilers' at Indian Inst. of Technology, Bombay
Member of the ACM
Summary : 10 years of programming experience.
Worked in United States for 5 yrs on an H1-B visa
Unix Kernel programming,
Unix System programming,
Unix Network programming,
Unix Inter-process communication,
L2/L3/L4/L7 Protocol testing
01-2003 to date: Software Architect, IBM Global Solutions Pvt Ltd., Bangalore, India
I am involved in making changes to unix utilities to make them compliant with IEEE POSIX 1003.1. The work also involves enhancements and bug fixing for libc. The work involves changes to the C Runtime library and thread-related changes in the UNIX kernel. I am in the process of publishing two articles related to changes to the UNIX kernel. I am also involved in porting NetBSD to 64-bit PowerPC architecture.
Environment:- POWER4, AIX, VisualAge C/C++, KDB, dbx, cscope
05-2002 to 08-2002:- Software Engineer, Hyperchip Inc. , Montreal, Canada
I was working as a unix kernel engineer at Hyperchip. My work involved analyzing kernel panics/deadlocks in the test lab and fixing them. I have fixed bugs in the UVM and NFS area of the kernel. I have also written a callout function for the lance ethernet device driver in order to reset it in case of a freeze.
I have written a dns client for Open/IP pseudo-TCP/IP stack. I have ported ftp, ssh and some other inetd clients for Open/IP. Work involved understanding PowerPC architecture and VxWorks.
Environment:- NetBSD, GCC, VxWorks, Embedded controller, PowerPC
02-2002 to 04-2002:- Software Engineer, Metabyte Inc, Fremont[CA]:
I was working at Metabyte Inc as a software engineer. My responsibilitirs include working as a consultant at the following client:
Redline Networks, Campbell[CA]
The work involved finding bugs in SSL implementation of the web-acceleration device. It involves testing functionality like cookies implementation for load balancing.
I was involved in implementing sysctls for certain kernel parameters (no. of keepalive probes in a tcp session) for the development team. I was involved in implementing a crypto file system for the product to ensure copy protection. Have knowledge of http/https.
Environment:- FreeBSD, GCC, Perl, Emacs and kgdb (kernel debugger)
04-2001 to 01-2002:-Sr. Validation Engineer, Nexsi Corp, San Jose[CA]:
worked as a software validation and test engineer in the Platform servies group. My work involved understanding the overall architecture of the product across various functional groups and to find bugs in the existing implementation as well as to point out inadequacies in the current implementation. The work involved working with an implementation of NetBSD on MIPS and an embedded OS. Work involved device drivers for flash manager and Gigabit Ethernet (GBICs), mac, microcode , cache coherency, TLB miss etc. Work involved writing scripts to generate race conditions in the kernel by using a cisco- type CLI. It required use of a traffic generator (Ixia/Smartbits) to stress the system and verify functionality under heavy stress. The work involved testing SNMP MIBs and Firewall functionality. The work involves testing High-Availability and VPN Implementation (with/out High availability). .
I have tested the following protocols:- 802.1 (Ethernet II) with vlan tags etc.., UDP/TCP,OSPF. FTP, HTTP, SMTP, SNMP, IPSec, VRRP
Environment:- NetBSD, Embedded OS, GCC, Perl, GPROF, GDB
05-2000 to 04-2001:- Software Engineer, Nokia Inc., Mountain View[CA]
Worked in the white box testing team to test new releases of the FreeBSD kernel used in the routers. The work involved testing Gigabit Ethernet device driver. It also involved testing some layer 3 protocol implementations like IPSec, RIP, OSPF, BGP etc.Attended a course on "Bridges and routers" on behalf of Nokia Inc. The work involved taking patches (for eg:- the ATM driver) from the developer and making a custom build of the freebsd kernel and verifying the fix. Attended a course on "FreeBSD Kernel Implementation" on behalf of Nokia Inc. in order to get an understanding of the TCP/IP implementation and the various data-structures that are used along with it. Have an understanding of VM and NFS implementation. I was involved in testing a vareity of interfaces like ATM, X.21, V.35, 10/100 mbps Ethernet at the L2/L3 layer.
Environment:- FreeBSD, GCC, Perl, Emacs and kgdb (kernel debugger)
08-98 to 04-2000: Software Engineer, Metabyte Inc
Worked for the following clients as a contractor on behalf of Metabyte Inc.
04-99 to 04-2000:- Lucent Technologies, San Jose [CA]
Worked as a QA engineer in Lucent. Work involved running some stress tests to find bugs in the OS. This involved core file analysis, analysis of the kernel in panic mode. Involved in analyzing kernel source code and writing programs to verify functionality especially those related to shared memory.implementation.
Environment: HP-Unix, FTX, cc, cscope, kdb, crash
09-98 to 03-99:- Oracle Corp. , Redwood Shores [CA]
Worked as a QA Engineer at Oracle Corp and job was to assist team to port 64- bit source code form Solaris onto Silicon Graphics high-end servers. Also involved in regression testing of RDBMS module of oracle 8.0.5/8.1.4 port from Solaris to SCO Unix.
Environment: IRIX, SCO Unix, GCC, shell scripts, GCC, DBX, Shared memory, IPC
05-97 to 08-98:- Software Engineer , Mindware Pertech Inc., Santa Clara [CA]
Worked at the following clients as a contractor on behalf of Mindware Pertech Inc.
04-98 to 08-98:- 3-COM Corp., Mountain View[CA]
Worked on a QA project to test HTTP and Mail servers for their saturation and reliability. Required knowledge of proprietary protocols in Network layer and Transport layer some of which involved wireless communication. Programming involved shared memory, threads and socket programming.
This required understanding of SMTP and HTTP protocol implementation.
Environment: Solaris 2.4, GNU C Compiler, gdb.
05-97 to 04-98:-, KLA-Tencor, Milpitas[CA]:-
Worked on a wafer inspection project AIT 2.The software was written in Visual C++ v4.2 .Involved in design and development of sub systems, porting applications onto Windows NT from DOS, script parsing utilities using bison, flex etc.
Environment: Windows NT, Visual C++ v4.0, MFC, WinNT, RPC, IPC, Bison, Flex
01-96 to 04-97:- Software Engineer, Mindware Pertech Inc.,(India):-
Worked as a software engineer in Mindware Pertech Inc, India in several of their projects.
01-97 to 04-97: Automatic Test Evaluation Software Project , Bangalore
Implemented Automatic Test Evaluation Software in Java/HTML and other Internet related technologies. The aim of this project is to re-engineer software so that it is accessible across the internet and also to demonstrate the efficiency of JAVA and HTML over conventional methods of software development. Also used socket- programming JAVA to facilitate communication between applet and application which accesses database on server. Server is a multi-threaded stand- alone Java application.
This was an in-house project.
Environment: Solaris, JDK 1.1,JDBC, and HTML 3.2
01-96 to 01-97:- Load management Software, Delhi
Worked on a software for NEC Japan named "Load Management software" that manages the load on a distributed system and displays the result on a windows machine. Used threads and socket programming, IPC, Daemons. The work involved use of shared memory and heavy use of many unix system calls.
Environment: HP-Unix, HP C Compiler, IPC, Threads, Shared Memory, Sockets.
08-95 to 12-95:- Accord Systems Pvt. Ltd., Software Engineer, Bangalore
Aircraft Harness Checkout System is used for computerized testing of the electrical components of the Light Combat Aircraft (LCA) using Hewlett Packard's programmable instruments. Involved in design and implementation of GUI in Visual C++ and real time algorithms for interacting with programmable devices for ensuring optimal and safe behavior of the instruments. Adapted Virtual Listbox into the software, which allows for infinite items in a list box. Environment: Windows 3.1,Visual C++ v1.50, MFC, DBC,VBX
04-94 to 08-95: Freelance Consultant-Vakrangee Software
Voter's Identity Card System used to automate the process of developingVoter's Identity Cards. Involved in developing a module that captures images displayed on screen using a video blaster card and a module that prints the cards on a laser printer. Used the Media Controls Interface(MCI) calls of Windows Multimedia Extensions for overlay devices to issue instructions to the video blaster driver .Developed routines to enhance images and a routine for palette extraction using the Display Driver.
Environment: Windows 3.1, Borland C++ v4.0, OWL 2.0, Adobe Type Manager
11-92 to 04-95: Software Engineer- Indian Institute of Technology, Bombay
Worked on the following projects in the institute.
07-93 to 04-95: Aircraft Systems Maintenance Simulation System
Is an authoring tool used to benchmark the technical abilities of airmen involved in the maintenance of an aircraft. Involved in writing a binary large object animator (BloB) which takes as input a script to generate animations and responses. Involved in developing an aircraft speedometer simulator.
Environment: SCO Unix, Gnu C/C++ compiler, Bison (Yacc), Flex (Lex)
11-92 to 07-93: Parallel Fortran Compiler Project,Indian Inst. of Technology
Takes a sequential FORTRAN code as input and converts it into parallel FORTRAN code as output which could be run on INMOS transputers. Involved in debugging the code that had been written earlier so that the compiler can parse LINPACK benchmark program. Written rules for IO statements typically to accommodate various IO formats and made changes to the SDTs and inter- procedural analysis module.
Environment: SunOS4.0, Gnu/ Sparc C compiler, Bison (Yacc), Flex (Lex)