Niranjan Podduturi
********@*****.***
Alpharetta, GA
SUMMARY:
•Good professional experience in development of Embedded Firmware
•20+ years of expierence in embedded programming .
•Requirements elicitation and analysis
•Embedded firmware development (C, C++, RTOS VxWorks)
•Hands-on experience on bare metal Firmware development, Board level bringup and hardware debugging.
•Hands-on Embedded Linux for different firmware environments.
•Good experience on Firmware development for different protocols like, MIL-STD-1553, RS232, Arinc 429, I2C, SPI, Wi-Fi, Bluetooth.
•Having knowledge on Windows internals and ATL/COM
•Hands-on experience in driver and API library development
•Hands on experience on networking protocols.
•Understanding and knowledge on point of sale(POS)
•Unit and Integration Testing
•Team co-ordination and monitoring
•Client liaison.
TECHNICAL SKILLS:
Operating Systems
RTOS VxWorks, QNX Momentics IDE 4.7,Windows, Linux and Android
Configuration Management
VSS,TFS, Jira,Serena, MKS
Programming Languages
C,C++,C++11, VC++Microsoft Foundation Class,,C# and .NET,. QT,TCP/IP and socket programming,programming with RTOS, Diab C compilers 5.8.0.0 and 5.9.0.0,Python,Ruby and perl scripting
Protocols
I2C, SPI, MIL-STD1553B, DO-178C,ARINC 429,ARINC 653 bus protocols, Zigbee,TCP/IP, UDP,IPv4,TFTP,FTP
Wi-Fi, Bluetooth, 802.11 a/b/g/n/ac,UDP,SNMP, IPv4, IPv6,UDS,CAN
Tools
NI-CCS compiler and Spectrum Debugger, Tornado IDE, In-circuit emulators/Debuggers for AVR controllers,IAR Work Bench,MPS430,PIC, Oscilloscopes, and DMMs. Lauterbatch trace32 jtag debugger(LA-7708 debugger-USB2),Green Hills software(GHS) compiler, Renesas debugger, clockwork, EBTresos Autosar, JIRA,DOORS,MS VISIO.
Hardware
TI-28066,TI-28069, MPC 5646C, Cortex™-A9 MPCore-MC i.MX 6Solo/6DualLite,ATxmega16A4,AVR8515/8051,
87C51,Mc68332,I-386,I-486,Bus architectures (PCI, PCMCI)
EDUCATION:
Bachelor in Electrical and Electronics Engineering (1994 – 1998) from Nagarjuna University, Guntur, India.
PROFESSIONAL EXPERIENCE:
Senior Embedded Software Engineer Jan - 2017 Till Till date
Project: Development of Embedded Software
Client : NIO,San Jose,CA (Duration : May -2023 till date)
Working on BIOS development for IMX8 controller by using Yacto Linux
Working on Chip level enabling all necessary ports for CAN bus
Working on Chip level enabling all necessary ports for ADC/DAC chips
Writing device drivers and application software to Read/Wtite operations of ADC/DAC and testing ADC validation
Working on Chip level enabling all necessary ports for PCIe
Writing device drivers and application softwre to activate PCIe and test
Working on Chip level enabling all memory chips on board
Writing device drivers and application ofr memory read and write operations and testing
Working on chip level enabling all DIO ports
Written queries, stored procedures, and triggers in RDBMS Oracle, MS SQL Server, IBM DB2, MySQL.
Wrote C++ programs for end-of-day operations (EOD) to close or roll the orders.
Used STL extensively to store data on Order history, accounts, securities, etc. for fast retrieval/update.
Conducted schematic, layout, and critical component selection, programmed microcontrollers with I2C, USB, and UART.
Wrote log Server client in C++ based on TCP/IP to enable any remote client to view all logs on the STB by logging in to it over telnet. The client can see all logs on its terminal in real time as the logs get generated.
Writing device drivers and application ofr DIO read and write operations and testing
Writing Python scripring to connect with board and issue communication commands for testing.
Operating systems: Linux,Windows,Yacto Linux
Languages: C, C++,C++11 and python
Tools: Eclipse,Jira,Git, Buildroot, Jenkins
Sr. Embedded Engineer Duration : June -2022 till May-2023
Client : Microsoft
Developed and maintained kernel modules to enhance system performance and support custom hardware functionalities
Porting of StressAppTest & related libraries for Files testing of ARM Processor
Documented firmware architecture, design decisions, and API specifications for future reference and team onboarding.
Developed Application that would allow transfer of log files from Linux computer to Linux server using C++ multithreading environment.
Developed low-level system software using C/C++ to interact with hardware components, ensuring reliable communication between software and firmware.
Work on the Low Level and high-level Design Documents.
Using the gdb debugger for debugging the application
Developed embedded software solutions for connected car systems, employing C++ programming language.
Performed the integration test of the SW components and defined the CI/CD environment.
Support System Testing, Acceptance (UAT) Testing, and Production changes.
Reading CAN messages through vehicle spy between different ECU’S
Developed Different Bluetooth profiles such as A2DP,AVRCP,MAP,PBAP and HFP.
Involved in Developing test features for Navigation and Media.
Perl scripting for the development of tools for automation testing.
Involved in Developing Test frameworks for different features such as CD, Aux, Bluetooth, Navigation, AM/FM applications, and Voice Recognition (VR).
Debugging and troubleshooting production issues, enforced, documented, and implemented C++ standards guidelines.
Operating systems: Linux,Windows,Yacto Linux
Languages: C, C C++11,VC++
Tools:Git,QT, Visual Studio C++ 2017, SQL Server, Buildroot, Jenkins
Sr. Embedded Engineer Duration : August -2021 till June-2022
Client : IBM/ATT, remote
Developing firmware and drivers for WIFI modules, Ethernet modules, and the modules in the Linux operating system for Intel-based microcontrollers.
Writing Visual C++ code in MS Visual Studio 2015 Community version.
Developed an application that would allow the transfer of log files from a Linux (Debian) computer to a Linux server using a C++ multithreading environment. These log files are served using the web interface to any computer locally using C++ CGI and LAMP.
Used C ++ interface/SQL to update/retrieve information from MySQL DB.
Implemented Image processing algorithms that would run on graphic cards using Libraries namely OpenCL (for Nvidia and other graphic cards) and CUDA (for Nvidia) using C++.
Participated in gathering, planning, and implementing of Lane Departure Warning System using C++ and Image source computer vision library for Embedded Linux.
Took active part in UI Development and coding using C++/STL/QT//Unix.
Used STL containers, algorithms, various data structures, and design patterns in software design like Singleton for db connections & Observer pattern for processing events.
Developing application software for different functionalities insert,update,commit,rollback by using PostGre SQL & Pro C
Operating systems: Linux
Languages: C, C++ and Pro C
Database: Oracle and PostGre SQL
Sr. Linux Embedded Engineer Duration : August -2021 till June-2022
Project: Migrating Linux to QNX SDP 7.0 and SDP 7.1 Software on X86 _64and FPGA Arm processor
Client : Inceptio, Fremont, CA ( Duration : August -2020 till August-2021)
•Enhancing X86_64 BSP to be compatible with the latest X86_64 hardware.
•Creating bootable partitions in BSP
•Creating a UEFI build environment in QNX for X86_64 processor.
•Enhancing UEFI build file to make compatible with latest X86_64 board
•Enhancing UEFI build to accept SSH, SCP facility.
•Resolving all build errors and driver,commands related problems.
•Enhancing QNX FPGA Arm based BSP to be compatible with latest FPGA Arm hardware
•Creating SD card bootable images.
•Creating U-Boot bootable images, by integrating Xilinx’s different build’s fsbl,elf and all other necessary files.
•Resolving all build errors and driver,commands related problems.
Operating systems: QNX,Linux
Languages: C, C++.
Tools: QNX,QT, TFS, GIT
Sr. Embedded Engineer Duration : April -2020 till August-2020
Project: Design and development of SoC products for Telemetry control system
Client : Rivian, San Jose, CA
•Development of application software for External temperature sensor (tmp75aqdgkrq1) software on Yocto Linux and Android OS
•Development of application software to export registers of External temperature sensor to Sysfs on Yocto Linux and Android OS
•Development of application software for ADC on Yocto Linux and Android OS
•Development of application s/w for Audio Codec (tlv3012aqdckrq1) on Yocto Linux and Android OS
•Development of Recipe software for SPI to test SPI functionality.
•Development of Device drivers for EEPROM (at24c02c) on Yocto Linux and Android OS
•Development of board bring for new SoC products.
•Building developed device drivers, applications, and creating firmware images.
Operating systems: Yocto Linux
Languages: C, C++.
Tools: Yocto build environment, TFS, GIT, CANopen J1939
Embedded Engineer Duration : October -2018 till April -2020
Project: Design and development of SoC for high volume, high quality consumer electronics products
Client : One Link, Atlanta, GA
•Development of temperature sensor software on Linux
•Development software to Monitors and controls fan speeds on Linux
•Development software to generate PWM signals, GPIO activities, ADC activities on Linux
•Development of board bring for new SoC products.
•Development of device drivers for new SoC and debugging.
•Development of boot firmware, file systems management and memory management.
•Building developed device drivers, application, and creating firmware images.
•Design and development of Bluetooth drivers and application firmware.
•Design and development of WiFi drivers and application software.
•Development of WiFi Hub & Node configuration application software.
•Development of test application software for Triband and Dual band configurations by using Ruby.
•Development & Testing WiFi Triband and Dual band configurations in all possible Single Hub and multiple Node configurations.
Operating systems: Linux,Android
Languages: C, C++, REST API, Ruby, BOOST API.
Tools: Yocto build environment, TFS, GIT
Embedded Engineer Duration : August-2017 to October -2018)
Project: Design and development of Linux Application development for Supply chain Tools
Client : Apex Supply Chain LLC, Mason, OH GA
•Development Multi User & Client application by using Qt on Linux
•Development Multi-Threaded application by using Qt on Linux
•Development Display development application by using Qt on Linux
•Working on Postgre SQL server data base to communicate for LJCON communication, HMI Communication.
•Development of Json messages for different communication purpose application by using Qt on Linux.
•Development of Drivers and application for display systems.
•Development of Mqtt, QMqtt, Websocket applications to interface cloud & IoT
•Development of application to connect & data exchange between AWS & QMqtt, Websockets
•Development of Google Test cases for all classes/ functions application by using Qt on Linux
•Development communication classes application by using Qt on Linux
•Testing application software in different environments.
Operating systems: Linux
Languages: C, C++, C++11, REST API, SOAP API, BOOST API.
Tools: Yocto build environment, Jira, Bitbucket, buildroot toolchain, GIT, Mqtt,Websockets,Qt
Embedded Engineer Duration : January-2017 to August-2017)
Project: Design and development of embedded software for CAR Entertainment system
Client : Panasonic Automobiles (PASA), Atlanta, GA
•Development of synchronization applications using QNX
•Worked on Audio/Video entertainment system.
•Development of software to analyze different boot images loading timings.
•Analysis of Kev files in QNX.
•Testing CPU load analysis with Kev files.
•Development of application software by using protocols like J1939 & UDS
•Building new images with all latest applications.
•Measurement of Memory management and analysis
•Measurement of CPU load and analysis.
•Creating reports with Memory and CPU load data
•Measurement of memory band width and analysis
Operating systems: QNX
Languages: C, C++, Green Hills software (GHS) compiler.
Tools : GIT, CANopen J1939
Embedded Firmware Engineer November 2011 – December 2016
Project: Manufacturing Firmware Development Support (board bring up) for Coca Cola Beverages
CMC-Americas
Responsibilities:
•Development of firmware for Boot-loader for TI-28069 processor on CCS 5.4
•Development of application firmware for Audit Cup on TI-28069 processor on CCS 5.4
•Development of application software for Firmware Upgrade by using QNX RTOS.
•Development of test software for GPIOs, PWM, and ADC read, EEprom read and write.
•Development of Device drivers for GPIOs, PWM, ADC read, EEprom read and write and porting these drivers to the Board support package (BSP).
•Development of all resources(GPIOs, PWM, ADC read, EEprom read and write) test software by using Android Studio on Android OS
•Preparing specifications and test documents.
•Development of drivers and application for keyboards and display systems.
•Porting Bluetooth protocol and development of application software.
•Development of low level drivers for I2C, GPIOs,PWM,RS232,CAN
•Development of application software for motor controls by using I2C,GPIOs and PWM signals.
•Development of Boot-loader, BIOS and porting boot loader, BIOS with application, Calibration data and Application data.
•Development of automation software, by interacting with ingredient’s data from Postgre SQL database for Ingredients Sold-out automation.
•Socket programming on networking protocols like TCP, UDP.
•Design and development of Bluetooth and WI-FI drivers development.
•Implementation and integration of Bluetooth and WI-FI resources with existing application.
•Development of Human machine Interface with Qt
•System profiling estimating firmware full loading using QNX
•Development of communication from boot-loader to main application firmware and Host Computer.
•Design and development of Firmware, Boot loader and application for ADA board on Atmels ATxmega16A4.
•Developed requirements, documents and software as per DO-178C
•Xml scripting.
•Development of Firmware on low energy Bluetooth.
•Preparing make files, debugging firmware
Operating systems: QNX,Linux,,Android
Languages:C, C++,C++11,Qt,Python, C#,VC++, Microsoft Foundation Class(MFC), Win32 API
Tools: CCS Compiler, Spectrum Debugger,Postgre SQL, Green Hills software (GHS) compiler, Renesas debugger, TFS,CAN and CANopen J1939
Embedded Engineer
Project: Airbag software development for HKMC
•Development of Airbag features software (EOL, FLOG, EDR, SBR) and bench testing Airbag Control Unit.
•Developed software for commercial vehicles.
•Communicated over CAN bus between target & HOST by using different custom mated CAN tools
•Preparing make files, debugging firmware
•Development of low level Drivers for RS232,CAN,UDS
•Development of application layer by using protocals(RS232,CAN,UDS) and requirements.
•Development and integration of Bootloader with principle application software.
•Preparing specifications documents like SRS and SDDs.
Languages: C,C++,Perl and python scripting and C#
Tools: Green Hills software (GHS) compiler, Renesas debugger,JIRA, MKS, DOORS, CANoe, CTool.
Project: SPA-Development for Volvo Cars
•New MPC 5646C power PC based board bring up
•Developed software for commercial vehicles.
•Development of Start-up code for MPC 5646C.
•Development of CMM files for Lauterbach interface with MPC 5646C and debugging source code.
•Development of Boot application and debugging boot loader issues and fixing bootloader bugs.
•Configuration of registers for activation of various modules like PLL, Ports,ADC,DIOs,CAN and UDS
•Drivers development for Ports reading,writing,ADCs and DIOs and porting board support package(BSP).
•Communicated over CAN bus between target & HOST by using different custom mated CAN tools.
•Integrating code with Autosar.
Languages: Assemble, C, C++, Perl and python scripting
Tools: Wind river Diab C 5.8.0.0/5.9.0.0, Memory/Library, Lauterbatch trace32 jtag debugger (LA-7708 debugger-USB2), Green Hills software(GHS) compiler, Renesas debugger,FogBucks, GIT, Testing, EBTresos Autosar.
Project: PCD-2000R Compiler Migration
•Preparation of LDF file for memory organization
•Porting source code from UNIX HP compiler to Wind River Diab C 5.8.0.0 and 5.9.0.0 compiler.
•Debugging source code to the root level for finding the causes of crash and burn issues.
•Assignment of variables to different memory modules.
•Assignment of variables to different variable types.
•Alignment of variables and structures to proper memory size.
•Development and enhancement of Firmware for zigbee wireless mesh network.
•Removing compiler errors and warnings.
•Removing klockwork errors and warnings
•Performed Unit level functionality testing.
Languages; Assemble, C++ & C
Tools: Wind River Diab C 5.8.0.0/5.9.0.0, Lauterbatch trace32 jtag debugger (LA-7708 debugger-USB2), klockwork, Green Hills software(GHS) compiler, Renesas debugger,GIT, SourceTree, winflash, s-record converter, Algorithm, Threading, keyspan. Zigbee
CMC Ltd,Hyderabad,India October 2006 – September 2011
Embedded Firmware Engineer
Project: six DOF simulations in RTOS vxWorks
•Customization of Pcpentium4 BSP.
•Development of drivers for interface cards.
•Development of libraries for MIL-STD-1553 protocol and NI6225 ADC interface card.
•Design and development of motor control systems by using data from MIL-STD-1553 protocol, NI6225 ADC data and GPIO data. Observing feedback from ADC/DAC systems.
•Development of Graphical User Interface for all monitor parameters
•Development of application software as per the requirement and integrating the software with external hardware in the full set up establishment.
•Development of firmware and application layer of Zigbee protocol.
•Developed requirements, documents and software as per DO-178C
•Establishing the communication from host to target using RTOS (VxWorks)
•Sockect programming for data communication for IPv4, IPv6, TCP/IP, UDP protocals.
•Integration testing in On Board computer setup.
•Performed Hardware In Loop(HIL) test with integrated setup.
•Development of decoding software for detailed data analysis used to detect errors and readiness of the total establishment
Operating System: RTOS VxWorks, Linux
Protocols used: MIL-1553, RS232, TCP/IP
Languages: C, C++, C#,NET, Win32 API and Vc++
Tools: I386 compiler and I486 compilers, Green Hills software(GHS) compiler, Renesas debugger, GIT, MS Office, Testing, Tornado IDE
Project: Ground station simulation
Development of simulation software for hardware like ADC, DAC, MIL-1553B, ARINC-429 and ARINC-653, MIU.
•Timer, interrupt and tasks subroutines development.
•Interfacing simulation software with other subroutines.
•Performed Hardware In Loop(HIL) test with integrated setup.
•Developed software as per DO-178 process
•Socket programming for data communication for IPv4, IPv6, TCP/IP, UDP protocols
•Unit-Testing and Integration Testing
Operating system: RTOS VxWorks
Protocols used: MIL-1553, RS232, TCP/IP, Windows
Languages: C, C++ and Vc++
Tools : Green Hills software(GHS) compiler, Renesas debugger
Project: CODE CARD & IO CARD
•Requirement gathering
•Driver and Firmware development for Code and IO Cards.
•Unit and Integration testing
•Project documentation
Languages: C,C++ and Vc++
Hardware: Mc 68332, MIL-STD-DDC-61588 (MIL-STD 1553B chip)
Project: Simulation software for Navigation Units
•Requirement gathering
•Development of firmware device drivers for resources in Missile Interface Unit (MIU)
•Development of firmware libraries and development of subroutines to test the developed libraries
•Development of application software as per the design
•Simulation Software development on windows based system to check the performance of MIU
•Integration and Unit testing
•Project documentation
•Accessing GPS data from INS navigation system and satellites and processing GPS Data.
•Packetizing GPS Data and sending to GPS simulator system and satellites.
•Developed requirements, documents and software as per DO-178C
Operating system: RTOS VxWorks
Languages; C, C++ and Vc++
Protocols used: MIL-1553, RS232, TCP/IP, Windows
Apollo Computing Labs (P) Ltd,Hyderabad,India August 2000 - October 2006
Firmware Developer
Project: Device driver development for PCI and PCMCIA card
•Requirement gathering
•Development of device drivers and libraries for different cards and for different Operating systems
•Software development to prove the performance of cards
•Developed application to test API libraries.
•Integration and Unit testing
Languages: Device drivers Development Kit, C, C++ and Vc++
Project: Firmware Development for Missile Interface Unit (MIU)
•Requirement gathering
•Development of firmware device drivers, application software for all resources in MIU.
•Development of firmware libraries and development of subroutines to test the developed libraries.
•Development of application software as per the design.
•Development of Graphical User Interface for all modules and all monitored parameter on Bus Monitoring.
•Simulation Software development on windows based system to check the performance of MIU
•Unit and Integration testing
•Project documentation
Languages: C, C++ and Vc++
Hardware: Mc 68332, MIL-STD-DDC-61588 (MIL-STD 1553B chip), 16C554 (RS422chip), AD-1674 (ADC) and AD-664 (DAC)
Project: Fiber Optic Lc-Launcher Console
Description: Fiber Optic Lc-Launcher Console contains two similar Boards, named as FO – Console & FO – Launcher Console. FO – Launcher Console is connected to Missile and FO – Console is connected to ground station. Both the consoles are fused with same Firmware.
FO – Console reads the data from ground station (6 channels of RS-422, Discrete outputs & 40 Discrete Inputs), Prepares the Tag of channels and sends on to Fiber lines. It reads the similar kind of data & sends to Ground station.
•Responsibilities Requirement gathering
•Firmware development
•Unit and Integration testing
•Project documentation
Languages: C
Hardware: Mc 68332, 16C554 (RS422chip)
Project: Automatic Vehicle Locator using GPS
Hardware: Atmel AVR AT90s8515 Micro controller
Description: A micro controller receives signals from GPS receiver and parses the incoming messages from GPS, retrieves Lat, Long, Alt, and Time from the incoming signal and sends to the GSM (mobile unit) using AT commands. At the receiving side there is another GSM unit that receives incoming short messages which contain Lat, Long, Alt and Time and sends to the PC. PC software receives these parameters and plots the location on the graph.
•Requirement gathering
•Firmware development
•Unit and Integration testing
•Project documentation
•Acquiring GPS data from satellites & processing GPS data as per GPS interface control document
Languages: C and VC++