Job Description
Brief Job Description:
Senior Firmware Engineer - Microprocessor and Microcontroller:
- The position will be responsible for designing, developing, managing and maintaining the application software & board level firmware which is downloaded inside the microprocessor and microcontrollers used within the main and auxiliary control boards responsible for monitoring and controlling the Thermal products, generate diagnostic data and handle/support data traffic on various north (BACnet, SNMP, UDPCLI) and south (RS485, CAN, SPI, I2C) bound communication buses.
Responsibilities and Measurement Criteria with Time investment Needed on Each:
(This will describe the overall core responsibilities of the role, decision making responsibilities etc.)
- She/he will be responsible for designing, developing, managing and maintaining the application software (SW) & board level firmware (FW) which is downloaded inside the microprocessor and microcontrollers used within the main and auxiliary control boards responsible for monitoring and controlling the Thermal products, generate diagnostic data and handle/support data traffic on various north (BACnet, SNMP, UDPCLI) and south (RS485, CAN, SPI, I2C) bound communication buses.
- She/he will design, implement and support complex PID algorithms and document the findings.
- She/he will work with FW team members located across different geographical locations.
- She/he will create functional, architecture and design specifications documents.
- She/he will conduct unit/bench test, validate the deliverable (SW / FW releases) in accordance with the standard procedures.
- She/he will analyse the existing legacy SW /FW implementation to understand currently present functionalities & defects.
- She/he will research for best practices, coding guidelines, processes which can be improve the understanding of the SW / FW.
- She/he will research the SW / FW installation at end customer site for prototype units.
- She/he will handle/support customer questions and visit to manage relevant issues.
Qualifications:
Required/ Minimum Qualifications:
- Engineering degree, Electronics / Information Technology / Computer degree or equivalent study with experience in Embedded Software (Microprocessor or Microcontroller).
Additional / Preferred Qualifications:
- Proficiency in Programming Language C/C++.
- Practical knowledge in general Computer Science: data structures and algorithms.
- Good understanding of the main operating systems concepts: processes, threads, task and memory management, file systems, inter process communications (IPC).
- Experience with Embedded application with Microprocessor or Microcontroller.
- Hands on experience in Communication Protocols: TCP/IP based protocols (HTTP, HTTPS, SNMP, SSH, TLS/SSL etc.) CAN, I²C-Bus, UART, SPI.
- Hands on experience in developing Peripheral Device Driver: A/D and D/A Converters, Flash & EEPROM (Memory Storage), Random Number Generator, HMI, RTC, Timer/Counters & Pulse Width Modulators (PWM).
- Hands on experience in SW versioning tools like GitLab.
- Hands on experience in SW requirement and sprint management like Rally, Jira.
- Good analytical and problem-solving skills.
- Ability and willingness to learn new concepts & domain knowledge.
- Instruments: Digital Oscilloscope, Digital Multimeter.
- Familiarity with debugging tools like GDB, Wireshark, Nmap, Coverity, SonarQube etc.
- IDE: Visual Studio Code, STM32 Cube, Pycharm etc.
Physical & Environmental Requirements: - (To be used majorly for manufacturing jobs.)
Time Travel Needed: