OSFV Team Vision

A powerful vision statement stays with you, such as Disney’s “to make people happy” or Instagram’s “capture and share the world’s moments.” But for many companies, vision statements are relegated to unassuming posters in the office lobby or staff lounge, forgotten even before they are hung up. OSFV vision should not only be meaningful to leverage the team engagement, but also throw light on its specifics for potential members. This document describes the purpose of creating Open Source Firmware Validation Team, its vision concluded with strategy and its members’ possible career development paths.

We understand what the software should do
and have enough knowledge to verify it does.

Introduction

There is no value in passing all the tests. There is also none in failing all of them. And the validation, just like every other service, should be focused on bringing value. As the whole automated validation of embedded systems and firmware is still in its infancy we have a unique opportunity to influence its future shape. 3mdeb intends to be a leader in embedded validation, which means that we are going to create a special training department, promoting our vision of embedded validation and raising its level. What is more, our target is to build the Open Source Firmware Validation Framework, which is going to be a full application spreading from the cloud (virtualization, DevOps, etc.) to embedded systems (Yocto / Linux, Go, Python). This should be versatile, scalable and able to benchmark a wide range of IoT solutions out of the box. A parallel framework is going to be created for firmware (BIOS). Both are going to be consistent and interoperable with ATS (Automated Testing Summit) industrial standard and comparable to other frameworks.

Who we need

We need people who understand why it is so important not to underestimate any, even the smallest defects arising from the tests during the development or maintenance process. What seems to be a minor and insignificant bug for a single device may produce a major issue for a thousand.

What we provide

  • Hands-on the latest technologies and high-end solutions from firmware, embedded and IoT market.
  • Access to different projects with the possibility to learn a wide spectrum of modern programming languages.
  • Occasion to participate in theOpen-Source community and introduce some custom features in the source code.
  • Chance to visit many conferences and meet people from all over the world.
  • Learn from the best professionals of their specialties, firmware, embedded Linux, hypervisors, virtualization, hardware and software security.
  • Great atmosphere in the team.

Requirements:

  • competence
  • self-reliance
  • scrupulousness
  • experience with hardware
  • flexibility and ability to learn quickly
  • RobotFramework (Python), LAVA, Weles – would be an additional advantage
  • Virtual environments, unified reports database like kcidb, iPXE, Docker, integration with various API or libraries – would be great
  • Web-based technologies – depending on the infrastructure development (REST API) and IoT or Edge Computing projects, which will benefit from the OSFV team, tests targeted at web technologies can be developed and increase their percentage share.

Everyday challenges

  • developing automated tests for the newest features
  • validation of incorrectly functioning equipment
  • building and maintaining hardware used for validation (RTE, MuxPi)
  • maintaining cyclical regression tests
  • completing and set up units
  • automation of many aspects of everyday work (bash scripts, Docker files, etc.)
  • defect documentation process (detailed description for faster development)
  • preparing clear end-end documentation for the clients

Exceptionally:

  • independent fixing of errors (acceptable, but when someone knows what he’s doing – this approach saves additional time which is needed for blind fixing)
  • security topics

Full readiness

Getting familiar with processes, writing tests and our extensive testing infrastructure should take up to three months. However, taking into account the necessity to get acquainted with various projects depending on the actual needs may take a little longer.

Firmware Team Vision

If CPU is the heart of the embedded system,
the firmware is its spinal column.
Any serious malfunction of it paralyzes the whole organism.
What we do is making firmware as hard to break as possible.

Introduction

We are an independent BIOS vendor (IBV) providing open-source firmware solutions to its customers. The BIOS market is already mature and full of industry giants that provide firmware to most of the computers these days, but their solutions are mainly proprietary. 3mdeb would also like to be recognized on the market, thus we contribute to the projects such as coreboot, fwupd and many more. We are also UEFI Adopters and in the opposite to the biggest players, we are promoting its availability under the BSD 2-Clause and upstreaming source code that enables hardware of our clients to the community. We promote this approach, we prefer this approach, but all in all, we always respect our clients will. We want to prove that open solutions may also be valuable and what is the most important – secure. Creating secure firmware solutions with the best quality is one of the main Firmware Team’s tasks. Leveraging hardware security features and implementing its support (despite there is no known, fully operational open solution) is our everyday job.

Who we need

We need people who are very familiar with computer architecture and understand C and assembly languages, the limitations of hardware, its behavior in various situations and electronics.

What we provide

  • Hands-on the latest technologies and high-end solutions.
  • Access to different projects with the possibility to learn a wide spectrum of modern technologies and broad own horizons.
  • Occasion to participate in open-source community and introduce some custom features in the source code.
  • Chance to visit many conferences and meet people from all over the world.

What a good firmware engineer should be like:

  • enthusiastic about open-source – each engineer at 3mdeb should promote open-source as a part of own brand creation and company vision
  • scrupulous – even single bit change can cause a significant bug, even smallest changes in registers must not be ignored
  • self-reliant – firmware engineers at 3mdeb must be capable of finding the solution by themselves, a senior engineer may only guide to achieve a solution, but not point one
  • experienced with hardware – firmware flashing is done on a daily basis, knowledge from electronic engineering is required to avoid hardware damage during work
  • flexible and able to learn quickly – firmware prepares the environment for operating system launch, it is necessary to have knowledge about OS-firmware interactions, how to extract information, validate own work, etc.; without OS and its bootloader, the firmware is as good as useless, so often a firmware engineer work escalates to bootloaders, OSes and hypervisors
  • proficient with C and assembly – sometimes problems require deep dive into low-level code in order to locate the bug
  • patient and inquisitive – lots of firmware work is debugging while programming takes about 20% of the time; firmware engineer should be patient and inquisitive, because of the firmware complexity the problem may hypothetically lie in many components
  • willing to study – components that make a computer typically have their specification; almost every peripheral, interface, OS/firmware structures have their own specification (often hundreds of pages); firmware engineer must not be scared of the immensity of knowledge to be adopted in order to become a firmware expert
  • interested in technologies/projects like coreboot, UEFI, ACPI, Secure Boot, LinuxBoot, BMC, FPGA, EC, heads, tianocore, Linux kernel, GRUB, Xen, etc.

Everyday challenges

  • firmware development and debugging
  • hardware issues resolving
  • porting computers to open-source firmware
  • contribution to open-source projects
  • reverse engineering
  • security analysis
  • self-verification
  • documentation creation

Full readiness

Firmware topics are typically vast and the time required for full readiness may reach even years. The most important for a firmware engineer is self-improvement. Time spent on reading additional specifications and standards, getting to know new technologies and hardware pays off.

For junior (or rather inexperienced candidate) it should take 3 to 6 months to achieve basic readiness to work as a firmware engineer at 3mdeb. While for regular engineer the time required is estimated to 1 month to be capable of working as a self-reliant person.

Work with Us

Feel free to ask if you have any questions.

Back to Top