tmos is the 4th iteration of my experiment with writing an operating system and bootloader from scratch, in C and NASM assembly. It currently only supports x86_64, but the architecture-specific code has been cleanly separated out, so it could theoretically be extended to other architectures. It can't quite run userspace applications yet... I haven't had much time to devote to this project the last few years.

bed is a high-performance text editor I am writing from scratch in Rust. It uses OpenGL for rendering on the GPU, supports Vim-style modal editing, has a JSON configuration and theme specification format, and supports syntax highlighting with Tree-sitter. It has a fully custom UI implementation, with my own font stack which uses HarfBuzz for text shaping, FreeType for rasterizing glyphs, and either Fontconfig or DirectWrite for platform-specific system font discovery (I don't support Mac yet 'cause I'm poor). It also has initial support for the Language Server Protocol, so it highlights errors/warnings and shows detailed descriptions on hover. There's also some initial work on completion - it supports completion of paths on your filesystem, and I've started work on including completions provided by the language server.

I am actually in the process of rewriting it with a pure-Rust font stack which I'm calling rype for now, as a replacement for the current stack based on HarfBuzz + FreeType + Fontconfig/DirectWrite. In this rewrite, I'm also writing code to directly interface with the X server on Linux, or call WinAPI functions on Windows.

bperf is a command-line utility for fine-grained low-overhead system-level profiling by polling Intel hardware counters. I wrote it as part of my course project for the CS-6235 Real-Time Systems course at Georgia Tech.

It has two components - a Linux kernel module for the actual profiling, and a userspace application that configures the events to collect, reads data from the kernel module, and writes it to a csv file.

It's easy to extend the tool to support additional architectures or hardware events, by making minimal changes to the source code. The changes that would be required are highlighted in the README for the project.