That’s a personal goal of mine. I’m not sure why, but I think it comes from spending a long time in computer security and feeling unsatisfied with just breaking “low level” software โ I want to be able to build it too.
But what does “pro” mean? What does “systems programmer” even mean?
Answer #1: Here are some people that come to mind
- Andreas Kling (SerenityOS)
- Alex Ionescu
- Jeff Preshing
- MaskRay
- Micah Elizabeth Scott
- Paul McKenney
- Travis Geiselbrecht
- Whitequark
Answer #2:
(Incomplete list)
Little skill | Some skill | Practical experience with | |
---|---|---|---|
Fluent in a systems programming language. Able to write idiomatic code. | x | ||
Understanding of modern systems programming concepts โ e.g. smart pointers. | x | ||
Understanding of operating system and hardware/software interface | x | ||
Competent with C/C++ build concepts โ e.g. headers, source, compilation, linking | x | ||
Able to engage professionally in open source | x | ||
Competent with git โ e.g. can rebase, rewrite history and prepare perfect patch series (no stray newlines, commits build on each other, etc) | x | ||
Understanding of multithreaded programming and concurrency. Able to write idiomatic multithreaded code. | x | ||
Skilled with development tools โ e.g. debugger | x | ||
Competent with performance profiling | x | ||
Understanding of how to model data with a static type system โ e.g. static vs dynamic dispatch, polymorphism, OOP concepts, reference vs value semantics. | x | ||
Understanding of I/O programming, esp. async I/O. | x | ||
Understanding of different OS platforms โ e.g Linux, Windows, macOS | x | ||
Experience with a variety of architectures | x |
Antigoals:
- Become highly skilled in C++ template meta-programming
Milestones
- 2014 โ First professional Linux kernel experience (internship)
- 2016 โ Landed a job working on symbolic execution engine (Trail of Bits)
- 2019 โ First professional C++ work (Trail of Bits / osquery)
- 2019 โ Landed commit in lldb
- 2020 โ Landed commit in Linux kernel
- 2021 โ Landed a full time C++ job (Ableton)
- 2021 โ Built significant git competence (Ableton)
- 2023 โ Built significant Linux kernel & hardware / software interface knowledge at work (Ableton)
- 2023 โ Built knowledge of data modeling with static type system (Ableton)