3 Projects
3.1 rossi.vin
While Northeastern has since changed their CS curriculum, Racket and "How to Design Programs" was fundamental in my CS journey. Without it, I wouldn’t be the programmer I am today, and I wouldn’t enjoy it as much either. The Design Principles I learned in DrRacket are core parts of every line of code I write. I keep this website in the style of the textbook that made me the programmer I am today.
I chose to use Scribble for this site as an homage to Racket and the "How To Design Programs" curriculum that has been so fundamental to my computer science education.
You can check out the source code for this website here.
3.2 vinixOS
I have been daily driving linux since highschool, and after years of chronic distro hopping (ubuntu -> mint -> fedora -> arch) I decided to spend the time to create a stable set-up I could keep to grow with me. I chose NixOS due to its declaritive, reproducible nature, allowing me to easily replicate my setup with just three files (my flake, configuration, and home-manager). This reproducibility was a big pro for me due to my tendency of picking up laptops from E-waste and reparing them, so I wanted to be able to easily set them up.
Recently, I’ve found myself slipping back into my distro-hopping ways – been trying to configure QubesOS which has been ... interesting – but I always return to my "vinixOS". My Nix configuration continues to grow with me, and it’s reproducibility is just too good to give up.
3.3 Computer Systems – CS3650
During Fall 2025, I took Computer Systems, or CS3650, with Professor Ferdinand Vessely. In this course, I was able to explore the inner working of the computer systems we use every day, and begin creating my own components in C. While I can’t publicly publish my code from this course, any of my projects’ source code is availble upon request.
3.3.1 Shell
One key project I completed was creating a custom shell capable of running programs (e.g. ls, cd, etc), perform built-in functionalities one expects from a shell (sequencing, pipe, input/output redirection), and I wrote some built-in functionalities (cd, source, prev, help).
This project was a lot of fun and pushed me to better understand the underworkings of a tool I use every day.
3.3.2 File System
For my final project, I built a custom FUSE filesystem driver able to mount a disk image as a filesystem. It is able to create files, write to and read from files, rename files, and delete files. Additionally it is able to create, rename, and delete directories. You can also create files contained in directories, move files between directories, and list all the contents of a directory.
This was a really fun project to work on and a perfect way to tie-up my semester. It synthesised all of my learning in C, memory allocation, and computer systems in a practical project that furthered my understanding of all computers.
3.4 Object Oriented Design – CS3100
During Fall 2025, I took the course Object Oriented Design, or CS3100, with Professor Lucia Nunez in the final semester of the original curriculum. This course propelled my skills in Java and OOD as a whole. While the projects i completed for this class primarliy consisted of creating playable games, the lessons I learned in design have given me the skillset to create good object-oriented programs, as well as good programs as a whole.
I am unable to publicly publish any of my code for this course, but the source code for any of projects is always available upon request.
3.4.1 Klondike
In this class, I created a CLI, text-based game of Klondike solitaire in Java. You can customize the cards to be used in the game, the difficulty of the game, and the game mode (Basic or Whitehead), before playing the game fully through your terminal.
3.4.2 Queen’s Blood
Another game I created for this course was an adapted version of the Queen’s Blood mini game from Final Fantasy. This is a two player, compettive game in which players play cards from respective decks to gain control over a shared board. You can customize the cards to be used in the game, the size of the game board, the player types (Human or Robot), and the strategies employed by the automated players (if any). I used the Java Swing library to create an interactive user-interface to view and play the game in real time.