
Currently developing machine learning-driven algorithms to improve test coverage by analyzing pull requests using large language models. My role will be to give insights into test suite composition and effectiveness, helping customers understand and improve their test strategies, and optimizing test execution pipelines by developing algorithms to select which tests to run per deployment ring, increasing efficiency and reducing CI/CD costs.

Developed an in-place debugging solution that streamlined multi-machine topology reservation.

Ensured the technical success of Hack4Impact@Cornell by managing tech leads, PMs, and developers.

Teaching assistant for core info sci class focused on network analysis, game theory, and graph theory.

Software developer for a project team at Cornell that builds products for nonprofits around the world.

Teaching assistant for proof-based core computer science class focused on analysis of algorithms.

Conducted user research with volunteers and designed volunteer management system for LFBI.

Analyzed how aid distribution after Hurricane Katrina affected marginalized communities.

Developed an app that recommends similar authors to ones you like based on SVD and cosine similarity.

Audited Microsoft's speech-to-text API and analyzed its performance on different demographics.

Analyzed COMPAS’s recidivism algorithm and its performance on algorithmic fairness concepts.

Developed an interactive Pomodoro timer in OCaml using GUIs in a team of 3 other engineers.
More details coming in June, 2025!
"Hold My VM" was designed to streamline the debugging process for software developers by addressing challenges during automated test passes. When errors occur, replicating the exact environment can be time-consuming and unreliable.
My solution: provide an in-place method for users to debug failures without recreating conditions from scratch — while also reducing manual work for infrastructure teams.
Multi-machine reservations were previously a tedious, multi-step process. My goal was to make reserving multiple VMs as seamless as reserving a single machine.
By connecting Focus Web directly to the reservation APIs, users no longer needed to switch between platforms or manually collect VM details to reserve machines.
Added settings for time limits and checkout limits to optimize VM usage and prevent resource bottlenecks.
Developing in a large-scale, unfamiliar environment with hundreds of thousands of files was initially overwhelming.
Breaking down the system into smaller parts and using graphs helped me understand dependencies and save time.
These errors often occurred regardless of correctness and were difficult to debug alone.
Set a few hours aside to troubleshoot independently, then escalate to teammates to avoid getting blocked.
Catching mistakes early saved a lot of time in later debugging stages.
Practice atomic-level testing and verify builds as often as possible.
Given Microsoft's size and depth, many problems I faced had been solved in some form by other teams.
Reaching out and collaborating accelerated progress and deepened my understanding of the larger ecosystem.
When overwhelmed, my coding quality decreased due to frustration and small mistakes.
Taking breaks and socializing regularly helped me reset, think clearly, and stay productive. Thank you Josue, Mer, Lauren, and everyone else for your support!
I successfully automated the multi-machine reservation process, making it faster, easier, and less error-prone for developers. The system now allows seamless reservation through Focus Web with minimal manual steps.
The project was handed off for future scaling and possible extensions to support even more complex debugging workflows.
As Engineering Chair for Hack4Impact at Cornell, I was responsible for building and sustaining the technical backbone of the organization. My role involved onboarding and supporting technical leads (TLs) and developers on the team, making sure everyone was following excellent coding practices, and leading technical workshops. Beyond the technical aspects, I also worked to create a collaborative, and supportive environment where team members could grow not just as engineers, but as individuals.
Recruitment was a fun challenge every semester that involved hosting information sessions, coffee chats, designing the technical interview, leading these interviews, and evaluating the candidates while making sure that the selected candidates will contribute to Hack4Impact’s mission of creating technology for good by always putting sustainability, empathy, and diversity at the forefront.
Since we primarily recruited freshmen and sophomores, I made it a priority to evaluate each applicant not just by their current technical ability, but by their potential to grow. I focused on what each individual could become by focusing on their eagerness to learn, their mindset, and how we as a team could support their development, rather than what they already knew.
To reflect this in our process, I designed a technical interview that assessed a range of relevant skills developers would use on their subteams instead of the traditional Leedcode style questions that only tests current skills. Our interviews tested abilities to write clean, and testable code; refactoring poorly written code; demonstrating adaptability through challenges like changing and adding functionalities to existing classes, and systems design questions that tested their way of thinking and reasoning about development.
This approach allowed us to welcome developers from less technically rigorous backgrounds, many of whom went on to excel. It also reinforced one of Hack4Impact’s core values: building a diverse and inclusive team where people from all backgrounds feel empowered to contribute and grow.
I was also in charge of onboarding the new developers that joined the team. I created and led an interactive onboarding curriculum for new developers, featuring a two-hour hands-on workshop on Git fundamentals, agile development methodologies, and best engineering practices. I also organized an onboarding Hackathon to put the fundamentals they learned in the first workshop into use. The developer had to use a project starter repository cloned from Git to develop a simple website similar to ones they would soon start working on their subteams, giving new developers sprint-style tasks in a collaborative environment.
My co-engineering chair, Jason, and I designed and led onboarding workshops for the Technical Leads, covering full project lifecycle management from early planning through deployment and client handoff. We outlined best practices in system design, emphasizing scalability and flexibility to the clients’ changing needs, and maintainability through the early creation of System Design Documents (SDDs). Additionally, we established engineering standards across projects, including: Enforced GitHub workflows: branch naming conventions, mandatory pull request (PR) reviews, sprint planning using GitHub Projects, and CI/CD setup templates. Introduced agile development practices: how to assign weekly sprint cycles, backlog grooming, regular stand-ups, and cross-functional team communication. Fostered high code quality standards: pair programming, peer reviews, thorough documentation, and post-development sustainability planning for client handoff.
I hosted technical interview prep workshops open to both Hack4Impact members and the larger Cornell student body. These sessions covered both behavioral and technical interview skills, including:
Additionally, I led a hands-on workshop designed to demystify personal projects and help students gain the confidence and tools to start building their own ideas outside the classroom.
Workshop Goals & Structure
Key Topics Covered
Impact
In order to best support the team, I often had to pick up new tech stacks that tech leads wanted to use. Whether it was a new backend framework or a deployment pipeline, learning quickly was crucial to removing blockers and making informed technical decisions.
I broke down unfamiliar technologies into smaller components, sought out mentors when needed, and collaborated closely with technical leads to ramp up faster.
Supporting developers without micromanaging required building trust while still maintaining project quality and deadlines.
I focused on setting clear expectations, practicing frequent but low-pressure check-ins, and giving developers ownership over their work.
When one developer ended up contributing more heavily than another, it was my role to navigate the tension that arose.
I learned to approach these situations with patience, understanding, and without judgment, prioritizing communication and offering flexible solutions where possible, keeping in mind that personal life challenges sometimes impacts availability and performance.
Being an engineering chair for a year taught me that leadership isn't about control, but about building trust, offering empathy, and creating opportunities for others to grow. It requires constant learning, emotional intelligence, and the ability to stay flexible under changing circumstances. Some of the most meaningful moments came from seeing developers build confidence, overcome challenges, and step into leadership roles themselves.
This interdisciplinary course explores how network structures influence behavior and outcomes across computing, economics, sociology, and natural systems. Students learn graph theory and game theory, then apply these tools to analyze the Web, market behavior, contagion, search, and network evolution. Topics include social network analysis, market power in networks, strategic interaction, web search algorithms, information diffusion, network cascades, and institutional design. Core course for the Information Science major.
Graph theory, game theory, strategic behavior, web search, market design, network diffusion, social contagion, equilibrium analysis, and network centrality.
I was invited to return as a TA for a second term, indicating strong teaching performance and rapport with both students and instructors. It was really rewarding to see how I was able to help students improve understanding in a challenging course and watch them grow as students and people throughout the semesters. All the stress and work was worth it when a student who regularly came to my office hours came up to me on campus and said that I was the best TA in the class :)
EDGI is an action-oriented research collaborative that works at the intersection of environmental justice, data transparency, and public accountability. Their mission is to:
The EDGI team at Hack4Impact Cornell partnered with the organization to transform static and complex environmental data into a public-facing, interactive platform. Our goal was to build an accessible and user-friendly site to explore regional report cards and environmental enforcement data.
As one of seven developers on this project, I focused on translating technical analysis into intuitive visual tools:
Even though there were many challenges and a steap learning curve, I was able to finish my assigned deliverables, resulting in this application:
This project emphasized the importance of building tools that bridge technical insight with public understanding. We transformed isolated data analysis into a platform that communities and policymakers can interact with directly—an essential step in making environmental justice actionable and transparent. It was challenging in many ways, and I wanted to thank my co-developer Selena for collaborating through every step—from debugging dependency issues to turning design wireframes into real-world, functioning tools.
As a Teaching Assistant for CS 4820: Introduction to Analysis of Algorithms in Spring 2024, I supported a core upper-level computer science course known for its theoretical rigor and broad enrollment. The course covered essential algorithmic design paradigms—including greedy algorithms, divide and conquer, dynamic programming, and network flow—as well as complexity theory and approximation techniques. I worked closely with both instructors and students, serving as a key point of contact for clarifying course material, assisting with assignments, and facilitating exam preparation.
Lagos Food Bank is a nutrition-focused nonprofit in Nigeria dedicated to combating hunger, reducing food waste, and improving public health through targeted community programs. Volunteers are at the heart of their operations, supporting events that provide essential services across the region.
Lagos Food Bank relies on volunteers for nearly every initiative. However, managing this growing volunteer network had become increasingly time-consuming. Hours were tracked manually through paper sign-in sheets, and staff had to comb through records to verify service hours before issuing certificates or reference letters.
To address these challenges, Lagos Food Bank partnered with Hack4Impact Cornell to design a centralized platform that would simplify volunteer hour tracking, speed up event check-ins, and improve the volunteer experience across the board.
This semester, I worked on the Lagos Food Bank subteam at Hack4Impact Cornell. Our mission was to design a streamlined volunteer management system tailored to the nonprofit’s operations. The platform needed to serve three user types—volunteers, supervisors, and administrators—each with different goals and pain points.
I focused on designing key workflows that improved how users interact with upcoming events and manage organizational data. By reducing administrative burden and modernizing check-in and certificate processes, our tool helps the nonprofit scale its impact and better support the communities it serves.
Through multiple partner interviews, we identified several pain points in the current system:
In response, we proposed a centralized platform that simplifies volunteer signups, streamlines event attendance tracking, and automates hour logging—all while providing role-specific interfaces for different users.
We began by mapping out the information architecture and user flows for all three user types. Centralizing sign-up flows without disrupting existing workflows was a significant challenge, and required close collaboration with our nonprofit partners. After extensive feedback, we arrived at streamlined, intuitive flows for:
To deepen our understanding, we developed a volunteer journey map. This visual aid helped us pinpoint friction at each stage of the volunteer lifecycle and guided brainstorming for user-centered design solutions. After many partner calls we ended up with the following changes:
After we finalized the user flow we also made a journey map for the volunteers. This helped us reiterate what problems arose at each step of volunteering for LFBI. This really helped us with visualizing the problems, and helped us brainstorm on how we might solve these issues.
My first design task was the "Browse Events" page for all user roles. I focused on how users could intuitively search, filter, and view events.
Design decisions: I tested various card layouts and sorting mechanisms. Ultimately, I chose medium-sized cards without images—logos and stock photos didn’t add value and only created visual noise.
Next, I tackled the admin-only metadata page. It was important to make this page clearly restricted from volunteer or supervisor access, while keeping it simple and efficient for admin use.
I experimented with layouts including sidebars, but eventually opted for a minimal vertical structure. Since the page’s content was relatively short, eliminating the sidebar simplified development and avoided unnecessary complexity. My final design looked like this: