Announcing Bitwise

Announcing Bitwise


Feynman's blackboard quote "What I cannot create, I do not understand" never fails to give me goosebumps.

I've always been obsessed with how things work under the hood--physical contraptions as well as abstract concepts. Most engineers and programmers I've met are motivated by building things, and their knowledge and skills are first and foremost a tool for achieving that. But I'm motivated by learning how things work, and the process of solving problems and designing and implementing systems has been a tool for increasing my understanding. And of course there's the unrivaled thrill of seeing what you've built actually work and come alive!

After working as a game developer and systems programmer for over 15 years at places like Epic Games, NVIDIA, RAD Game Tools and most recently Oculus, I decided it was time to take a break from professional programming and spend a few years pursuing a long-time dream of mine, a project I've dubbed Bitwise, where I want to share my passion and try to demonstrate by example how to build systems from scratch, with a low-level computing focus.

Here are some examples of what you will learn to build:

  • Hardware description language compilers and simulators
  • FPGA-based hardware, including CPU, GPU, HDMI controller, Ethernet MAC, DDR3 PHY, etc
  • Kernels, including drivers, hardware abstraction layer, scheduler, virtual memory manager, file systems, TCP/IP stack, etc
  • Systems libraries, including GUIs, memory allocators, etc.
  • Systems applications, including compilers, assemblers, disassemblers, profilers, debuggers, etc
  • Test infrastructure, including property-based testing, directed randomized testing, fuzz testing, etc.

My goal with Bitwise is to show that these things can be done much more simply and quickly than people realize if we strongly favor simplicity over marginal gains in feature completeness or performance. The goal is not to outdo or compete with any existing product; the goal is to show how things work with real hardware and software.

Bitwise will consist of educational videos, articles, and software/hardware source code. The code will be released into the public domain for everyone to study and extend as they see fit. Everything produced as part of the project is free of charge. I'm doing this project as a service to the community and neither ask nor accept financial donations.

For the rest of the article, see here

Click here to chat with us