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 languages. The ones I really enojoy programming in include:

  • Python – for its simplicity, prototyping, and AI/ML
  • Rust – for its performance and memory safety guarantees
  • Shell script – for its POSIX compliance (portability) and program composition
  • Haskell – for its succinctness, type system, and fun

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