Projects
for CS075 Software Engineering class
-
Languages/Frameworks: Flask, Firebase, Python, Javascript, CSS, HTML
-
Swarthmore Marketplace is a full-stack application designed to enhance the accessibility and convenience of selling, donating, and purchasing used items outside of Worthmore, the student-run donation center.
-
The frontend consists of five HTML and CSS pages for account creation, user login, viewing postings, creating and publishing postings, and viewing user account information and postings, with dynamic updates using XMLHttpRequest.
-
The backend, built with Flask and Firebase, handles secure user authentication, session management, data synchronization, and storage, ensuring a responsive and scalable marketplace platform.
-
The project promotes reuse and recycling within the Swarthmore College community, providing a seamless and responsive user experience while laying the groundwork for future growth and sustainable engagement.
-
Languages/Frameworks/Software: Python, C, Scapy, subprocess, ssh, Raspberry Pi, Grafana, Z Wave, InfluxDB
-
Developed a sophisticated energy management system for Swarthmore College's computer labs, leveraging ZEN15 smart switches and Samsung SmartThings Hub to reduce idle power consumption from 20-50W to 5W per computer.
-
Engineered a local agent using Python that dynamically applies sleep policies based on user activity, CPU usage, and time of day, significantly enhancing energy efficiency and system autonomy.
-
Implemented a robust remote access solution, utilizing Wake on Unicast Traffic and a Raspberry Pi-based ARP relay to enable seamless remote wake-ups, ensuring continuous availability without physical presence.
-
Designed a comprehensive monitoring infrastructure with InfluxDB for real-time power consumption tracking, and developed a public-facing website to visualize energy savings and advocate for ongoing environmental sustainability initiatives.
Side Projects
full project description, github repo
- Languages/Frameworks: node.js, express.js, Webpack, Redis, maptiler, spaCy, Google Geocoding API, Youtube Data API
- Developed a Node.js/Express web application that dynamically queries and displays live nature and animal videos from selected YouTube channels using the YouTube Data API, ensuring real-time content updates and video embedding.
- Integrated Redis caching to efficiently manage API requests, significantly reducing latency by serving repeated requests for the same data from the cache, ensuring a faster and more responsive user experience.
- Utilized natural language processing with spaCy and the Google Geocoding API to extract location names from video titles and descriptions, mapping each YouTube live video using MapTiler and Leaflet, providing users with interactive geographical visualizations.
- Employed a robust technology stack, including Webpack for bundling, Express for backend development, and Python scripts for location data validation and extraction, resulting in an application that efficiently handles real-time data processing and geospatial mapping.
-
Languages/Frameworks: Spotify API, NLTK, scikit-learn, matplotlib, jQuery, d3.js, Flask, Python
-
The project uses d3.js and NLTK to create an interactive visualization of Spotify playlists, representing songs as animated circles based on various criteria like genre, popularity, and energy.
-
The backend script employs the Spotify API and Flask to query playlists, process track information, and handle OAuth2 authentication, storing the results in JSON files for further analysis.
-
Lyrics from each song are obtained using the LyricsGenius API, preprocessed, clustered using K-Means, and visualized with TF-IDF vectorization and PCA to reveal patterns and themes within the lyrics.
-
The frontend interface uses D3.js to visualize song attributes in two SVG components: a main SVG for genre, popularity, and energy, and a smaller SVG for detailed exploration, with interactive controls and dynamic updates enhancing user engagement.
-
Languages/Frameworks: Flask, Numpy, NLTK, scikit-learn, GloVe, UMAP
-
Animated interface of creative text exploration generating a continuous sequence of sentences, linking each to its most semantically similar line in a 2000+ line corpus from 12 female mystics.
-
The backend leverages the Flask framework and multiprocessing to generate prayer sentences in real time using a combination of natural language processing (NLP) techniques and GloVe word embeddings, and employs a JSON API to asynchronously serve these sentences to the front end.
-
The backend also utilizes locality-sensitive hashing (LSH) and UMAP dimensionality reduction to process and analyze prayer sentences. It embeds sentences into a semantic space, identifying relationships and generating a morphing sequence of sentences, which are then visualized on the front end.
-
The front end employs custom JavaScript functions to create an engaging user interface. The script dynamically positions sentences in a zigzag pattern, adjusts font sizes based on scroll position, and adds interactive flower elements that correspond to unique words. It also visualizes prayer data as points in a 2D space, with features like scaling, connecting lines between points, and an interactive slider for enhanced user interaction.
an interactive metaphor for that one famous Walter Benjamin quote
an ode to two things I miss from my school
Writing
Awards
$10,000 scholarship awarded to Computer Science students with disabilities
Work Experience
-
Languages and Frameworks: Selenium, Pandas, R
-
Conducted data scraping and analysis for the Boring Cities project at the Eviction Lab, working with NAICS and USTaxData datasets to compile an expansive list of "third spaces" in major U.S. cities in establishing causal relationship between property consolidation, corporate land ownership, and whether cities are getting more boring.
-
Played a key role in training a machine learning algorithm to predict whether a business is a restaurant, using the compiled dataset and leveraging Python and R for analysis. Evaluated and validated the model's accuracy by comparing estimates to census data, and identifying discrepancies by investigating incorrectly classified businesses, common patterns, and optimizing the data for broader application.
-
Developed proficiency in problem-solving filtering through imperfect, self-reported datasets, addressing variations in syntax, naming, and misspellings to optimize data accuracy.
-
under mentorship of Danae Mexata and James Landay from Stanford HCI, I conducted critical analysis on the politics of digital visibility and vulnerability within social justice movements, analyzing case studies including Black-owned business labeling on Google Maps, ICE's identification of undocumented immigrants through social media, OnlyFans' ban on sex work, and YouTube's unintended demonetization of LGBTQ+ content creators, contributing to the understanding of marginalized communities' experiences online.
-
Developed a comprehensive framework to assess the tension between visibility and vulnerability for marginalized groups on social media platforms, categorizing case studies based on their impact on marginalized users' visibility and platform designers' intentions, providing valuable insights and recommendations for platforms to address the potential harms faced by marginalized users.
-
Authored an extended abstract titled "Visibility & Vulnerability: Understanding Marginalized People's Experiences Online," highlighting the negative impacts of social media on marginalized communities and offering recommendations for platforms to better serve marginalized users. Emphasized the importance of involving marginalized perspectives, providing additional resources and support, and aligning platform values with user well-being, contributing to discussions on mitigating disparities online.
-
Languages and Frameworks: Selenium, Beautiful Soup, Pandas, geocoder, Flask, Folium
-
Designed and implemented a comprehensive search engine and geovisualization tool compiling datasets of healthcare resources nationwide for sexual assault victims to 1) identify the nearest hospitals equipped for Sexual Assault Forensic Examinations (SAFE) 2) locate sexual assault professionals including IAFN-Certified Nurses, sexual abuse therapists, social workers, and professional counselors by scraping together a custom database consolidating sexual assault professionals by area from four public domains.
-
Utilized web scraping and automated browser interaction to extract data from dynamic web pages, while managing HTTP requests and processing user inputs to enable real-time, location-based data processing and visualization.
Education
B.A. in Computer Science and Educational Studies, Minor in Religion