I am a passionate Linux kernel developer who enjoys collaborating with the Linux kernel community. This is a GitHub page - so people probably expect to see techy stuff here. Guess what, I am not always just sitting in front of a computer or tinkering with electronics. I do also enjoy for example riding a motorbike, fishing, hunting and jogging.
Most of my work has been done for the Linux device drivers and related frameworks. For some reason, the interrupt-handling code and races around it have always facinated me. I've also enjoyed designing and implementing (timing-wise) performance critical pieces and building the locking mechanisms around them. At some point, I also had my share of both the in-kernel and userspace networking code. For example, the Linux IPv6 routing code probably still includes a tiny contribution from me :) Oh, I forgot to mention the Denx uBoot - I've not managed to avoid tinkering with it and adding a PMIC driver upstream too ;)
As I said, I enjoy collaborating with the Linux kernel community. You can find my name from the MAINTAINERS file - and code authored by me at least from the regulators, GPIOs, regmap-IRQ, linear-ranges, watchdog, RTC, IPv6, netlink, power-supply, IIO, clk - and maybe some other - subsystems/components. Working with the upsteam community is the key thing for me. By the way, this should not be a surprize - none of my contributions have gone upstream without a few review comments and fix iterations. Reading suggestions and even criticism is hard - I am proud of my code - but it is also educating. I have learnt from all of the comments whether they have resulted a change in code/comments or not. It has not been easy to learn how the community works. It has taken a lot of time and effort, but at the end of the day it has been worth it. It's not only I have learnt the technology, people and processes, but also a few of the other Linux developers have learnt my ways and small oddities. I think I can say I am a part of that community by now. It helps with the further work I do. By the way, let's reverse back a few sentences to being proud of my code - being proud of your code is important. It is often linked to caring for the code you have written. Fixing your bugs and making improvements. I believe in being responsible.
This is the question I have been asked in almost all job interviews in which I have participated. Sigh. I have been working with Linux for around 20 years. Last 15 mostly writing device/bus drivers. Still... Do I know Linux? According to the web, there were 20.7 million lines of code in Linux at 2020. (I didn't check this, but the figure sounds reasonable to me. You can, for example, run cloc to find out more accurate and current numbers). Point being? Who can master 20.7 million lines of code? And to be more precise, 20.7 million lines of fast evolving code. No one.
A more relevant question is if I know certain parts of code or if I know where to find out the needed details. For that, the answer is yes and yes. I know a few device driver frameworks and drivers. I know where to look for examples or documentation. For new and hard questions, I even have a few colleagues (local and remote) whom I can discuss with. Maybe most importantly - there is the whole broad Linux kernel community.
Still, do I know all the Linux? Am I a jack of all trades there? No. I don't. Ni, I am not. I know my strengths and points that need improvement - and I do always consider what I can do and what I can't do or what someone else does better.
I believe in email when it comes to communication. You can reach me using [email protected]. I am also often lurking in IRC at libera.chat channels #armlinux #linux-imx #beagle #u-boot #kernelnewbies #renesas-soc, using nick mvaittin - just please note that responses may be delayed, and messages may even be lost. So, please use email for more reliable communication.
Best Regards --Matti Vaittinen