Welcome, everyone, to my blog, which I have named Byte Lab. As you may have seen on the About page, this blog is going to be systems engineering-themed. What this roughly means is that I’ll be talking about anything I find interesting, as it pertains to what engineers in my tribe fondly call “systems”. This includes anything from basic systems programming concepts such as how pointers work, to more advanced concepts such as ELF loaders, kernels, and caches. To start us off, I’m planning on documenting my experience in getting up to speed as a Linux kernel hacker with Meta (who at the time of starting this blog, generously pays me to build stuff).
I suppose it’s prudent to give you a bit of background on my career and experience so I can hopefully at least partially convince you that I’m not making all of this up. Firstly, I did not grow up in a technical household. When I was young, I wanted to be an inventor. Looking back, that’s actually a pretty awesome idea, but it’s unclear whether I had anything more concrete in mind beyond living an adult, live-action version of Dexter’s Lab. Once I had some more years under my belt, and my youthful wonder had scaled down accordingly, I just assumed that I was going to be a “business person”. That had about as much clarity as the Dexter’s Lab idea, and was basically just me picturing myself wearing a suit and sitting in a cubicle. Probably not terribly unrealistic if we’re being honest.
Anyway, after taking a few business courses in college at the University of Maryland, I ended up switching to a math major. While I wasn’t bad at it, I realized when I started taking real classes that I was definitely not going to be doing math research in the future. I figured it was probably time to start earning money instead of spending it on my education, so I took a course on web development and went to work as a web developer for Columbia University in Manhattan.
Now, there’s nothing wrong with web development. As far as I’m concerned, it’s just as “real” engineering as hacking on kernels. Ask someone who has to build complex front-end apps with endless event handlers whether careful and measured software design is important, and they’ll probably look at you the way humans in the ice age used to look at a wooly mammoth that would feed them for an entire season. That being said, I never felt energized by it. I always wanted to know how things worked. I loved abstractions, but I wanted to know what they’re made of.
So I decided to apply to grad school to get a proper comp sci degree. By some miracle, I ended up getting accepted into Carnegie Mellon University’s Master of Science in CS program, which to this day I still find humbling and consider a great honor. I focused as much of my time as possible on studying systems, and ended up graduating with a job lined up on the core kernel team at VMware. I spent some time on that team, and then later switched to the core hypervisor team (the “Monitor” team, as it’s known). This was sick. I learned a lot from incredibly smart people. I still consider many of them friends, and have had the privilege of working with several of them at Meta too.
After VMware, I went to what’s now Meta, where I’ve worked on operating systems with Reality Labs. After a few years, I decided to try something new, so I joined the Linux kernel team in 2022.
That’s it for now. Thanks in advance to everyone for checking out this blog. I hope you find it useful.