I’ve been slowly working my way up the stack. I started out working on flash memory and optics, and then moved up one level to CPUs. I was lucky enough to land at Centaur, a small company that gave me a lot of freedom, and I ended up doing RTL, ucode, verification, bringup, test, and pretty much everything else you can do on a CPU. Since then, I’ve worked on a deep learning hardware accelerator at Google, a networking virtualization accelerator at Microsoft, and a search engine at Microsoft. If you’re so inclined, you can check out my github, linkedin, and resume, but that just has a bunch of details. If you want a much longer version, see this post that describes how I learned to program.
This started out as a way to jot down thoughts on areas that seem interesting but underappreciated. Since then, this site has grown to the point where it gets millions of hits a month and I see that it’s commonly cited by professors in their courses and on stackoverflow.
That’s flattering, but more than anything else, I view that as a sign there’s a desperate shortage of understandable explanation of technical topics. There’s nothing here that most of my co-workers don’t know (with the exception of maybe three or four posts where I propose novel ideas). It’s just that they don’t blog and I do. I’m not going to try to convince you to start writing a blog, since that has to be something you want to do, but I will point out that there’s a large gap that’s waiting to be filled by your knowledge. When I started writing this blog, I figured almost no one would ever read it; sure Joel Spolsky and Steve Yegge created widely read blogs, but that was back when almost no one was blogging. Now that there are millions of blogs, there’s just no way to start a new blog and get noticed. Turns out that’s not true.
This site also archives a few things that have fallen off the internet, like this history of subspace, the 90s video game, the su3su2u1 introduction to physics, the su3su2u1 review of hpmor, Dan Weinreb’s history of Symbolics and Lisp machines, this discussion of open vs. closed social networks, this discussion about the differences between SV and Boston, and Stanford and MIT, the comp.programming.threads FAQ, and this presentation about Microsoft culture from 2000.
P.S. If you enjoy this blog, you’d probably enjoy RC, which I’ve heard called “nerd camp for programmers”.