NAME
maciej-grochowski – systems programmer
SYNOPSIS
maciej-grochowski [--kernel] [--security] [--hardware] [--filesystems] [--networking] [--ml]
DESCRIPTION
Systems programmer. A decade-plus working on the parts of software most people ignore until they break: networking stacks, cryptography libraries, filesystems, kernel internals, hardware interfaces.
This blog is a record of things figured out, things kept forgetting, and occasionally things worth having an opinion about.
HISTORY
Started in embedded — bare-metal and RTOS on microcontrollers, building medical devices. Full range of tasks: from fixing broken board traces to adjusting UI on small LCDs. Preferred the soldering iron. Getting burned is less painful.
A research project on hydrodynamic modelling in CUDA followed. Operating continuously on 4D matrices does something permanent to how you think about memory layouts. The project died the slow death common to academic software. The spatial intuition stayed.
A detour through application development. Learned a lot about design patterns and server-side architecture. Wanted to leave. Left.
Systems programming since. Networking stacks, crypto, performance, filesystems. The rabbit holes are deep and mostly worth it.
TOPICS
Operating systems, parallel and concurrent computing, low-level software, security and vulnerabilities, networking, cryptography, neural networks. Languages are a secondary concern — pick the right tool and move on.
PHILOSOPHY
The Wikipedia definition of engineer has always resonated more than most:
An engineer is a professional practitioner of engineering, concerned with applying scientific knowledge, mathematics, and ingenuity to develop solutions for technical, societal and commercial problems.
Operative phrase: applying knowledge to develop solutions. Not “implementing requirements.”
AUTHOR
Maciej Grochowski <maciej[dot]grochowski[at]pm[dot]me>