JANANI DEVARAJAN
Software Networking/OS/Sustaining Engineer
. C, Kernel programming, frameworks, hooks in OS, API
. Worked on ESX, Linux, Solaris, VxWorks, pSOS, C-Executive, platforms
. C-Scope, gdb, mdb, serial line debugging, basic system
administration/IT
. Application development, programming with C++, bash, OOAD,
. Test planning, functional/regression testing, kernel debugging
. System Independent Verification Test
. Linux scheduling, concurrency, familiarity with ARM, porting, SR-IOV
Projects
Staff Researcher, Futurewei (2012-2013)
Research, proof of concept and prototype Linux based device drivers:
Implement a storage subsystem, modified PMC-Sierra storage driver to new
operating system. The project started with changing the driver to a new PCI-
E based I/O concept, involving non-transparent bridging, and associated RPC
mechanism. Besides the storage subsystem, contributed to core areas of
software development for the larger project.
Member of Technical Staff, VMWare, Inc. (2006-2009)
As the first member of a team of networking-engineers for virtual and LINUX
networking components of ESX2.5-3.5, built a team with high technical
expertise, resolved several easy and difficult problems and test failures,
participated in test planning, reproducing customer problems in-house,
enhanced technical communication with QA team, learned and re-presented
newer technology to sustaining team, trained newer staff and more. To
mention a few technical details, some fixes were related to problems in
virtual Ethernet and virtual NIC, gateway value not set, race conditions.
Exposure to wireshark, tcpdump, netperf, ping, addresses et al.
Project ESX
For ESX3.x, the project involved cherry picking features and fixes that are
best made available to customers from the development code base, cross-
ported or appropriately integrated into the release with system testing.
This involved understanding subtle architecture differences, planning for
testing. Other contributions include evaluating the impact of these
changes, using perforce scripts, editing and porting code, presenting
details of change and testing, identifying and removing redundancies in
test set up, suggesting changes for technical documentation. For ESX2.x, a
minor release, the project involved customizing and containing changes as
compared to Linux behavior.
Member of Technical Staff, Sun Microsystems Inc. (2000-2004)
As part of a large networking technology organization, I contributed to
Solaris 9 and Solaris 10 development implementing newer features and
projects in C.
Project FireEngine: Scalability of Networking Stack in Solaris
Highly visible, fast paced project involved all areas of software
engineering for performance improvement in the networking framework of
Solaris. As team-member, designed a small portion of the packet event
framework, maintained source code using scripts involved in intermediate
gatekeeping, installed build machines, test machines, ran benchmarks such
as SPECWeb, netperf, identified and fixed bugs in wu-ftp test suite.
Project STREAMS
STREAMS development for Solaris involved core networking framework
enhancements and maintenance. As team-member, enhanced the flush band
feature for Solaris 9, resolved code related bugs, organized code base
besides solving other problems like runtime assertion failures.
Senior Software Engineer, Wipro Infotech Pvt. LTD, (1999)
In sustaining-engineering, resolved a few issues in BXX version of Tandem
UX related to fault-tolerance.
Software Engineer, CoSYSTEMS (I) Pvt. LTD, (1997-1999)
As the sole engineer supporting the product, proud recipient of an award
for a flawless release, developed portions of proprietary implementation of
STREAMS in C for real-time operating systems VxWorks, pSOS and C-EXECUTIVE.
Project CoSTREAMS (STREAMS Development)
CoSTREAMS is the proprietary implementation of the STREAMS standards.
This project involved two major enhancements, porting to a different
operating system and parallel customer support with bug fixing for released
versions. Key contributions to mention include, addition of the
"Asynchronous Notification Mechanism", addition of "Zero Copy" feature for
data transfer, porting CoSTREAMS to CEXEC, a RTOS, release of CoSTREAMS as
a product, System Independent Verification Test Suite for CoSTREAMS.
Project Distributed Streams Architecture (DSA)
DSA is a facility that enables two streams modules to reside on different
hardware cards and provides communication between them. The DSA was one of
the modules in a networking stack project for BPL, India. As engineer
responsible for CoSTREAMS, my contributions were: Design and implementation
of the DSA, planning, implementation and execution of Unit Testing,
integration with DLPI layer and system testing.
Project CoSIMULATOR : Internship towards Masters degree
CoSIMULATOR is simulation of a Real Time Operating System as an
UNIX application. The CoSIMULATOR includes all the essentials of an OS:
scheduling, memory management, clock and IPC. As intern, my thesis was
based on my efforts in implementing CoSIMULATOR on SOLARIS and Sun OS.
Summer Internships for fun
C and Unix programming in Coats Viyella, Madurai, India. As a first year
student of computer science, picked up editor rules of "Vi", basic Unix
system administration commands in the two weeks in the IT department.
Pipes and processes: BHEL, Trichy, India
As a second year student, worked on using system calls such as fork,
exit, pipes to simulate a distributed banking application and data
transfer from one process to another.
Program the storage of dominoes in C, with number adjacency. The algorithm
was convoluted, and display of dominoes was completed by a friend.
Serial communication over RS-232 between two PCs:
Participated in a few aspects of the project such as design meetings
including, token presence for transmission, algorithm cases verification
via flow-chart inspection, sanity testing. Interesting thought from the
project: time division.
Build and Release
Configuration management, understanding of source code control systems such
as CVS, SCCS, Perforce, diffs, patches, evaluation of diffs, complete
understanding of software development lifecycle, good analysis and problem-
solving, adherence to standards, work towards goal, detail-oriented,
several years' experience in sustaining, all contributing to performing
daily/weekly tasks while planning and improvisation are in consideration.
Other Experience: Volunteer, service
Good score on professional effectiveness program test, help with setting up
an assembly line for service, email response in accessing a database and
pointing to the right non-profit-organizations in India.
Uniqueness
Highly diligent software engineer, with exposure to large scale systems
with well-defined modules, smaller projects from design to finish, three
design docs to personal credit, good basics in databases and SQL, good
experience in all tasks of a typical day from documentation till
integration, exceptional communication skills, customer interactions, cross-
organizational work experience, excellent team-player, good time
management.
Some situations warrant coming up with counter examples, and some require
the use of better sense gained from experience thus far to be applied
appropriately to current problem at hand.
Interests: Programming game/puzzle solutions in C++, such as Sudoku,
Dominoes.
Education
Certificate program in Linux, C++ (January 2006 - June 2006, UCSC
Extension)
Master of Computer Applications (June 1994 - March 1997, Madurai Kamaraj
University, Madurai, India)
Bachelor of Science (June 1991 - March 1994, Fatima College, Madurai,
India)
Phone: (408)-207-605 Email:
******.*********@*****.***
References: Provided upon request