Key Responsibilities:
- Design, develop, and test software for embedded systems based on microcontrollers and microprocessors.
- Perform hardware–software integration and debugging using tools like JTAG, oscilloscopes, and logic analyzers.
- Develop and maintain Linux and Windows applications, including GUI development using Qt.
- Implement navigation and mapping applications using map servers and GIS-based tools.
- Work on device bring-up activities including Ethernet controllers, flash memories, display interfaces, and related hardware components.
- Develop and integrate communication protocols such as I2C, SPI, UART, PCIe, Ethernet, USB, and parallel buses.
- Configure and integrate display systems including DVI, HDMI, DisplayPort, RGB, video decoders, encoders, and display controllers.
- Collaborate with hardware and system teams for board bring-up and driver development.
- Manage source code and project baselines using Software Configuration Management (SCM) tools (e.g., Git, SVN).
- Prepare technical documentation, test plans, and reports for internal and customer reviews.
Technical Skills Required:
- Programming Languages: C, C++, Python (preferred)
- Operating Systems: Linux, Windows
- GUI Development: Qt/QML
- Bus Protocols: I2C, SPI, UART, PCIe, Ethernet, USB, parallel interfaces
- Display Interfaces: HDMI, DVI, DisplayPort, RGB, LVDS
- Device Bring-up: Ethernet PHYs, Flash memories, Display controllers, Video processors
- Development Tools: GCC, GDB, Make, CMake, Git/SVN
- Hardware Tools: Oscilloscope, Logic Analyzer, JTAG Debuggers
- Networking: TCP/IP stack knowledge preferred
- Software Configuration Management: Git, SVN, Jenkins (optional)
Educational Qualification:
B.E./B.Tech/M.E./M.Tech in Electronics, Electrical, Computer Science, or Instrumentation Engineering