Niklas Hauser

About me

I studied computer science at the RWTH Aachen University with a focus on Human Computer Interaction and Wireless Sensor Networks.

During this time I worked as a student assistent at The Media Computing Group in the area of deeply embedded electronics and helped the Institute of Transport Science rebuild their railway signalling lab. I also programmed autonomous robots for the Eurobot competition as a member of the RoboterClub Aachen e.V..

During my 2+ years at Arm, I worked as an Embedded Software Engineer on mbed OS core and HAL, as well as uVisor, a device security layer for Cortex-M microcontrollers, and the arm-none-eabi-gcc toolchain, and co-authored three patents. I have expert knowledge on and experience with all M-profile architectures (v6-M, v7-M and v8-M).

I'm currently back at university studying and working (again) on the VIA railway signalling lab where I'm designing and manufacturing a highly modular 1:32 scale signals system made of PCBs and 3D prints.

I love all kinds of engineering and technology, especially aviation, railways and robotics. Make my day by sharing about your expert knowledge!


I maintain a C++20 barebone embedded library generator called modm which can generate custom HALs for thousands of different AVRs and Cortex-M devices.

My other projects are hosted on GitHub too.


At emBO++17 I presented modm: a toolbox to generate microcontroller HALs.

At emBO++18 I held a lightning talk on ARMv8-M and TrustZone-M.

At the DLR Software Engineering Workshop 2018 I gave the keynote about Improving Embedded Software with Data Science.

At emBO++19 I gave a short talk about Modular Code Generation with lbuild.


You can reach me via electronic mail at
Follow my Twitter stream for my brain dump.
For more structured thoughts refer to my blog.