Embedded Software Developer with Rust

Posted Oct 2

Company Description

We are an ambitious software development company with solid experience in IoT, Automotive, Industrial Machinery Manufacturing, AdTech, Gambling, and other domains.

We are continuously explore and develop various high-performance, low-level systems and applications using Rust and C. Our potential projects focus on optimizing system performance, enhancing security, and providing robust solutions across diverse industries.

We are seeking specialists who will strengthen our team with the opportunities in Rust.

Job Description

  • Develop software components using Rust
  • Contribute to the development of technical project documentation and user documentation
  • Participate in conference calls and face-to-face meetings with the Customer and Customer partners
  • Comply with the best engineering practices, technical standards, and quality criteria set forth on the project
  • Report status and progress according to the project and company demands
  • Spot current deficiencies in the development process, adopted procedures, and engineering practices, environment configurations, etc., and suggest improvements
  • Escalate technical issues to the Architect, Team Lead, and Project Manager
  • Improve your qualification within the areas of expertise at various training courses, seminars, and/or other educational organizations

Qualifications

  • Strong Rust programming skills with a solid understanding of ownership, borrowing, lifetimes, and Rust's memory safety features
  • Familiarity with microcontrollers (ARM Cortex-M, AVR, ESP32, STM32) and their architecture, instruction sets, and peripherals
  • Proficiency in using Rust libraries for embedded hardware, such as Cortex-M and stm32xxxx-hal, etc.
  • Understanding of RTOS concepts, including task scheduling, real-time constraints, and interrupt handling; hands-on work with RTOS like FreeRTOS or RTIC in Rust
  • Experience interfacing with peripherals like GPIO, UART, I2C, SPI, ADCs, and timers
  • Familiarity with embedded toolchains, such as cargo-embed, cargo-flash, and cross-compilation techniques
  • Expertise in debugging embedded systems using tools like GDB, OpenOCD, and JTAG/SWD probes
  • Familiarity with automated testing setups for embedded systems, integrating with CI tools.
  • Ability to write and run unit tests, integration tests, and hardware-in-the-loop (HIL) tests in embedded environments. 
  • Good proficiency in C programming
  • Troubleshooting experience for both software and hardware issues in embedded environments.
  • Upper-Intermediate level of English

WOULD BE A PLUS

  • Understanding of electronics and how embedded software interacts with circuits and sensors
  • Scripting skills in Bash and Python
  • Familiarity with Google Protobuf protocols
  • Experience with cross-compiling Rust for multiple platforms
  • Knowledge of low-power design for optimizing power usage in battery-operated devices