Software

I love software engineering and programming languages. My college advisor, Dr. Alan K. Zaring, who himself was a college advisee of Daniel P. Friedman (the granddaddy of lazy functional programming), got me really interested in the design and implementation of programming languages. This has led me to learn many programming languages from object-oriented to functional to logic to esoteric. But programming languages are no fun if one does not use them for implementing libraries and writing software!

I am often asked about my favorite programming languages. The ones I most enjoy working with are:

  • Python – for its simplicity, rapid prototyping, and rich AI/ML ecosystem
  • Rust – for its performance, memory safety, and expressive type system reminiscent of Haskell
  • Shell script – for its POSIX compliance (portability) and elegant program composition

This following is a list of software I have designed and implemented in a variety of languages. The software ranges from toy prototypes to more complex libraries with lots of moving parts. I also maintain tiny from-scratch impls for important algorithms and data structures.

Python

Rust

C++

Haskell

Go

Java

Other