We are seeking an experienced Embedded Hardware Engineer to join our
team and contribute to the development of firmware and low-level software for
hardware devices such as printers, scanners, and communication modules. The
firmware will interact with an Android device over a communication protocol
(e.g., PPP), intercepting and processing packets from an Android application.
The ideal candidate will have strong experience in low-level embedded
programming, including writing device drivers, optimizing real-time
performance, and working with Zephyr RTOS or similar real-time operating
systems.
Key Responsibilities:
Design, develop, code, test, and debug low-level embedded software for hardware devices.
Analyze and enhance the efficiency, stability, and scalability of the system, including:
Integrate and validate new product designs.
Optimize OS to run efficiently in constrained environments with limited CPU power, memory, and battery life.
Maintain system security and stability throughout the development lifecycle.
Ensure seamless communication between Android app and custom hardware components.
Provide post-production support by managing defects and implementing necessary updates and patches.
Develop and integrate device drivers for hardware interfaces including I2C, SPI, UART, USB, and GPIO.
Port and customize Zephyr RTOS (or similar RTOS) to meet system requirements.
Design and maintain protocol layers to handle packet interception and processing from an Android application (e.g., over PPP or a similar protocol).
Work on bootloader, kernel modifications, and hardware abstraction layers for embedded platforms.
Collaborate with other stakeholders to plan, design, develop, test, and maintain embedded software solutions.
Assist in the development of user manuals and technical publications related to the system.
Help in selection of microcontrollers/processors.
Requirements
Bachelor’s degree in Computer Science / Engineering, Electrical / Communication Engineering, or a related field.
3+ years of experience in low-level embedded software development.
Experience with real-time operating systems.
Experience with embedded operating system architecture, including bootloaders, kernels, and system services.
Strong proficiency in C, C++
Experience with writing and integrating low-level drivers, and application-level firmware.
Familiarity with constrained environments, particularly low-power, and limited-resource devices.
Familiarity with test tools, oscilloscopes, logic analyzers, battery monitors…
Experience with unit tests, static analysis tools, and automated test suites.
Experience with hardware protocols like I2C, SPI, UART, etc.
Ability to troubleshoot and debug complex software, and hardware issues.
Ability to read schematics for design, and troubleshooting.
Excellent knowledge of standard software development practices, testing and revision control (Agile software development, Git, Jenkins, CircleCI, QA tools, test driven development)
Preferred Qualifications:
Experience with Kyocera (or similar) printheads
Experience with Zephyr RTOS
Experience developing firmware that interfaces with Android applications over a network/protocol layer.
Knowledge of power management techniques for embedded devices.