I call myself a Software Engineer and a Maker. During the days I like to hack on embedded systems of all shapes and sizes. Having worked on systems running Yocto Linux and the Android Open Source Project (AOSP) I am very passionate about software architecture and clean code being the enablers for high quality, reusability, and maintainability. Consequently, I incorporate this mindset and principles into my way of working as I believe they are fundamental for agility and effectiveness.
Usually, I spend my evenings on open source projects which I blog about. My favorite ones revolve around IoT, robotics and handheld gadgets where I love to develop the entire product stack. Hardware-wise, this includes everything from the PCB to the physical case around the electronics and software, from the embedded firmware to the cloud. Lately, I have also gotten into creating YouTube tutorials about software craftsmanship with C++ and embedded systems.
As a side-job, I teach. Usually the subject is C++, but occasionally I delve into other topics such as Large-Language-Models and version control. My regular customers include Fortune 500 companies, automakers, automotive suppliers and more!
Additionally, for several years, I taught the undergraduate DIT112/DIT113 course on Systems Development at the University of Gothenburg. In DIT112, students learned how to create a system composed of both software and hardware components in regards to development, requirements handling, testing and quality assurance; all that, in an agile manner.
During the autumn term of 2021, I also taught the postgraduate DAT265 course on Software Evolution at Chalmers (Gothenburg). The students were taught how to evolve an existing code base by using various techniques to comprehend and refactor it while being in contact with the upstream project's stakeholders.