
Senior Software Engineer
Apple
Dec 2014 - Present
• 10 yrs 7 mos
Audience, Inc.
Dec 2011 - Nov 2014
Software Engineering Manager
Apr 2014 - Nov 2014
• 8 mosSenior Software Engineer
Dec 2011 - Apr 2014
• 2 yrs 5 mos
Senior Software Engineer - webOS Device Drivers
HP Palm
Feb 2010 - Dec 2011
• 1 yr 11 moswebOS software platform- System software team:
Worked on the various software components and tools for the capacitive touchpanel (TP) software stack.
-Linux device driver, to drive the TP controller and receive, process and transmit touch events.
-Bringup of touchpanel hardware on new platforms.
TP firmware for single chip TP controller for phones and a multichip controller for tablet devices. Changed raw data transport to I2C + UART from SPI.
-Multitouch host library, which processed raw touch data and converted it to multitouch points and tracked fingers.
-Hal module for TP, which used linux input subsystem multitouch protocol to read multitouch events and pass them up to the UI layers. This was a portability effort to make webos linux platform agnostic.

Senior Software Engineer
Magnum Semiconductor
Aug 2007 - Jan 2010
• 2 yrs 6 mosSystem software for Magnum Semi AV codec SoCs for Set-top box and Video Broadcast Applications:
Bringup of DXT, a multi CPU AV codec SoC:
-Multi CPU (SPARC and MIPS) vxWorks BSP and designed a simplified vxWorks configuration, build and boot procedure for multiple OS images to run simultaneously.
-Bring up of new boards in slave and master mode configurations and debugging software issues related to the board.
-Device drivers (DMA and interrupt based) for peripherals like UART, SPI, SPI Flash and Parallel Flash, IR Rx, GPIO, Timer, I2C driven peripherals. Chip validation for these devices.
-Chip validation of inter processor communication mechanisms, identified key issues and also suggested addition of features to VLSI which helps support multi-processor communication software in the next generation ASIC.
-Backplane shared memory ethernet to enable sharing of 1 eth port amongst multiple CPUs for debugging purposes. The ethernet port was shared between CPUs running vxWorks.
Slave mode low power standby software for DXT, a multi-CPU (MIPS and SPARC) video codec ASIC.
Multi processor communication framework for DXT and D7 multi CPU SoC:
-Designed object oriented (OO) multi processor (MP) synchronization components like Semaphore Bridge, MP mutex and MP message queues.
-Designed and implemented a scalable OO remote messaging (RPC) framework between multiple processors running vxWorks. Defined a bootup and initialization sequence of multiple CPUs to initialize MPC framework.
-Involved in defining shared multi processor object oriented component architecture. CPUs of different architectures (SPARC and MIPS) were involved. Challenges included addressing cache coherency issues.

Software Engineer 2
LSI Logic Corp
Aug 2005 - Aug 2007
• 2 yrs 1 moSystem Software for LSI Logic Domino AV codec SoCs for DVD R, set top box applications.
Development and maintenance of master mode low power standby control software for a multi-threaded application running on Domino a multi CPU AV codec SoC.
Development and maintenance of BSP code, boot code, device drivers.
Validation of various IO and features (I2C, UART, SPI, GPIO, low power standby) of the codec chip and working with VSLI/ASIC teams to find workarounds. Supporting application/middleware and software quality teams by debugging board, BSP and device driver problems.
USB host controller software stack integration and maintenance for the Panasonic ATSC DVD recorder solution based on the domino codec chip. Support of mass storage and PTP devices. Analyzed USB traces for non-compliant devices. Porting of the stack to the USB controller of Domino SoC running vxWorks.
2 Optical Front End Controller Software:
Implementation of logical DVDR storage format manager for an optical front end chip used for disc recognition, blank check and multi-session recording on DVD-R and DVD+R double layer discs.
Developed simulation of write once formats (DVD+R and DVD-R single and double layer) on DVD re-writable (DVD +/- RW) which helped avoiding testing dependencies and reduced development time and reduced disc usage while testing

Software Engineer
Philips Consumer Electronics
Feb 2003 - Aug 2003
• 7 mosPhilips DVD Recorder Programmable Platform
Involved in the development and system integration of software components for a DVD recorder programmable platform. Responsibilities included development of timer recording, application level integration of recording and playback subsystems and component level integration for tuner device drivers.

Software Engineer
Tektronix Engineering Development India
Oct 2001 - Jan 2003
• 1 yr 4 mosSystem and Application software for Tektronix Waveform Monitoring Device WFM700
Design and implementation of a printing driver module for the Tektronix Waveform monitor solution for waveform quality monitoring and debugging for video broadcasting. Requirements included printing real time video signals, data and system files. PCL and Postscript printing was required for network printers.
UART based Remote Control Interface for Tektronix Waveform Monitoring device to load user presets.
SPI flash and UART device drivers.