Job Description
Our team is looking for a developer who would help us on our Braiins OS miner firmware project, a solution based on Linux distribution.
Apart from developing the mining software in Rust, you will also reverse-engineer miners from manufacturing companies, developing support system services, maintaining and updating the distribution and porting it to new platforms.
🛠️ Example of a typical problem:
- Hardware team designs a new DC/DC step down (with adjustable voltage) to act as a PSU for the Miniminer.
- The step-down chip is connected via I2C to an I2C controller on SoC (the SoC itself runs Linux).
- Communication with the step-down chip needs to be tested with standard Linux tools (i2c-tools) and some kernel configuration might be necessary.
- A driver that supports this step-down chip needs to be written for bosminer (the mining software) in Rust.
- Later a watchdog chip is added for the PSU for safety reasons – the Rust driver needs to be adjusted to pet the watchdog regularly.
- A tool in Rust needs to be developed to flash the watchdog firmware during production.
💻 Another common tasks include:
- Adding support for new Bitcoin mining chips.
- Adding support for new mining hardware such as hashboards (a PCB with mining chips) and helping the hardware team to bring it up and debug it.
- Adding support for our various test fixtures.
- Reverse-engineering existing protocols and pieces of firmware to gather knowledge to implement support in Braiins OS.
🦀!Rust experience is not required!🦀
🔎 We are looking for someone who is:
- Familiar with Git and Linux.
- Experienced with Unix Shell (Bash).
- Capable of working in C/C++.
- Experienced with Embedded programming.
Experience with Rust programming is welcome, but not necessary.
🏖 What we offer to you:
Opportunity to learn and use Rust language as our primary language in production 🦀
- Full-time position with flexible working hours.
- Both possibilities to work as an Employee or Freelance.
- Indefinite agreement.
- For employees 5 weeks of vacation and 3 sick days.
- Company events, and occasional Braiins brunches in the office.
- Relaxing room, a shower, and a parking spot.
- Modern offices in the center of Prague, Czech Republic — the heart of Europe.
- Work on long-term projects in an interesting area of Bitcoin industry.
✨ Technologies used:
- Linux – development takes place primarily on computers with Linux distribution (Debian, Ubuntu, …). It is not assumed that you would work on another system.
- Rust – in the current project it is the primary language.
- Bash – this language is not our priority and most of the time we do not use it, but it is supported by the built-in Linux distribution so we expect some knowledge from you (grep, sed, awk, …).
- C – there will not be any future development in this language, but you should know it at least at the level of understanding the code.
- Gdb – knowledge of general principles and the ability to debug applications on a remote system using a gdb server.
- Git (GitLab, GitHub) – used for versioning and managing source code. You should be familiar with the Pull/Merge Request Policy and Code Review.
- Cross-compilations – general knowledge of translation issues for different architectures (ARM).
- Embedded protocols – basic overview of communication protocols GPIO, I2C, SPI, USART and their use in Linux at the application level. The advantage is an understanding of their functioning at the kernel level, where occasional intervention in their functioning is expected.
- JTAG / Logic Analyzer – HW debugging capability is welcome, but not required.
🔥 We will love you even more if…
- You are interested in cryptocurrencies or have active experience with them.
- You are interested in new technologies and development procedures.