Skip to content

Five Days to Turn 17 Tables into a Working Product

In a five-day academic simulated-client sprint, our four-person team delivered a secure decision-support product across 17 connected tables while I served as Scrum Master, developer, and ML lead and personally built all 13 predictive pipelines.

Scrum Master / ML Lead / DeveloperApril 2026React, TypeScript, .NET, C#, PostgreSQL/Supabase, Python

At a glance

5 days

from brief to final presentation

17

connected operational tables

13

predictive pipelines personally built

Monday: a dataset and a deadline

On Monday, our team received a 17-table nonprofit dataset. By Friday, we had to demonstrate a secure application connecting donor management, resident care, outreach, reporting, and predictive models. The scope was broad. The harder challenge was deciding what mattered enough to finish.

Project Beacon was a simulated client engagement based on anonymized operational material from Lighthouse Sanctuary, which supports safe homes and rehabilitation services for girls who have survived abuse or trafficking in the Philippines. We designed for a hypothetical new organization with similar needs, not for Lighthouse Sanctuary itself.

The data represented vulnerable minors, donors, staff, and partner organizations. The system needed to help a small staff act on complex information without exposing sensitive resident details or turning surveillance into a product feature.

The team was Nathan Trotter, Jake Gunnell, Jazzive Vizcarra, and me. We spent much of the week working together in the same apartment so decisions and integration could happen quickly. I served as Scrum Master, developer, and machine-learning lead, moving between backlog planning, technical delivery, documentation, integration, and teammate support.

Product surface

One product connected public, donor, staff, and predictive workflows

Public + outreach

Impact communication, social activity, and donation-referral context.

Authenticated operations

Donor management, resident workflows, safehouse operations, and reporting.

Decision support

Ranked lists, risk indicators, explanations, and forecasts from the ML layer.

Public-safe reconstruction of the product surface. Sensitive resident information is intentionally omitted.

Our central bet: decision support, not a database viewer

A basic solution could have been a collection of forms and charts. We wanted each important page to help a user answer four questions: What changed? What needs attention? What action should I consider? Why is the system surfacing this information?

A secure decision-support platform connecting donor activity, resident progress, outreach performance, and public impact in one operational system.

The 17 tables fell into three connected domains. The value came from relationships across them, such as linking donations to allocations and impact, social posts to donation referrals, and resident activity to risk, progress, and safehouse capacity.

Donors and support

Supporters, donations, in-kind items, allocations, safehouses, and service partners.

Resident care

Residents, counseling, home visits, education, health, interventions, and incidents.

Outreach and impact

Social activity, engagement, donation referrals, safehouse metrics, and public reporting.

Connected data model

Three operational domains fed three user-facing workflows

Donors + support

Giving, allocations, in-kind support, partners, and safehouses.

Resident care

Progress, counseling, education, health, interventions, and incidents.

Outreach + impact

Social performance, donation referrals, and public reporting.

Relationships across the domains allowed the application to connect fundraising, care delivery, outreach, and capacity decisions without exposing raw sensitive data.

Turning data into decisions

I personally built all 13 predictive pipelines. Rather than beginning with an algorithm, I reviewed the data and started with decisions the organization might need to make. That led to 13 predictive questions across fundraising, outreach, resident care, and safehouse operations.

Donor retention

Rank donors who may stop giving, show the factors behind the signal, and give staff a focused list for outreach.

Resident prioritization

Surface cases that may need attention while keeping the recommendation explainable and restricted to authorized staff.

Each pipeline included a business question, prepared data, engineered features, training, evaluation, saved outputs, and a defined place in the application. I organized the work into reusable Python modules, notebooks, artifacts, reports, tests, API payloads, and integration examples so the models would not end as isolated experiments.

ML delivery flow

Question to decision support

  1. 1

    Question

  2. 2

    Data

  3. 3

    Model

  4. 4

    API

  5. 5

    Decision

The product consumed model results through backend endpoints and translated them into ranked lists, risk indicators, recommendation panels, explanation summaries, and forecasts. We also designed a scheduled refresh process so predictions could be republished when the underlying data changed.

Privacy shaped the implementation from the beginning. We used role-based access, protected endpoints, secure credential handling, confirmation for destructive actions, anonymized public reporting, and restricted access to resident data. We deliberately excluded real-time resident surveillance and similar monitoring that would create unnecessary risk.

Where the sprint began to bend

Early in the week, most of the team continued building the first application while a stronger competing frontend direction developed separately. The experiment itself was useful. The problem was that we never clearly time-boxed it, compared both options, and made the decision final before parallel work became expensive.

When we adopted the alternative direction, parts of the project had to move or be rebuilt during an already compressed delivery window. The team still reached a working product, but integration consumed time that could have gone toward polish, rehearsal, and making the value easier to see.

I raised concerns about presentation readiness several days before the demo, but we kept prioritizing the application. Serious rehearsal began shortly before presenting. Speaking roles and transitions were less clear than they should have been, so the presentation did not communicate the product as well as the product deserved.

The panel also responded strongly to small, memorable features that were immediately visible. We had prioritized architecture, security, connected workflows, and operational machine learning. Those were meaningful choices, but a strong foundation still needed one or two clear moments that made its value obvious within a short demonstration.

What shipped, and what I would change

By Friday, the team had a deployed product connecting public communication, authentication, donor workflows, resident case management, dashboards, reports, security, and machine learning.

  • Connected a relational database across 17 operational tables.
  • Delivered public and authenticated workflows for donors, residents, and staff.
  • Implemented role-based access and protected functionality.
  • Packaged 13 predictive pipelines for backend and frontend use.

Because this was an academic simulated-client project, the result should not be presented as live nonprofit adoption. Its value is the breadth of the working delivery under a severe time limit and the lessons that emerged from building it.

I would now establish clearer ownership of product direction, time-box competing approaches, and treat presentation preparation as part of the sprint rather than something that begins after development. Good architecture does not speak for itself. The team has to make the business value easy to understand, remember, and trust.

Project Beacon reinforced that I enjoy working where product planning, team coordination, software, data, and machine learning meet. I can build technical systems, but I am most interested in making sure those systems help people make better decisions.

View the Project Beacon repository