Find Stuff Program
C, VS Code, xUbuntu | May 2023 - June 2023
- Used parallel processing to search current working directory
and/or subdirectories for files or strings of text.
- Redirects a pipe to stdout to return the filepath of all instances
of the desired filename or string.
- Altered execution of ”find” program depending on flags present in
the command: -f:.c only searches in files that end in ”.c”, -s
searches all subdirectories, etc.
MyApp
React, Express, Node.js, VS Code, Git | September 2023 - October 2023
- Used React to develop a frontend form to accept input data and display it in a table.
- Used Express and Node.js to build a REST API to handle HTTP requests from the front end.
- Linked the frontend to the backend/REST API so additions or deletions to the frontend form are reflected in the
backend data.
- Followed industry best practices to handle version control with Git and Github.
Virtual World
Java, IntelliJ, yEd Graph Editor | September 2022 - December 2022
- Increased cohesion and loose coupling of a 5000+ line project by refactoring more than 30 methods into a class
hierarchy I defined consisting of 28 classes, 3 abstract classes and 3 interfaces.
- Implemented most efficient movement for the entities using the A* pathing strategy.
- Created 3 additional entities with unique behaviours, and implemented a world altering event upon a mouse click.
- Planned out my refactoring in a UML diagram using yEd Graph Editor.
Huffman Encode / Decode
Python, PyCharm | May 2022
- Developed a program to compress text using Huffman coding, a lossless data compression technique, by assigning
variable-length codes to characters based on their frequency.
- Constructed a Huffman binary tree using ASCII values and frequency counts to determine the unique Huffman
codes for characters, and traversed the tree to construct an array of Huffman codes for each character.
- Implemented functions to read input text files, encode the content using the Huffman code, and write the encoded
content to output files with proper headers. Ensured robustness through comprehensive unit testing, considering
edge cases and various file conditions.