Position: Embedded Linux Developer
Company: CHI Software
Category: C++
Experience required: 5y
English level: intermediate
Published: 2023-04-01T00:00:00+03:00

**About the Client:**
Smart Home & Appliance is a design/development group designing custom embedded hardware/software solutions for its customers.

**About the Project:**
The overall system being developed involves several different hardware devices. The client is designing and building the hardware. The project's goal is to develop software that will be run on this hardware. This includes the BSP (Linux OS), the application firmware, and the firmware running in the Bluetooth module. The goal is to deliver a completed device (hardware and software), which will work with the other devices that comprise the customer’s product. 

**Requirements:**
· 5+ years of development experience;
· Solid knowledge of C++;
· Solid knowledge of Linux;
· Experience with Linux kernel device driver development;
· Experience with the Yocto system for generating BSP and SDK;
· Experience with multi-threaded code;
· Ability to quickly learn the requirements and features of the product;
· Technical writing (design documents);
· Experience with GStreamer and OpenCV;
· Experience with Bluetooth Low Energy (BLE);
· EU citizenship

**Will be a plus:**
· Experience with TensorFlow Lite for using pre-existing ML models (ML design experience not required)

**Responsibilities:**
· Develop a BSP (using Yocto) for the new hardware (BSP will include a U-Boot bootloader, Linux kernel, and standard Linux packages;
· Migrate the BSP to the new hardware design (not developing it from scratch);
· Complete development of the product’s application (Linux application running on the hardware device);
· Image processing (with GStreamer and OpenCV libraries) and TensorFlow Lite for ML processing of the image;
· Communication to external devices through Bluetooth using a custom protocol;

**With us, you can:**

**Develop your technical knowledge:**
· Use the latest technologies;
· Participate in technical events and conferences (the company covers the cost);
· Regular tech talks and professional development.

**Improve your soft skills:**
· Build strong teamwork skills and become an essential part of dynamic teams;
· Improve your English in classes and speaking directly with clients;
· Increase your productivity and communication level via Scrum, Kanban, and Agile methodologies.