Embedded Software Engineer
We are looking for an Embedded Software Engineer to join our new hardware-focused project. In this role, you will not only develop software for existing and new platforms but also engage in reverse engineering of solutions from equipment manufacturers, as well as developing system support services.
Remote work is possible from Nizhny Novgorod (as well as other cities in the Russian Federation).
Main tasks:
- Development and enhancement of an internal hashboard management system adapted to our company's hardware platforms
- Analysis of existing solutions for miners, including firmware and system behavior, to understand architecture and limitations
- Reverse engineering of third-party manufacturer solutions to ensure compatibility, optimization, and in-house support
- Participation in the development of embedded software for both current and new hardware platforms
Requirements:
- Over 4 years of development experience in embedded C and C++
- Deep expertise in Embedded Linux, including understanding the boot flow using U-Boot or other bootloaders
- Experience in configuring, modifying, and debugging Device Tree
- Experience in developing and supporting Linux kernel drivers (platform and device drivers)
- Practical knowledge of peripheral protocols: GPIO, I2C, SPI, UART/USART
- Skills in kernel and boot debugging: serial console, dmesg, printk, etc.
- Confident proficiency in Bash, Git, and Docker within development or build contexts
What we offer:
- Remote work
- Flexible schedule with a focus on results
- 20 working days of vacation + 12 bonus days
- Training budget (courses, certifications, trainings)