systems programming
Imagine the difference between driving a car and building the engine. Most programmers drive: they write apps, websites, and games that sit on top of a lot of machinery somebody else already built. Systems programming is building that machinery underneath - the operating systems, device drivers, databases, compilers, and runtimes that other programs depend on. It is the work of writing the software that other software stands on.
Concretely, a systems program is one that manages a computer's resources directly - the CPU's time, the bytes of memory, the files on disk, the bits arriving over the network - and exposes them to everything above it. Because of that job, systems code tends to care intensely about exactly how the hardware behaves: how memory is laid out, how the CPU executes instructions, how the operating system hands out resources. It is usually written in languages like C, C++, or Rust that let you control these details precisely rather than hiding them.
Why it matters: systems programming is where speed, memory use, and correctness become non-negotiable, because a bug or a slowdown here is inherited by every program above. It rewards a precise mental model of the machine and punishes vague assumptions. The flip side is that the same low-level control that makes systems code powerful also makes it dangerous - the language will often let you do the wrong thing without complaint, which is why so much of this domain is about understanding exactly what the machine does.
The Linux kernel, the SQLite database engine, the Python interpreter itself, and your network card's driver are all systems software. The Python game you wrote that imports SQLite and runs on Linux is application software - it rides on top of all three.
The same machine runs both layers; systems software is the one everything else depends on.
There is no hard line - a single program can have systems-level and application-level parts. The label describes the role a piece of code plays (managing resources for others), not a separate kind of computer.