You are on page 1of 6

SUMMARY

* Excellent knowledge of C/C++/Unix/Linux


* Very good knowledge of ARM architecture
* 6+ years experience in UNIX/Linux internals: IPCs, Pipes, POSIX Shared Memory,
FIFOs, Message Queues, and TCP/IP Socket Programming, Semaphores, Interrupt Han
dlers (IRQ/FIQ), OS Signal Handlers, Linux pThreads
* Worked extensively on client-server computing in Linux/UNIX environment. Excel
lent skills on Unix/Linux user space
* 6 years experience in embedded systems software/firmware development: Interrup
t Handlers (IRQ/FIQ), software drivers, resolving issues involving hardware-sof
tware interface, experience with handling microcontrollers, DMA and other I/O me
chanisms, worked on firmware handling data path controllers
* Working Knowledge of Linux Device Drivers
* 10+ years of experience in software development. Extensive programming experie
nce in C/C++. I have been involved in all phases of software life cycle - Analy
sis, Design, Development, Integration, Testing, Maintenance and Debugging.
* Experience in gdb, ELF format, cross-compilers, linker configuration scripts,
GNU tools for analyzing memory leaks, system crashes, kernel panics, debugging a
ssert failures, memory corruption, shared libraries
* Experienced in Storage Domain working with Serial Attached SCSI Protocol (SAS)
& Hard Drive Diagnostics
* Expertise in low level system software concepts including interrupt handling,
multi-tasking, multi-processing systems. Worked on memory corruption, deadlocks,
race conditions, task starving and other Operating System related areas.
* Strong problem solving skills involving systems software and microcontroller b
ased hardware like I/O bridge and Data Path Controllers
* Worked extensively on client-server computing in Linux/UNIX environment
* Worked on various variants of UNIX like HP-UX, AIX, Linux, DEC Tru64
* Good background on PowerPC based microcontroller (PPC 405GP)
* In-depth knowledge in protocol state machine, computer telephony integration
* Eight years of US experience
* Strong OO analysis and design experience using Rumbaugh, Booch, UML methodolog
ies
* Interfaced with directory service protocols like DNS and LDAP.
* Strong command of UNIX kernel debugging tools and techniques

EDUCATION: B.Tech. (Electrical Engineering)


Institute of Technology, Banaras Hindu University, India.
DGPA - 8.23/10.0

SKILLS SUMMARY
Hardware Environment: x86, ARM & PowerPC based Micro controllers, IBM i/p serie
s, Ameritech Protocol Analyzers, Bus Analyzers like CATC, In Circuit Emulators (
ICE)
Operating System: Embedded Linux, HP-UNIX, DEC Tru64 (Alpha 4.X), AIX 4.X, Sun
OS, pSOS, Windows, DOS
Datacom Protocols: X.25, TCP, UDP, IP
Application Protocols: DNS, LDAP
Systems Knowledge: UNIX Internals (System V & Posix IPCs e.g. Pipes, Shared Memo
ry, Semaphores, FIFOs, Message Queues, Signals), Socket Programming, UNIX Networ
k Drivers, Posix Thread Programming, UNIX Administration
Languages: C/C++, PERL, Unix Shell Scripting, Oracle SQL*PLUS, ORACLE PL/SQL,
Batch scripts
Functional Knowledge: UNIX Systems Programming, Disk Drive Controller Firmware,
PowerPC based Microcontrollers, Communications Software (Routing, Switching, Si
gnaling, Call Processing), Data-communication Protocols, Protocol State Machine
EXPERIENCE SUMMARY
==================
Employer Name: Cavium Networks
Address: 805 E Middlefield Road, Mountain View, CA 94043
Position: Application Engineer (Software)
Date: May 2010 - present
Description:
This position involves providing engineering support to end customers for the so
ftware running on Cavium chips (Octeon). Octeon is MIPS64 based multi-core proce
ssors that offer high performance low power solutions for intelligent networking
applications. My area is to provide customer support - debug/troubleshooting, c
onfiguration, answering architecture related queries for all Cavium specific sof
tware that goes on Octeon Chips. These include embedded Linux (user space, GNU t
ools, Ethernet drivers, u-boot, PCIe/DMA drivers etc.), Cavium SDK, APIs etc.
Environment: Embedded Linux, C, GNU tools, Linux drivers, MIPS, PCIe, Emulators
(EJTAG), TCP/IP, IP-Sec
Responsibilities:
1. Provide engineering support to customers for software running on Cavium chips
(Octeon). Software includes all aspects of Embedded Linux (User Space, GNU tool
-chain, driver software - Ethernet, PCIe/DMA drivers, TCP/IP stack, u-boot). The
re is also non-Linux Cavium specific APIs/SDKs that's used to program Octeon chi
ps.

Employer Name: Seagate Technologies


Address: 1280 Disc Drive, Shakopee, MN 55379, USA
Position: Embedded Systems Software Engineer
Date: March 2005 - Present
Description:
This position involves collecting requirements, design, and implementation of co
ntroller firmware for hard disk drives and solid state drives employing synthesi
zable embedded ARM microprocessor. My area has been to work on the Interface Fir
mware (Fibre Channel, SAS) and embedded systems kernel.
Environment: Embedded C based firmware, ARM based microcontrollers, Linux (2.6 k
ernel/user space), SAS/FCAL, PCIe, Bus Analyzers, Emulators (JTAG/ICE), debugger
s, HDD, perforce
Responsibilities:.
1. Working on design/development of software PCIe driver for SSD (solid state dr
ives).
2. Working on design/development of kernel for the embedded software that would
be running on solid state drives. This is a soft realtime pre-emptive kernel.
3. Developed a software framework for simulating interface firmware functionalit
y for solid state drives. This is a Linux application involving multiple threads
, processes & device drivers that exchange information with remote PCIe target f
rom linux host.
4. Been extensively involved in Configuration Management activity involving firm
ware verification/integration, releasing code, build activities etc.
5. Developed new features involving pre-emptive, multi-tasking firmware, IRQ han
dlers. Debugged issues involving shared data problem between kernel tasks and in
terrupt handlers, memory corruption, deadlocks, race conditions, task starving a
nd other Operating System related areas. Developed extensive experience in debug
ging memory corruption related issues like faulty memory maps/memory layouts, st
ack corruption, thread safety problems, Re-entrancy issues, Instruction Area cor
ruption etc.
6. Was one of the main persons involved in firmware feature development and bug
fixing on the interface side of disk drives involving the SAS (Serial Attachd SC
SI) Protocol, Fibre Channel, Controlling hardware protocol state machines, IRQ/F
IQ handlers, Serial Bus Reset Behavior etc. Been involved in debugging assert fa
ilures, timeouts, protocol violation etc.
7. Was involved in firmware feature development and bug fixing on the download m
icrocode & reset code, firmware initialization area. Work involved creating memo
ry maps, firmware image file formats, flash layouts, memory layouts of the targe
t firmware for different Seagate products. Was involved in debugging reset code
and some aspects of hardware initialization like transceiver control, GPIO confi
guration, flash programming, Host Logic ASIC initialization.
8. Perform debugging of new behavior based on test plan using simulation, emulat
ion (JTAG, ICE) & hardware/firmware co-verification.
9. Design/development of DMA driver for SSD (solid state drives)
10.Design/development of hash table based command overlap checking mechanism for
I/O performance improvement

Employer Name : IBM (Vendor employee)


Address : 3605 Hwy 52 N, Rochester, MN 55901, USA
Position : Firmware\Software Engineer
Date: January 2002 - March 2005
Description:
The FSP (Flexible Support Processor) is a combination of hardware and software t
hat run on the Squadrons Hardware on IBM iSeries and pSeries Servers. FSP boots
up the main operating system of the iSeries and pSeries machines, carries out th
e initial hardware diagnostics and initialization and helps the system to isolat
e run time problems.
Environment: C/C++/Linux (2.4.X), Linux Shared Libraries, UNIX IPCs (pipes, sema
phores, signals), DMA (Direct Memory Access) Device Drivers, Power PC, Microcont
roller, pThread programming, Mutex, ELF
Responsibilities:
1 Design, implementation, testing of Linux shared library for providing DMAs (Di
rect Memory Access) to and from the microcontroller address space to the host ad
dress space. DMA APIs interact with the DMA device driver to transfer data betwe
en the host and the microcontroller address space using IBM's I/O bridge.
2 Maintenance/testing and enhancement of DMA device driver for PowerPC based mic
rocontroller
3 Design, implementation, testing of PERC (process error context). Perc is a thr
ead safe linux shared library that allows FSP applications to install linux sign
al handlers and specify various actions when a particular signal is received. It
also provides multithreaded application a mechanism to communicate with each ot
her using signals.
4 Design, implementation of CEC Term. This is a Unix client-server involving dae
mon and shared library that allows FSP application to shutdown the system.
5 Test automation and maintenance of CPU controls - it is a Unix client server/d
evice driver package that allows user to dump microprocessor registers, setup br
eak points etc.
6 Implementation/testing of CuOD (Capacity On Demand ). It is a simple state mac
hine that is a part of IBM's "on demand" technology offered on it's mainframes a
nd AIX servers.
7 Provide engineering support to internal & customer testing of eServers through
analyzing and fixing problems in the firmware/software. Some of the problems I
diagonized were kernel related, application errors like debugging stack/heap cor
ruption, deadlocks, reentrancy issues, basic hardware issues etc.
8 Test automation and maintenance of mailbox - it is a daemon/device driver pack
age which runs on linux and allows message passing between different partitions
of an IBMeServer.
Employer Name: Telcordia Technologies ( Contractor )
Address: 444 Hoes Lane, Piscataway, NJ, USA
Position: Systems Software Engineer
Date: March 2001 - December 2001
Description:
The ISP (Intelligent Services Peripheral) is a network system build by Telcordia
that provides Intelligent Peripheral functionality in an IN (Intelligent Networ
k). The ISP provides call routing and call processing and also contain resources
needed to exchange information with an end user, such as providing customized v
oice announcements, and collecting DTMF digits. ISP consists of several UNIX dae
mons written in C language that communicate amongst themselves using System V an
d Posix IPCs in a distributed environment.
Environment: C/UNIX (DEC), UNIX IPCs (pipes, shared memory, FIFO), Socket Progra
mming, Thread Programming, Dialogic Voice Boards (D/240SC-T1), Protocol State Ma
chines, Ameritech Protocol Analyzers, Inet Box, Cisco Summa Four VCO Switch, Ham
mer Call Generator, UNIX Administration
Responsibilities:
* Implementation of Rotary, LRU, Round Robin based algorithms for outgoing port
selection on switchless ISP
* Design and Implementation of the switchless ISP. Switchless ISP is a framework
that uses Dialogic Voice Boards for call processing instead of Cisco Switch. It
is an UNIX based application written in C/C++ using pthreads, UNIX IPCs like pi
pes, FIFOs, shared memory, signal handlers.
* UNIX Administrator for ISP Group

Employer Name : Hewlett Packard, India Software Operations


Address : 29 Cunningham Road, Bangalore 560 052, India
Position : Senior Systems Software Engineer
Date: March 2000 - March 2001
Description:
Internet Services is a group within HP UNIX that provides enhancements/developme
nt and customer support to routing and application protocol software related to
TCP/IP. "telnet", "ftp", "named" DNS server), "gated" (UNIX daemon that perform
IP routing), "sendmail" are some of the products owned by Internet Services.
Environment: DNS, LDAP, C/C++/UNIX, TCP/UDP socket programming, OOAD/UML, iPlane
t Directory Servers, UNIX shell scripts, UNIX Administration
Responsibilities:
1 Addressed customer issues involving code changes of HP-UNIX's DNS server "name
d" as well as DNS related tools like dig, nslookup and libc. "nslookup" is a DNS
related tool that acts as a UNIX client. "named" (BIND implementation of DNS) i
s basically a UNIX daemon that use UDP socket programming for communicating with
the client.
2 Ported a version of "named" supporting threads (BIND v9) on HP UNIX 11.11
3 Complete Automation of all DNS testcases
4 Investigation and design of DNS-LDAP (DNS Interface to Lightweight Directory A
ccess Protocol).
Employer Name : Infosys Technologies Ltd
Address : Electronics City, Hosur Road, Bangalore - 561 229, India
Position : Systems Analyst
Date: March 1997 - February 2000
Client : Nortel Networks
Description:
OCTAVE (Object Centered Test Automation and Verification Environment) is a telec
om systems based application and an automation platform developed by Nortel Netw
orks for testing various functionalities of a DMS 100 Switch. OCTAVE is comprise
d of C++ client libraries using UNIX based drivers and communicated with Amerite
ch boxes to simulate calls.
Environment: C, C++, DMS Switch, ANSI-ISUP, SS7, Socket Programming, UNIX Admini
stration, UNIX IPCs, Oracle PL/SQL, pSOS, VxWorks, Protocol State Machines, AIX
, Linux
Responsibilities:
1 Designed and implemented OCTAVE support for X.25. This required creating an in
dependent driver running on AIX, and C++ client library. The AIX driver used TCP
sockets for communicating with the client. Besides that it communicated with ce
rtain message logging daemons using System V message queues.
2 Design and implementation of OCTAVE support for PCPT (Precise Call Progression
and Tone Detection). This required code changes in existing C++ libraries and U
NIX device drivers
3 Designed and implemented OCTAVE-ISUP. OCTAVE ISUP is ANSI-ISUP interface to th
e OCTAVE platform. This project required developing C++ libraries, a server deve
loped from scratch that was meant to run on VxWorks. Driver was running on VxWor
ks.
4 Design and implemented OCTAVE-VCO (Virtual Captive Office) interface for suppo
rting R1/R2. This required rewriting the existing UNIX drivers to communicate wi
th VCO using TCP sockets and some APIs provided by VCO.
5 UNIX Administrator for OCTAVE group

Employer Name: Crompton Greaves Ltd.


Address: Kanjur Marg, Mumbai, India
Position: Electrical Maintenance Engineer
Date: December 1995 - February 1997
Description:
Responsible for analysis and troubleshooting of electrical/electronics problems
related to power electronics, programmable logic controllers, servo and hardware
related areas. Work mainly involved working on power electronics, control syste
ms, drives and working with analog and digital electronics.

ACHIEVEMENTS/AWARDS
* Employee Recognition Award from Seagate for customer satisfaction
* Employee Recognition Award from HP for my work on automation of Network System
Testing
* Spot Award from Infosys for Customer Satisfaction
TRAINING:
Six months of extensive class-room/lab training at Infosys. This covered Compute
r Science concepts like Operating Systems, Data Structure and Algorithms, Databa
se, Client-Server Architecture, UNIX, C, Oracle etc. Also went through some tele
com training covering Exchange Switch concepts, Call Processing, NA dialing and
introduction to ISDN and CCS7.
REFERENCES: Available upon request.

You might also like