Designing and implementing firmware of embedded devices and systems based on 32 microcontrollers with SoCs like Memory/SPI/I2C/UART/USB etc. Designing, developing, coding, testing and debugging system software Analyzing/enhancing efficiency, stability and scalability of system resourcesResponsibilities: Design and implement software of embedded devices and systems from requirements to production and commercial deployment Design, develop code, test and debug system software using JTAG tools and conversant with Logic Analyser, DSOs etc. Code design/review (Code Walkthrough, Unit Testing & Functional Testing) Analyze and enhance efficiency, stability and scalability of system resources (Code Complexity, Cyclomatic Complexity, Loop timings, etc.) Integrate and validate new product designs Support software QA and optimize I/O performance (LDRA software testing) Provide post production support Interface with hardware design and development Expert in opensource software (Linux/Ubuntu)Mandatory Requirements and skills BTech - CS/BCA/MCA degree Proven working experience (12-15 yrs) in software development/SDLC Experience in hands-on development, coding and debugging/troubleshooting on embedded targets based on TI/Microchip/NXP/Cypress/Motorola and other 32 but microcontrollers. Experience in working with MPLAB, CCS, Keil and other development IDEs Solid programming experience in C. MISRA-C desirable for Critical Systems Proven experience in embedded systems design with pre-emptive, multitasking real-time operating systems (RTOS) Familiarity with software configuration management tools, defect tracking tools, and peer review (JTAG mandatory) Excellent knowledge of OS coding techniques, drivers, TCP/IP & UDP protocols, https, AES128 encryption, data compression techniques, MQTT etc. SPI/I2C/UART/USB interfaces and hardware subsystems Experience in working with Wi-Fi, BLE. 4G/LTE modules for data transport Experience in interfac