SUMMARY
• Versatile R & D Engineer with over * years experience in development of microcontroller based wireless products from conceptualization to testing.
• Experience with various embedded micro controllers including DSPs. Proficient in ARM7 based product development.
• Good working knowledge of principles of operation for NAND flash memory and JFFS2.
• Knowledge of RTOS constructs including processes, threads, scheduling, synchronization mechanisms, and memory management.
• Experience in Linux Device Drivers development (Serial, USB).
• Sound knowledge in I/O interfacing, data acquisition, and multitasking applications.
• Hands on experience on bringing up a board by porting required OS.
TECHNICAL SKILLS:
• Languages & Scripting: C, Java, Shell scripting, PERL
• Development Tools: GNU Tool Chain (compiler, assemblers, debugger, profiling tool, coverage tool, memory leakage tool), Cadence Virtuoso, Mentor Graphics IC Station, Xilinx ISE, Modelsim
• Operating Systems: Linux, Unix, RT-Linux, UC/OS-II, TinyOS
• Microprocessors/controllers: Atmel (AVR 8515, Atmega128), ARM (Intel Xscale, Philips LPC 2100, TI OMAP, ADI Blackfin), Intel 80x86, ADSP2181, TI MSP430.
• Interfaces: UART, SPI, I2C, CAN, USB, Ethernet, WLAN, Bluetooth, Zigbee
• Simulation/Modeling Tools: Matlab, Simulink, Visual DSP++, Octave, Scilab, Ptolemy, SPIN, UML
EDUCATION:
M.S Electrical Engineering, GPA 3.3
University of Southern California, Los Angeles
Bachelors in Technology, Electronics and Communication Engineering (ECE), GPA 3.5
JNTU, Hyderabad, India
PROFESSIONAL EXPERIENCE:
Shoah Foundation Institute, University of Southern California
Support Engineer May ’08 – Dec ‘08
Worked in a team to provide, maintain and support online access of shoah archives.
• Developed a script in perl to parse a server log file, extract necessary data and display the same in a web browser with variable timeline using flash.
• Developed a script in PHP to search for photographs in a directory tree, extract meta data and place in a tabular format.
• Setup and maintained splunk server to run automated commands extracting server logs.
• Responsible for maintenance of desktop machines with latest versions of in-house software.
Environment: Windows, Unix, Perl, PHP, Shell scripting, Splunk
Interactive Media Division, University of Southern California
Embedded Software Engineer Jan ’08 – May ‘08
Worked in a team to develop computer based games conceptualized by the division.
• Developed an interactive game to receive input from players and instruct using in-built voice messages.
• Implemented in C by using RFID tags to read input from player via RFID reader interfacing with a PC via USB and play back a voice message in response.
• Demonstrated the working of the game for educational purposes.
Environment: C, Visual Studio, Windows, RFID Technology
Autonomous Networks Research Group, University of Southern California
Directed Research Assistant Aug ’07 – Dec ‘08
Worked on design and analysis of algorithms for next-generation Wireless Sensor Networks.
• Implemented in NesC an algorithm for dense one-hop wireless sensor networks to sense the channel at regular intervals of time and update the transmission window accordingly for optimum network throughput.
• Tested the algorithm by setting up a dense sensor network with 50 nodes. A 3 time improvement has been observed as compared to the regular Zigbee protocol.
Environment: C, NesC, Shell scripting, TinyOS 2.0, Linux, MSP430 based hardware
Center for Development of Advanced Computing (C-DAC), Hyderabad, India
Project Engineer Mar ’05 – Jul ‘07
Responsibilities:
• Worked in a team to design, develop, simulate, and test a generic framework to enable fast prototyping of Wireless Sensor Network (WSN) applications.
• Coordinated with ANGRA University, Hyderabad in prototyping and deploying a WSN test bed
• Contributed to generation and maintenance of Technical Specifications and Design and Test Documents
• Maintained the developed code using CVS version control system
• Setup and maintained Cadence EDA software
• Contributed towards embedded systems and VLSI training activities
Relevant Projects:
Design of Transmission Packet Optimizer (Team Lead)
• Developed a low power solution for a mote to aggregate sensor data and decide when to transmit packets optimally over the network.
• The algorithm is based on receiving channel feedback for the decision.
• Implemented in NesC and tested the algorithm for changes in throughput and power over Telosb motes.
Environment: C, NesC, Shell scripting, TinyOS 2.0, Linux, MSP430 and Atmega128 based hardware
Design of Sensor Interface Unit (Team Lead)
• Developed a generic interface to access new sensors added to a mote platform from within TinyOS application.
• Implemented the interface in NesC and tested the working by adding humidity sensor.
• The interface allows for configuration of each sensor’s periodicity over the network.
Environment: C, NesC, Shell scripting, TinyOS 2.0, Linux, MSP430 and Atmega128 based hardware
NesC based Zigbee Stack
• Read, understood and developed APIs for Zigbee (802.15.4) network stack.
• Implemented the APIs in NesC and integrated into TinyOS.
• Tested the working of the stack over MicaZ motes.
Environment: C, NesC, Shell scripting, TinyOS 2.0, Linux, MSP430 and Atmega128 based hardware
TinyOS interface for MANTIS (Team Lead)
• Designed an interface to run NesC based TinyOS applications over C based MANTIS OS transparently.
• Implemented the interface in C and reused NesC applications within MANTIS.
Environment: C, NesC, Shell scripting, TinyOS 2.0, Mantis, Linux, MSP430 and Atmega128 based hardware
GSM/GPRS interface to a Wireless Sensor Network
• Developed an application in C for running in ARM based WSN base station (called Stargate) to serially interface with a GSM/GPRS Unit.
• The interface allows transmitting the collected sensor data in the base station over GPRS to a remote server.
• Used POSIX threads to run both the tasks independently and synchronized using FIFOs.
• Used socket programming to stream data over Intranet.
Environment: C, Linux, TI OMAP ARM processor, Serial I/O GSM/GPRS kit
Development of USB Device driver under linux for FTDI usb to serial converter
• Read and understood the specifications of FT232BM USB Serial IC chip
• Coded in C a device driver to support the chip in linux
• Registered the driver with Linux USB core
• Handled all the endpoints of the device
Environment: C, Linux, FT232BM based board
Porting of UC/OS – II on ARM based Philips LPC platform
• Coded the platform dependent code for UC/OS-II
• Cross-compiled for ARM platform using GNU ARM Cross compiler
• Burnt the hex code along with the application on to the LPC board and tested for proper working of the application
Environment: C, UC/OS-II, Linux, Philips LPC2100 ARM Processor
Basestation for Wireless Sensor Networks
• A model for software radio based base station (sink) for wireless sensor networks was developed in Ptolemy.
• The model was tested for functioning in Bluetooth, Zigbee and WLAN modes.
Environment: Ptolemy
Porting of SOS on AVR Atmega128 Platform
• Studied the SOS operating system for identifying platform dependent code.
• Rewrote the platform dependent code in AVR assembly.
• Cross-compiled the OS for Atmega128 with board specific memory requirements.
Environment: C, SOS, AVR Atmega128 Microcontroller
Evaluation of simulators for WSN
• Identified simulators that can support simulation of WSN specific network features.
• Evaluated Glomosim, Emstar, Omnet++, and NS2 by running test applications to analyze robustness, scalability, adaptability, easiness to learn, use, power and throughput analysis and other parameters.
Environment: C, NesC, Parsec, C++, Tcl/Tk, Linux, Glomosim, Emstar, Omnet++, and NS2
National Remote Sensing Agency (NRSA), Hyderabad, India
Engineer-I Aug ‘04 – Feb ‘05
• Responsible for generation of merged products using PAN and LISS-III satellite images.
• Developed and implemented a solution involving steerable pyramids to automate the process of merging.
• Evaluated the working of steerable pyramids and genetic algorithm in generation of the merged product
Environment: C, Java, Unix, Erdas Imagine
Somarouthu Technologies, Hyderabad, India
Design Engineer Aug ’03 – Apr ‘04
• Designed and verified the functionality of USB bus interface as per USB 2.0 Specifications.
• A Protocol engine, a packet assembly and disassembly unit, DMA interface and have been designed in Verilog and synthesized for Xilinx FPGA
Environment: Verilog, Veriwell, ActiveHDL, Xilinx Design Manager, Xilinx Spartan FPGA
ACADEMIC PROJECTS
Development of nano-kernel for AVR 8515
• Developed a kernel service for scheduling three tasks in time-sliced FIFO manner on AVR 8515
• Each task is context switch with the next task every 10 ms. Tested the functionality using 3 tasks
Multithreaded Chat Server Application
• Developed a server application in C to handle multiple users using pthreads over LAN.
• The server provides both username based authentication and MAC based authentication
• Developed a client application in C to connect to the above server, register/authenticate, and chat with other users.
• Both the above programs involved linux socket programming
Microcontroller based remote access system
• Developed a program in C and assembly to read input from microcontrollers and allow access
• Involved development of program for
a) reading the input and interfacing the microcontroller with PC,
b) Serial driver for UART,
c) Socket program allowing the transmission of data to main server and
d) An application program to respond to inputs.
TALKS
• Interfacing with AVR through Serial port: Workshop on Linux Device Drivers, Hyderabad, India 1- 2 Mar ‘07
• Bluetooth and Zigbee - A case study: C-DAC, Bangalore, India 11 Aug ‘06
• Networked Embedded Systems OS: Workshop on Wireless Sensor Networks,
Hyderabad, India 29 Dec ‘05
References:
Available upon request