Senior Software Design Engineer
CurrentAs the Technical Lead for a team of six embedded software engineers, I collaborate closely with RF-Microwave and FPGA design teams to develop advanced embedded systems that implement high-speed digital signal processing algorithms. I acquired extensive experience across the entire design lifecycle of multiple embedded systems, which has honed my system design skills. Major projects:* Designed software components and algorithms for Real Time Signal Analyzer and Spectrum Analyzer: - Developed Linux Kernel Module for 1GSa/s ADC data acquisition over PCI-Express Gen3. - Implemented C CUDA kernels for convolutions and optimized kernels for specific hardware. - Restructured CUDA kernels to have coalesced memory access patterns and utilized tensor cores. - Led the team in developing DSP algorithms for identifying regions of interest in raw data-stream. - Developed networking libraries for sending acquired to plotting application. - Parallelized DSP pipeline to utilize multicore CPU and GPU resources efficiently - Achieved real-time performance on Nvidia Jetson Xavier/Orin embedded platforms.* Implemented a framework for sensor data acquisition & fusion: - Documented roles of a cross-compatible, dynamic and easily expandable framework. - Implemented client side (heterogeneous embedded systems) protocol in C++. - Implemented the framework in C# and optimized the data codecs to have C++ like efficiency.* Designed a C# WPF data plotting and data storage application: - Implemented custom protocols for acquiring data from embedded systems over network (TCP/UDP). - Used SciChart WPF library for plotting high speed data. - Implemented data storage and playback features.* Designed a scenario simulator in MATLAB/Python which models system's inputs to generate test data.