Understanding & Hiring Low-Level System Developer
What is a Low-Level System Developer?
Low-Level System Developer program in low-level languages like C or Assembly, writing software that requires the absolute fastest performance for uses, such as high frequency trading, graphics rendering, or high volume applications, like network servers and databases.
What skills are required to be a Low-Level System Developer?
Low-level System Developer need to know the language they're working in, like C, C++, or Rust. They will have a deep understanding of how the language really works down to how the code gets turned into the individual instructions that are executed by the computer. They'll often need to understand the capabilities of the specific hardware their code will run on, as well as any other systems that it interacts with, like disks or networks.
Low-Level System Developer archetypes
Embedded Devices-Firmware Engineer
Archetype
This is an engineer who works on software running on a custom, special purpose device. They probably have experience in C or C++ (although they may use other languages). They are comfortable with thinking about memory and power usage. They may have experience with real-time computing.
Linux Internals Engineer
Archetype
This is an engineer who is comfortable working with Linux (or Unix-like) operating systems at a low level. They may have experience working on device drivers. They are comfortable thinking about scheduling, interrupts, file systems system calls. They can explain Spectre and Meltdown, and how they were mitigated.
High-Performance Software Engineer
Archetype
This is an engineer who has experience working on high-performance applications, like databases and servers. They have experience in a systems language like C, C++, Go or Rust. They probably take a slower but precise approach to programming. Concurrency is an area of strength for them. They can explain how a B-Tree is cache efficient.