Highly motivated and self driven graduate student seeking a position in the Embedded Systems domain, bringing 6 + years of industry experience with the ability to interpret the customer requirement specification in order to derive software requirements, design,implement and test the software. Experienced in developing software based on Embedded C programming. Also, skilled at debugging and resolving customer issues by obtaining data and performing analysis to identify the cause and effect.
-
Experience
Senior Software Engineer, Robert Bosch Engineering and Business Solutions Private Ltd, Bangalore,India,July 2012 - December 2018
• Extracted software requirements specification (SRS) from customer requirement specification by interfacing with the cross functional teams on need basis.
• Designed software requirements using UML models using IBM Rhapsody tool for the software components in the project.
• Configured and developed software such as communication and memory stack as per ISO26262, AUTOSAR and MISRA C standards.
• Understanding of protocols such as ISO 14229(Application layer), ISO 15765-20(Network layer and transport layer), ISO 11898(CAN - Data link and physical layer).
• Validated the software artifacts by developing functional test cases in IBM Rational Quality Management tool and performed open and closed loop tests.
• Ensured traceability in the V-model SDLC by using IBM provided ALM tool chain.
• Actively participated in reviews of SRS, Design, Code, High Level Test design and Test specification
• Performed Software configuration management using ALM, GIT, SDOM (Bosch in house).
• Supported global test teams in order to facilitate unit testing.
• Received trainings from counterparts while in Bosch Germany and cross trained the team back in India.
• Proficient in prioritizing, debugging and analyzing customer reported issues and expedite the resolutions.
• Developed automated testing for Memory Management module, which substantially reduced the testing time by 40%.
• Worked with Lean Management methodologies and Agile work environment.
• Represented ZF8HP3G Project’s Integration testing (ENG.7) and Software testing (ENG.8) processes in ASPICE internal assessment in RBEI.
-
Projects
Home automation based on IOT
Designed and implemented home automation system to control and manage home appliances. The user controls the appliances using the developed android app. The android app and Raspberry Pi interact with the database in the XAMPP server based on MySQL in order to control the devices
Linux UART device driver for an emulated ARM versatile PB board
Developed simplified character driver which reads and writes to the UART data register by polling. Linux kernel is built using ARM cross compiler. The driver code is cross compiled and loaded into a directory in BusyBox and tested using QEMU.
Matrix multiplication using systolic arrays in VHDL
Designed finely pipelined matrix multiplier based on systolic arrays using VHDL. The matrix multiplier accepts inputs from the 2 read ports of RAM in an orderly manner via a decoder and performs matrix multiplication. The result is written back to RAM via the write port. The clock cycles for one complete matrix multiplication is then determined.
Performance Evaluation of deep learning algorithm on GPU and Xilinx FPGA
Implemented MobileNet V1 deep learning algorithm using OpenCL on NVIDIA Tesla K20 GPU and AWS cloud with Xilinx Virtex UltraScale + 9 FPGA accelerator. The implementation was done using direct convolution and general matrix multiplication methods and the performance was evaluated on both the accelerators.
Performance evaluation of perceptron based reuse predictor for the Last Level Cache
Implemented perceptron based learning algorithm to effectively predict the reusable blocks in the Last Level Cache (LLC). The prediction is made to identify the non-reusable block in the LLC and also determine if the requested block needs to be bypassed from the LLC. Performance of the LLC is evaluated with SPEC 2000 benchmark suite.
Priority based Pre-threaded Image Processing server
Developed an image processing server which interacts with multiple clients through a pool of worker threads using the producer consumer model. Higher priority is assigned to main thread which accepts client requests and places data in a bounded buffer which will be serviced by worker threads. OpenCV platform is used for all the image processing applications.