Careers

At 3mdeb, we always seek passionate and driven individuals interested in open-source, technology, and security. We are dedicated to open-source and have a cypherpunk and libre philosophy in mind. We believe in the power of collaboration and welcome individuals who understand and share that approach. Whether you are an Embedded Firmware Developer, an Embedded Systems Developer, a Hardware Validation Developer, an Office Assistant, a Sales Manager, a Marketing Specialist, or a Project Manager, we welcome individuals who share our values and philosophy and can contribute to our team in various ways.

For technical candidates, we put a strong emphasis on their contributions to open-source. We want to work with individuals who have a proven track record of contributing to open-source projects, whether it’s through bug fixes, code contributions, or community support.

If you aspire to join our R&D team, participation in our 3mdeb Open-Source Bounty Program is the direct path forward. This program serves as our primary method to assess your practical abilities, coding style, and alignment with our open-source philosophy. We encourage you to demonstrate your skills and commitment by solving a bug bounty, as this is how we evaluate potential R&D team members.

While you are welcome to send your CV to career@3mdeb.com , please be aware that for R&D roles, our response will be to direct you towards our Bounty Program for the required assessment.

You can also:

  • Share the results of your work with us and show us your code. If you have already contributed to open-source projects, be sure to tell us about them during the recruitment interview. We’d love to see the results of your work, so feel free to send or show us your repository with your CV.
  • Show us what tools and programming languages you know. Check out our project details and source code in our repositories: https://github.com/3mdeb , https://github.com/Dasharo and to see if they align with your skills and interests. We value candidates with experience in at least one of the programming languages we work with every day that can immediately support us in daily projects.
  • Familiarize yourself with our products, services, and projects listed at https://shop.3mdeb.com/ . During the recruitment interview, we will ask you about your knowledge of our areas of operation and what products and services we offer. We want to make sure that your interests coincide with our business profile.
  • For non-technical candidates, we are seeking individuals who are interested in the technology industry and have a passion for learning. We value candidates with a strong work ethic and excellent communication skills, paying attention to the details, and who are eager to contribute to our team.

When applying to 3mdeb for a non-technical position, here are some tips to help you stand out:

  • Familiarize yourself with our company’s philosophy. Show us that you have a general understanding of what we do and that our values resonate with you.
  • Highlight your interest in technology and security. Let us know how you stay up-to-date with technical industry trends and news, as it is important for all team members to remain informed.
  • Demonstrate your strong communication and organizational skills. We value individuals who can effectively communicate with clients, partners and team members, and help keep the company organized and projects on track.

If you’re interested in learning more about a career at 3mdeb, don’t hesitate to reach out to us at career@3mdeb.com . We look forward to hearing from you!

career

Current Openings:


Description:

We are seeking an exceptional candidate with a strong command of C and a genuine passion for embedded systems development. If you enjoy working close to hardware and want to see your code running on real devices, this role is for you.

We offer the opportunity to work on open-source projects and collaborate with the community of world-class industry leaders, as well as work with some of the most prominent vendors to build your own portfolio through contributions. As a team member, you’ll impact the product and its final shape with opportunities for professional development, flexible working hours, and employment conditions.

We also provide training and certification to help our team members build their skills and advance in their careers. Our comprehensive benefits package includes medical care, financial support for sports cards, and group insurance.

In addition, we offer opportunities to attend international open-source conferences, some of which we co-organize with other companies, giving our team members the chance to showcase their skills and expertise. We also organize and host our own community events, such as workshops and community calls, where team members can share their knowledge and network with other industry professionals.

Requirements:

  • Knowledge of C and how programs work:
    • Ability to manage memory manually and take care of its initialization
    • Knowledge of hardware-dependent concepts: pointers, data layout, stack, bit fields, little/big endian
    • Basic data structures
    • An idea about registers and machine languages in general
    • Some information about weak object symbols, program sections, and linker scripts
  • Software development cycle:
    • Using the git version control system
    • Understanding of toolchains and cross-compilation
    • Dealing with heterogeneous build systems (GNU Make, Kconfig, etc.)
    • Non-interactive debugging (prints, logs, dump analysis)
    • Working with codebases of thousands of files written by hundreds of authors (grepping, ctags, digging in commit history to compensate for the deficiency of documentation)

Nice to have:

  • Experience with bare-metal programming and hardware abstraction layers
  • Experience with (long-running) open-source projects, their mailing lists, and review tools
  • Debugging with GDB (remote targets, symbol files, hardware breakpoints)


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

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**

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**

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**

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

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**

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**

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**

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.


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

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**

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**

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**

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.

Contact Us