Dedicated Embedded Firmware Architect with more than 16 years of experience in leading, collaborating, and mentoring firmware engineers on extensive technical designs. Thorough understanding of critical design projects needs. Presents in-depth technological expertise in C Language based firmware design & development for wide range of embedded products in the fields of Automotive infotainment, Set top box, IPTV, Automotive ADAS, SD card, SD Express card, Network switches and AR/VR.
Overview
16
16
years of professional experience
1
1
Certification
Work History
VLSI Architect
Wipro USA
Mountain View, CA
11.2019 - 01.2024
Responsibilities
Architect, design and develop bootrom firmware for multiple ASIC's using ARM Cortex M7 and E34 RISCV processors.
Architect, design and develop baremetal BSP & zephyr RTOS BSP for new ASICs using GCC toolchains and open source frameworks like CMSIS.
Architect, design and develop python based platform agnostic test framework supporting debug interfaces SPI-S and JTAG for new ASIC's.
Decode data sheets, program reference manuals and UVM test cases for device driver development.
Coresight based debugger interface bring up for new ASIC targeting all pre and post silicon platforms like FPGA, Emulator, Virtual platform and Silicon.
Jtag script development for new ASIC's targeting multiple debuggers like Lauterbach Trace32, Segger JLink and Olimex.
Work closely with UVM team to extend firmware based design validation coverage during pre silicon development.
Work closely with RTL design and verification teams to execute firmware based ASIC design validation, debugging hardware bugs using debuggers and waveforms.
Work closely with pre silicon platform prototyping team like FPGA, Emulator and Virtual platform to develop the validation grade firmware needed to bring-up, stabilize and debug ASIC design issues.
Work closely with board design, silicon validation, silicon characterization, power and performance teams to execute silicon bringup and post silicon validation activities.
Work closely with production firmware and testing teams to fix performance bottlenecks and functional issues.
Porting of benchmarking utilities like coremark and dhrystone.
Develop documentation for all firmware code using Doxygen and Sphinx frameworks.
Effective and efficient usage of various development tools like configuration management, code review, bug tracking, code analysis, code coverage and cross compilation toolchains.
SPOC for software releases, documentation and customer support for internal as well as external teams.
Software Architect
Eximius Design India Pvt Ltd
Bangalore, Karnataka
04.2018 - 11.2019
Responsibilities
Create software proposals, firmware development plan & POC for multiple products spread across automotive, networking and consumer electronics.
Case study of legacy products, firmware architecture, development environment to create development plan for next gen product. Work closely with board design team to finalize the production hardware components.
Design and architect Linux based production firmware for IOT network switch product using ARM processor. This involved technically leading and guiding a team of 5 engineers to execute the development plan.
Architect, design and develop low footprint bringup firmware using zephyr to execute board bringup of a new ASIC using ARM Cortex and RISCV processor for network hardware.
Architect, design and develop bootrom firmware & MQX RTOS BSP for proprietary ASIC designed to build SD Express cards product line supporting SD spec version 7.0 using ARC700, ARC-HS and ARC-EM processors.
Design and develop MQX RTOS based SD Express cards production firmware using pre-silicon platforms like FPGA, Emulation and Virtual platforms
Decode the datasheets, program reference manuals and UVM test cases for device driver development and firmware development.
Develop MQX RTOS based device drivers for all interfaces, peripherals and protocols used in SD Express production hardware like GPIO, UART, I2C, SPI SD, PCIe, NVMe, CTT, CMC, SED, ATB, Interrupt Controller, Thermal Controller etc.
Develop storage firmware modules like flash transition layer and protocol layer for SD Express cards.
Execute software based ASIC bringup of prototyping and engineering samples.
Work closely with cross functional teams such as design, verification, firmware
validation, systems and application teams.
Develop good documentation for all the firmware development done like high level design Doc, micro architecture document, test coverage document etc.
Effective and efficient usage of various development tools like configuration management, code review, bug tracking, code analysis, code coverage and cross compilation toolchains.
Develop Lauterbach trace32 cmm scripts, segger Jlink scripts and MQX debugger scripts for multiple embedded product hardware.
Deliver knowledge sharing sessions on linux internals & storage firmware
architecture as part of organizational learning and development plan.
SPOC for SD FE Architecture aligning to SD spec version 5.0 and 6.0
Technical Leader
Eximius Design India Pvt Ltd
Bangalore, Karnataka
04.2017 - 03.2018
Design & develop bootrom firmware and MQX RTOS BSP for proprietary ASIC designed to build SD Card product line supporting SD spec version 6.0 using ARC600 processor.
Develop MQX RTOS based SD card production firmware using pre-
silicon platforms like FPGA, Emulation and Virtual platform.
Develop MQX RTOS based device drivers for all interfaces, peripherals and protocols used in SD card production hardware like GPIO, UART, I2C, SPI, SD, CTT, CMC, ATB, SED, Interrupt Controller, Thermal Controller, Patchwork etc.
Debug, rootcause and bug fixing issues identified during firmware regression testing, device validation testing, device qualification and certification testing.
Decode the data sheets, program reference manuals and UVM test cases for device driver development & firmware development.
Architect, design and develop SD 6.0 features like Command Queue and LV Init.
Executed software based ASIC bringup of prototyping and engineering samples.
Firmware support for legacy SD product line ongoing customer support.
Develop derivate and OEM products of SD 6.0 spec version.
Worked closely with cross functional teams such as design, verification, BE firmware, firmware validation, systems, testing, certification and application teams
Effective and efficient usage of various development tools like configuration management, code review, bug tracking, code analysis, code coverage and cross compilation toolchains.
Lead Engineer
Eximius Design India pvt Ltd
Bangalore, Karnataka
01.2016 - 03.2017
Design, develop and unit test low memory footprint embedded production
firmware for IOT based ADAS product called Alcohol Breath Analyzer using ARM Cortex processor using baremetal programming and FreeRTOS.
Design, develop and unit test AWS cloud based IOT solution by integrating its usage into production firmware.
Develop bare metal device drivers using CMSIS architecture for ARM cortex
microcontroller interfaces and peripherals like UART, I2C, I3C, SPI, SDIO, ADC, DAC, BLE, WIFI, Proximity Sensor, Flow Control Sensor, Tamper Sensor, Temperature Sensor, Flash, SD Card, USB Hub, Camera, GSM, and GPRS.
Decode data sheets and programmed reference manuals for firmware development.
Execute evaluation and product hardware bringup by working closely with the board design team.
Design and develop zephyr and linux based bringup firmware to execute board bringup of network based storage management hardware using ARC and ARM processors.
Develop PCIe based Linux device driver and DPDK driver for newly designed NIC card using RISCV processor.
Develop device drivers and firmware using pre-silicon platforms like FPGA, Emulation and virtual platform.
Execute software based board bringup of production hardware and reference hardware.
Work closely with cross functional teams such as board design, firmware validation, systems and application teams.
Efficient participation in peer and self code reviews and static code analysis to deliver high quality code.
Develop good documentation for all the firmware development done like high level design Doc, micro architecture document, test coverage document etc.
Effective and efficient usage of various development tools like configuration management, code review, bug tracking, code analysis, code coverage and cross compilation toolchains.
Tech Lead Software
Pace Micro Technology India Pvt Ltd
Bangalore, Karnataka
01.2012 - 12.2015
Responsibilties:
Develop low footprint embedded firmware using C and C++ for multiple STB and IPTV devices using ARM and MIPS processors using Linux.
Develop Linux and bare metal device drivers for all the peripherals and interfaces used in STB/IPTV products to be used by production boot loader and production firmware.
Developed hands-on expertise in chip vendor and third-party tools like broadcom broadband studio, TRACE32 debugger, SDE-GCC toolchains and GCC cross compile toolchains.
Perform Linux boot sequence optimization, Linux kernel customization, Linux kernel hardening and secured boot implementation to meet product requirements.
Develop STB device firmware functionality to meet various product certification requirements like DVB, Dolby MS11, VOD, and IPTV.
Work closely with the board design team and chip vendor team for Linux based STB/IPTV evaluation and production board bringup.
Work in a multi geo team environment using Waterfall as well as Agile models.
Effective and efficient usage of bug tracking and configuration management tools like Bugzilla, Jira, and SVN.
Develop high quality documentation for all firmware and software work done like design doc, test plan, and release notes.
Architect, design and develop python based Platform Validation Tool for STB product line using PyQt, Ctypes etc.
Senior Software Engineer
Allgo Embedded Systems
Bengaluru, Karnataka
04.2010 - 01.2012
Responsibilities:
Technical project lead for next generation TRIO based product involving leading a small team of 3 engineers, mentoring the team on firmware architecture, coordinating team meetings, customer interfacing, creating design documents, defining test plan, and handling firmware releases to customer.
Develop Linux device drivers for various devices and interfaces like I2C, CDROM, CD-RW, USB class drivers for IAP and MTP devices.
Develop Linux based device firmware for next generation of car infotainment product line using ARM Processor, Linux, Sqlite and Gstreamer.
Design, develop and unit test customizable and portable Linux middleware modules namely: Udev based device manager for supporting plug and play, SQLite based database manager and Playlist manager.
Enhance the product test coverage by developing new unit test case for all the features developed.
Created design documents and test plans documents for individual features and overall product.
Active participation in self-code review and peer-code review for delivering high quality firmware.
Effective utilization of tools for code review, source code version control management and bug management.
Executing the test procedure, creating release documents and making software releases to customer teams.
Knowledge sharing sessions to new team members on the product firmware architecture and protocol standards.
Analyze the customer requirements, define and document the code changes needed to customize the master firmware code to develop the product firmware specific to each customer.
Execute full product development life cycle of design, document, develop, validate and customer support for multiple products derived from MARS architecture.
Develop WIN32 API based GUI application for Car Infotainment product line using Wince OS.
Develop hands on expertise of existing CAR Infotainment firmware architecture called TRIO using COLDFIRE processors and proprietary RTOS called Flex.
Customer support for firmware related issues on multiple deployed TRIO software-based products line. Involving analyzing, debugging and fixing of customer reported firmware issues.
Design, develop and unit test new firmware features for multiple TRIO software-
based product line.
Design, document, develop and unit test IAP, MTP, MSC and USB protocol
stack enhancements to supports newer protocol versions in TRIO product line.
Design, document, develop and unit test new derived products from TRIO
software product line like:
o USB MTP device mode operation of TRIO based audio player,
o Simultaneous dual playback car audio infotainment system,
o IAP device playback system using ARM processor and Wince OS.
Usage of USB protocol analyzer to debug protocol specific bugs for IAP, MTP and MSC devices.
Education
Bachelor of Technology - Electronics And Telecommunication Engineering
AVSCET(Venkatachalam)
JNTU-Hyderabad
05-2007
Skills
Processor: COLDFIRE (MCF5249, MCF5251), ARM (IMX25, IMX35, BCM7250, STM32L1XX, STM32F7XX), MIPS (BCM97434, BCM97429, BCM97241, BCM97425), ARC (ARC600, ARC700, ARC-HS, ARC-EM), RISCV (E34) and ARM Cortex M3, Cortex M7 and Cortex A55
Operating Systems: Embedded Linux, Wince, Flex RTOS, Mqx RTOS, Zephyr RTOS, Free RTOS and Bare Metal
Programming Languages: C, C Assembly, Win32 API, Basic SQL and Arduino
Scripting Languages: Python, Unix Shell Scripting and TCL
Debugger Scripting: Lauterbach Trace32 CMM scripting and Segger JLink scripting
Version Control Tools: CVS, SVN, Gerrit, Github, Bitbucket, AccuRev and Mercurial
Bug Tracking Tools: Bugzilla, Jira and Bugme
Documentation Tools: Wiki, Confluence, SharePoint, Box, Doxygen, Sphinx and MS-Office
Development Tools: Windriver Workbench, Visual Studio 2007, Visual Studio Code, KEIL, Eclipse and Source Insight
Debuggers Tools: Windriver Workbench, GDB, Broadcom Broadband Studio, ST Link V2, Segger JLink, MQX debugger, Olimex and Lauterbach T32
Protocols and Communication Standards: GPIO, UART, I2C, I3C, SPI, SDIO, QSPI, USB, CDMA, CDROM, PCIe, USB classes (HUB, MSC, MTP and IAP), Bluetooth, DVB, IPTV, GSM, GPRS, GPS, MS11, Networking (TCP/IP, UDP, DPDK and ROCE), Audio (MP3, WMA, AAC and WAV), Storage (NAND, NOR, SD, NVMe and SDExpress) etc
Linux Operating System: Linux Architecture, Linux build system, Linux init sequence, Linux Internals, Linux device model, Linux driver model, Linux boot sequence optimization, Linux kernel Hardening, Linux plug and play, Linux IPC, Linux networking, Linux MTD subsystem, Linux USB subsystem, Linux Application programming, Linux socket programming, Linux multi-threaded programming
QA Automation Architect at Wipro Technologies, Chennai, India | Client: Edwards Life Sciences, USAQA Automation Architect at Wipro Technologies, Chennai, India | Client: Edwards Life Sciences, USA