I am a recent graduate from Northwestern University's McCormick School of Engineering, currently working for Amazon as a Software Development Engineer. Originally from Washington D.C., my family moved to Houston, Texas when I was only 3 years old, where I would live and call home until joining Amazon in October 2024. I now reside in Seattle, Washington with my partner.
I thrive on interacting with diverse groups of people and find joy in uplifting those around me. In the early 2020s, this culminated in a passion for content creation. Running a medium-sized YouTube channel and a slightly larger Twitch stream allowed me to connect with an incredible array of wonderful people and participate in organizing and hosting charity events—an experience I cherish deeply.
Whatever I do, I put 100% of myself into it. This usually results in my taking on leadership roles. In September 2019 I became president of Northwestern's Residence Hall Association (RHA) and organized events that helped make life a little better for my fellow stressed students. In 2021 I became a moderator in the DOOM Eternal speedrunning community, and I had the privilege of helping organize and providing hosting services and commentary for the ModernDOOMSpeedrunning '21 Marathon, raising over $9,000 for the American Foundation for Suicide Prevention. Continuing this momentum, I worked tech for the '22 Spring Marathon and participated myself in Slayers4Charity, raising well over $5000 for Save the Children Fund and Veterans 4 Child Rescue, respectively.
These experiences have instilled in me a profound appreciation for teamwork and collective action. While I am adept at working independently, my true passion lies in collaborating with like-minded individuals to develop innovative and impactful programs for others. Now at Amazon, I am eagerly embarking on a career dedicated to this mission.
Ever since YouTube removed the Dislike feature, users have sought alternative ways to gauge community sentiment on videos. This project aims to fill that gap by analyzing comments to determine whether they are positive, negative, or neutral.
Leveraging Docker, JupyterLab, and extensive research on PyTorch, I trained a BERT model for sentiment analysis. Using BertForSequenceClassification from bert-base-uncased, a leading model in NLP, I trained it on 75,000 Amazon reviews of movies and TV shows, 15,000 from each rating (1-5 stars). Achieving acceptable performance metrics—training loss of 0.62 and validation accuracy of 0.688 on the final epoch—this model provides a snapshot of viewer sentiment more robust than a like/dislike ratio.
This project offered me an opportunity to work hands-on with the inner systems of AI engineering, such as tokenizing (special tokens, max length purpose, truncation), input ids (encoding, padding), and attention masks, Pandas.DataFrame, torch utilities such as DataLoader, Dataset, TensorDataset, RandomSampler, and SequentialSampler, and practical training elements such as learning rates, optimizing, epochs, schedulers, backwards propagation, loss calculation, and validation accuracy calculation. I also got some experience working with the YouTube API. This was a rewarding endeavor.
Challenged with creating a Knowledge Representation and Reasoning (KRR) AI solution, I developed an AI ontology tailored for recommending ingredient substitutions based on food preferences and allergens within a collection of meal recipes, earning an A in the course.
I began by constructing a scalable KRR database in Python, utilizing genLs to represent shared attributes of elements. Importantly, my approach diverged from simply assigning attributes based on parent genLs; instead, instances inherited all relevant attributes through backward chaining. Additionally, the program employed forward chaining and reasoning to deduce ingredient attributes within recipes and suggest suitable substitutions.
Please note: Although this was a group project, I take full ownership as I independently handled every aspect of it. From envisioning the premise to writing every line of code (as documented in the GitHub history), recording the demo, and crafting the final project report—every task was my responsibility. In instances where team effort was lacking, I willingly stepped up to ensure completion.
MasterTheGods (formerly GodmasterHelper) enhances the gaming experience for Hollow Knight players by tracking their progress and abilities in the Godmaster DLC.
Utilizing Python's class system, I organized information for each boss in the DLC, including names, pantheons, and numerical data. I then developed a user-friendly UI that allows players to input their gameplay data, tracking the number of deaths to each boss to provide insights for improvement. To ensure data persistence, I implemented file storage and retrieval functionalities.
After establishing core functionality, I expanded the project to include a comprehensive GUI in Python. This interface features buttons, drop-down menus, images, and pop-up windows designed to optimize usability and enhance the overall user experience.
The finalized program was exported as an executable and is now available on GitHub for the Hollow Knight community to utilize and enjoy.
MasterTheGods was a valuable project, but it had its limitations. Gamers were inconvenienced by the need to tab out to record their deaths, and console players often did not have a PC readily available. However, almost everyone has a phone that can be kept open during gaming sessions. The solution was clear: Port MasterTheGods to mobile.
Leveraging my expertise in Java and the similarities between XML and the familiar HTML and CSS, I developed a responsive and visually appealing MasterTheGods app for Android. Like its desktop predecessor, MasterTheGods for Android tracks player deaths, providing a clear path to mastering Hollow Knight's Godmaster DLC. Data persistence using SharedPreferences ensures users do not lose their data between sessions. Additional safeguards, such as an Undo button and a confirmation dialog for data resetting, further protect users from data inaccuracies or loss. The Stats button presents a table of the user's data with intuitive interactive elements. I employ optimal data structures for storing information, such as ArrayLists for user death history or HashMaps for key value pairs, in order to maximize app responsiveness and minimize memory use.
Learning the ins and outs of Android app development and putting them into practice was highly enjoyable, and I plan to make the results of my efforts available on the Google Play Store for Hollow Knight players to download and use free of charge.
You're on it! Hope you like it!
Recognizing the limitations of GitHub and aiming to impress potential employers, I took on the challenge of creating a portfolio website. My primary goal was exceptional usability, ensuring visitors encounter a functional and intuitive interface. Using CSS, HTML, and JavaScript, I crafted a visually appealing and highly functional website, prioritizing mobile-friendly design with variable object sizes and a streamlined navigation bar that transitions into an expandable dropdown menu on smaller devices.
To enhance user experience, the dropdown menu closes automatically upon selection, maintaining a clean interface. On desktop, the navigation bar highlights the current page location for easy navigation. I designed unique and aesthetically pleasing divs and buttons, incorporating personal touches such as a subtle gradient flip effect on buttons, revealed through a transparent wipe on hover.
The website features embedded YouTube videos and smooth scrolling for seamless interaction. For future scalability and flexibility, I adhered to best practices in CSS and HTML for element positioning, implemented classes liberally, and utilized FontAwesome for high-quality, free icons and logos.
In the course Human Computer Interaction Studio, I spent the quarter leading a team, designing and testing a single ambitious project, Proto, an AI-based solution to finding new content across streaming services (Netflix, Hulu, etc.).
During this process, I interviewed potential users, crafted novel ideas and solutions, and built and tested prototypes weekly in design sprints. The early prototypes were designed within hours using strategies from Marc Rettig’s landmark article Prototyping for Tiny Fingers (1994) and allowed us to gather user feedback on design elements in days which would have taken weeks if implemented practically. The later prototypes took advantage of ChatGPT’s API to provide a true proof of concept.
Our research revealed that users are frustrated with modern algorithmic solutions to content discovery. This led us to create an interactive AI that listens to user prompts and provides media suggestions based on how the user feels in the moment. With a focus on personalization and usability, we sought to close the gap between the media the user wants and the media presented to them.
From 2016 to 2019, I served as both head moderator and stylist for the r/PokemonExchange subreddit, a thriving community with thousands of monthly visitors. This role provided me with the opportunity to exercise creative control over the subreddit's appearance and functionality.
Partnering with Dr. Roberto Medina, we explored various CSS elements to personalize our community. After analyzing and familiarizing ourselves with CSS fundamentals, we implemented extensive modifications. Our enhancements included customizing tables, links, headers, menus, lists, and sprites, integrating hover effects, refining borders, and implementing a fully functional dark mode. These efforts marked one of my early real-world projects, which I deeply value for the experience gained.
Our CSS modifications have remained largely unchanged since 2019, with updates limited to banner and wiki images. The subreddit's customized design is still active today, accessible by replacing "www" with "old" in the Reddit URL.