💻 Experience in Full-Stack Development and Tool Creation
During my undergraduate studies, I actively engaged in the development of full-stack applications and various software tools. The full-stack applications were primarily designed and implemented as part of academic projects. These projects often involved both front-end and back-end development, giving me hands-on experience with a wide range of technologies and frameworks.
In addition to academic assignments, I also took the initiative to create tools for personal use. These tools were developed to streamline certain tasks, reflecting my ability to identify needs and build effective technical solutions independently. Furthermore, some of the tools were created as part of coursework, demonstrating my ability to meet project requirements and deliver functional software within academic constraints.
A selection of these projects is showcased in my GitHub repository, which can be accessed via the footer link labeled Marlon's GitHub. If you'd like to view the source code for my website, please visit this GitHub repsitory.
💜🐝 Social Media Platform Recreation - Inspired by Fizz
As part of a four-week team project for the Rose-Hulman course CSSE333 - Database Systems, we developed a full-stack recreation of the social media application Fizz, a platform designed specifically for college students. Fizz is known for its anonymous posting features and peer moderation system.
Our team of three focused on replicating the core functionalities of the original app, including anonymous posting, liking, commenting, user blocking, and tagging. While we implemented both the frontend and backend components, particular emphasis was placed on designing and managing the database architecture to support these features efficiently and securely.
This project provided valuable experience in collaborative development, database design, and the implementation of privacy-focused social media features. It was developed using MySQL for database management, along with JavaScript and TypeScript for frontend and backend development.

🏡 Board Game Recreation - Betrayal at House on the Hill
This project is a software-based adaptation of the board game Betrayal at House on the Hill, developed as part of the Rose-Hulman course CSSE376 - Software Quality Assurance. During development, the primary focus was on applying rigorous software quality practices, including test-driven development (TDD), mutation testing, and path coverage analysis.
The original game supports three to six players who explore a haunted mansion until a pivotal event — known as the haunt — is triggered. At that point, one player becomes the traitor, whose objective is to defeat the remaining players, now referred to as heroes. The heroes, in turn, must work together to escape the mansion.
Our implementation concentrates on core mechanics. While the original game includes over fifty possible traitor roles, our version implements two, allowing us to focus on quality assurance and maintainability. The project was developed over eight weeks by a team of three using Java for development and JUnit for testing, emphasizing collaborative development and disciplined software assurance techniques.

⚙️ RISC-V Assembler - Machine Instruction Translation Tool
This project involved the development of a custom assembler that converts RISC-V assembly code into machine code. Created for the Rose-Hulman course CSSE232 - Computer Architecture I, the assembler supports the majority of the RISC-V instruction set, excluding a few specialized instructions such as AUIPC, CSRRW, CSRRS, CSRRC, ECALL, and EBREAK.
The assembler is designed to recognize both formal and informal register names (e.g., x2 and sp) and includes support for translating a variety of pseudoinstructions into their corresponding machine-level representations. This enhances usability while maintaining alignment with RISC-V standards.
Developed in Python, the project was completed independently over a ten-day period. While the core implementation was self-directed, a subset of test cases was provided by the CSSE faculty. This project emphasized low-level systems programming, instruction encoding, and practical application of computer architecture concepts.

🐧 kebab2snake - A Handy CLI Tool for Case Conversion
While working in AlmaLinux with Neovim, I developed kebab2snake, a shell tool that converts file and directory names from kebab case (this-is-kebab-case) to snake case (this_is_snake_case). I learned that underscores are generally safer than hyphens—hyphens can be misinterpreted as flags in shell commands, and in most programming languages, they are treated as subtraction operators.
This was the first tool I wrote entirely in shell, and I am especially proud of the test coverage I built for it. The tool supports a --silent flag to suppress output and a --max-level flag to control recursion depth when renaming directories.
👉 View the code and test suite on GitHub.