Team Visions


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.


Web Dev Team Vision

Light, reliable, responsive and good-looking Web Interfaces
– let the IoT and Hardware part of the IT world be much more
consumable and interactive by the end-user.

Introduction

There are so many individuals and companies focused on Web Development nowadays. Why does 3mdeb want to take part in this market, trying to achieve greater things? What is the reason that stands behind the idea?

As a company full of firmware and embedded solutions specialists, we aim to find the golden mean between edge computing and user experience. We want, from the bottom of our hearts, to share the results of our hard work both with the communities that orbit around the similar technologies and the users that are not (yet) proficient with often tricky and problematic hardware stuff. Our target is an open, stable and user-friendly web deliverables.

Another concern that we are aware of, is the problem with the cybersecurity of Web Applications and the rising number of breaches and cryptocurrency-mining malware that attacks internet connected devices and machines. With the help of 3mdeb’s security specialists, Web Development team is going to leverage the awareness and overall security of the final product.

Who we need

We need people who understand how to create scalable and maintainable solutions: experienced developers or juniors ready to learn and overcome the specificity of the UI and UX main problems step by step. Successful IoT product needs a good quality presentation and that’s what we are going to achieve by completing the team of web development enthusiasts!

What we provide

  • Hands-on the latest technologies and high-end solutions from firmware, embedded and IoT market making the opportunity to join Web Applications with end-devices hardware stack and by that create complete IoT solutions
  • Access to different projects with the possibility to learn a wide spectrum of modern programming languages and frameworks
  • Chance for taking part in the selection of the technological stack for a new projects.
  • Occasion to participate in the Open-Source community and introduce some custom features in the source code.
  • Chance to meet people from all over the world by visiting many technical conferences that can wider your specialist knowledge.
  • Great atmosphere in the team.

Requirements:

  • good knowledge of CSS, HTML and JavaScript
  • React, Angular, Django, Golang (or another modern framework) – would be an additional advantage
  • experience with virtual and dockerized environments
  • integration with various API or libraries – would be great
  • competence and self-reliance
  • flexibility and ability to learn quickly

Everyday challenges

  • Web Design and Development
  • Web Application Development
    • Dashboard Template enabling
    • Dashboard development and improvements
  • Design, implement and maintain cloud infrastructure
  • AWS Infrastructure enabling and maintenance
  • Blog maintenance and fixes
  • Project documentation and reports creation

Exceptionally

  • DevOps and CI/CD infrastructure building
  • Develop and maintain Project Middleware
    • Provide support in the area of Go

Full readiness

The process of learning the do’s and don’ts, internal processes and the chosen web technological stack should not exceed 1 month. Full readiness and the partly self reliability to help the team in the most demanding task will come from 3 to 6 months of the hard work.


Embedded Team Vision

We prepare a whole system from a scratch, make it secure,
stable and last, but not least let it reach extraordinary performance

Introduction

We develop and maintain Embedded Operating Systems for our partners. Simple as that. We focus on solutions, which are able to operate with a limited number of resources, very compact and extremely efficient by design. These rarely have any GUI and are designed to operate on small machines with less autonomy. That include devices used in IoT, robotics, healthcare, military, and in every field where systems are operation or life-critical. We often use Yocto meta layers to prepare OS’s that would fit the best in our customers’ needs.

Who we need

We need people who are very familiar with computer architecture, understand C programming language and advanced Linux concepts. Other programming languages (C++, Golang, Python) are appreciated.

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 embedded systems 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; we focus on the contributions to the open source projects such as the Yocto Project, OpenEmbedded, Linux, U-Boot, SWUpdate and a lot of others
  • scrupulous – even single bit change can cause a significant bug, even smallest changes in registers must not be ignored
  • self-reliant – embedded system engineers at 3mdeb must be capable of finding the solution by themselves, a senior engineer may only guide to achieve it, but not point one
  • experienced with Linux – we are not only using Linux in our everyday work, we create and compile them for our and our customers’ purposes
  • flexible and able to learn quickly – embedded systems work on a low level, there is a need to understand OS-firmware interactions, how to extract information, validate own work, etc.; often an embedded engineer work escalates to bootloaders, firmware and hypervisors
  • proficient with C, Golang, Python and preferably other programming languages, sometimes problems require deep dive into low-level code in order to locate the bug, and sometimes they require knowledge about how the high-level applications works
  • patient and inquisitive – lots of embedded work is debugging while programming takes about 40% of the time; embedded engineer should be patient and inquisitive, because of the complexity of the embedded systems the problem may hypothetically lie in many components
  • willing to study – components that make a computer typically have their own specification; almost every peripheral, interface, OS/firmware structures have their specification (often hundreds of pages); embedded engineer must not be scared of the immensity of knowledge to be adopted in order to become an embedded Linux expert
  • interested in technologies/projects like various Linux distributions, Yocto Project, Linux kernel, U-Boot, GRUB, other bootloaders, Android (AOSP), OpenBMC, Xen, etc.
  • hands-on experience with various Single Board Computers, specifically with the x86 (Intel/AMD) and ARM (NXP, Broadcom, Allwinner, Amlogic, Qualcomm, Rockchip, TI, ST, …) System on Chips

Everyday challenges

  • embedded systems development and debugging
  • hardware issues resolving
  • porting computers to open-source firmware and operating systems
  • contribution to open-source projects
  • reverse engineering
  • security analysis
  • self-verification
  • documentation creation
  • porting newly created solutions to existing environments

Full readiness

Embedded topics are typically vast and the time required for full readiness may reach even years. The most important for an embedded systems 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.

Contact Us

Feel free to ask if you have any questions.