Hi all
Joe here. I enjoy making computers do stuff, playing the piano and guitar, all things soccer, and messing around with my two wonderful sausage dogs. I’m currently studying computer science at Stanford University where I also TA CS106A, CS106B, and CS140E.
Open Source & Research Contributions
Julia Programming Language
A few other members of the Julia community and I added support for callsite inline/noinline annotations to the Julia compiler. This allows for finer control over optimizations when writing Julia programs.
PochiVM + TACO Compiler
PochiVM is a research JIT code-generation framework that comes with an extremely fast baseline compiler. I rewrote the backend of the Tensor Algebra Compiler(TACO) to use PochiVM and saw compilation performances of TACO increase by a factor of up to 100x. I then modified the baseline compiler to recognize common patterns in TACO’s generated code and specialize compilation for them, allowing TACO to have an extremely fast baseline compiler that still produces high performing kernels.
Technical Projects
qdbp
No general purpose programming language is perfect, but qdbp is as close as it gets in my (completely unbiased) opinion. It is simple, expressive, safe, and with a little more work can be relatively performant.
Driver-Language
Writing drivers is hard. The process often consists of reading dense documentation littered with errors and writing low level C. This project is a domain specific language designed to make driver development easier. The language itself has a simple - albeit limited - imperative core with variables, memory reads, and memory writes with which users can write drivers. In addition, users also provide a specification that the compiler checks the driver against. In the specification, the user can provide rules for properties drivers must have such as, for example, the order in which registers have to be written, and the compiler verifies that the driver follows those rules statically.
Berryboy
A gameboy emulator for a baremetal Raspberry Pi environment that I developed with a fellow student. It reads a Gameboy ROM file and emulates the ppu(gpu), cpu, interrupt mechanism, and I/O. Because it runs on the Pi without an OS, it also comes with drivers for Raspberry Pi hardware such as GPIO and the framebuffer.
Fantasy Premier League Team Generator
Automated Fantasy Premier League team generation. It predicts English professional soccer player performances using statistics from the official Premier League API and a player/team performance modeling algorithm I developed. With those predictions and the python PuLP linear programming library, it assembles a Fantasy Premier League team. Github - Detailed Writeup
Comper
An automatic backing track generator for jazz music. It takes in a style file that uses a custom context-free-grammar-like DSL and a chord progression file and generates a midi file consisting of a walking bassline, comping with voice leading, and a simple drum track. Audio Samples - Github
Other
VEX Robotics
I founded a VEX robotics team a few years back, managed to teach a variety of STEM topics to high school students(coding, practical physics, etc), and had a blast. I am not nearly as active in the team anymore(I handed it off to one of the staff at the school) but I still help out from time to time. Team Website
Internships
I’ve interned at Roblox and NASA JPL in the past. At NASA, I developed language tooling(auto complete, syntax highlighting, error squiggles, etc) for the Ingenuity Helicopter’s command language. And at Roblox, I built a unit testing framework for the game engine tests and migrated the unit test suite over to my framework.
Connect
Email: dghosef@stanford.edu
LinkedIn: linkedin.com/in/dghosef