I'm William Pearson.

I'm a Computer Engineering graduate. My primary focus is on software. I am really excited by both operating systems and compilers.

I am currently employed by Microsoft as a Software Engineer II in Azure Compute. While interning at Google, I worked on the memory management subsystem of the Linux kernel.

The views I express on this website are solely my own. They do not reflect the views of my current employer, nor do they reflect the views of any of my past employers. My hobby projects are also solely my own.

Since 2010 or so, programming has been my main hobby. My more recent projects have tended to be libraries or other tools although I used to do quite a few web projects. I try to use the right tool for the job although that tool is never Java (nor C#). Often, the right tool is C, Python, or Rust. Of course, one of the right tools for any web project is JavaScript. Sometimes bash is the right tool. Sometimes perl is the right tool because bash isn't quite powerful enough. I started out programming in Ruby but I now prefer Python.

On a computer, I spend most of my time in Terminal and Emacs. The only activity which I have found to demand a GUI is web browsing due to images and video not displaying at all in edbrowse. I prefer open source software and generally use Debian GNU/Linux or Arch Linux. I release most of my code under the GNU GPL v3 or later although a couple of my projects — such as my toml library — are underneath the MIT License.

My hobbies outside of programming include hiking, board games, and reading. I've been hiking to a number of places within Washington state, the Oregon coast, and in the San Francisco Bay Area. I am often reading a new book every two or three weeks.