Collection of my projects, both for career and fun (often overlapping with each other).

DSA Mini Textbook

GitHub Repository ⧉

A handbook for data structures & algorithms, based on Purdue CS251 class.

Work in progress.


GitHub Repository ⧉

“Theovim is my Neovim configuration, geared toward my CS studies (C, Python, Java, LaTeX, LaTeX, and LaTeX). It features opinionated base Vim settings and keybindings, ~30 carefully selected plug-ins, and custom UI components written 100% in Lua.”

– Theovim README

It feels special to be able to configure a text editor to fit my exact preference as a programmer while having fun in the process. I believe that Theovim will be my life-long project, constantly evolving and adapting to my new interests and needs.

Theovim Banner
Theovim Banner

Haunted Tiles

GitHub Repository ⧉

Haunted Tiles is my personal i3 WM and Sway setup, along with essential tiling WM tools like notification daemon, app launcher, and Bash/Python scripts to bring some of the DE experience to minimal tiling WMs. It used to be a part of my dotfiles repository, and with the growing size of configurations and shared scripts between i3 and Sway, I made a separate repository for it.

Both sets of configuration strive to be a minimal setup that gets out of your way while providing practical features and being aesthetically pleasing. The overall theme is Dracula, hence the name “Haunted”-tiles (it’s also partially because I like naming everything).

I love Linux tiling WM, and I have tried a number of them (Awesome, Xmonad, QTile, etc.). But I keep coming back to i3 and Sway for their simplicity. The repository contains Drcaula-themed configurations for i3/Sway and surrounding tiling WM tools, as well as Bash/Python scripts to provide the “sane default” tiling WM experience.

Haunted Tiles i3 SC
Haunted Tiles i3 Screenshot
Haunted Tiles Sway SC
Haunted Tiles Sway Screenshot


GitHub Repository ⧉

Well, some might say it is not a project, but I say it’s a lifelong project. My dotfiles repository includes configurations for (mostly) open-source tools I use in day-to-day life as a programmer, including but not limited to:

  • Shell trifecta: Bash, Zsh, and Fish
  • Terminal emulators: Wezterm and Kitty + Tmux
  • Text editors other than Neovim: Doom Emacs, vanilla vim
  • Weirdos: Neofetch, lf, and Qutebrowser
  • Other dev tools: Git, Homebrew, etc.
Dotfiles macOS Screenshot
Dotfiles Fedora Screenshot

Vim Contents

Vimscript Vimrc Guide ⧉ | Using to Group Features and Fix Keybinding Problems ⧉

I write about (neo)vim on this website.


The following projects are no longer actively maintained.


GitHub Repository ⧉

Resume screenshot
Sample resume

My personal resume template as a CS major.

i3 & Sway Tips

GitHub Repository ⧉

Collection of commands, keybindings, and recommended applications for i3 and way window manager.


GitHub Repository ⧉

This A+-worthy-cs-freshman-level Python project is a simple CLI GPA calculator I use when I don’t have the patient wait a week for my professors to publish my grades.

Clean Linear Algebra Homework Template

GitHub Repository ⧉

Linear algebra is fun, but it can be more fun with the right LaTeX template.

CS240 Comprehensive Review

GitHub Repository ⧉

17 pages of C.

Joke of the century