ferenc.rocks/

Proof » Go Grants

Go Grants – Grant-management platform

2012–2016 · Dynamic forms, reporting, performance

The situation

Go Grants was a grant-management platform used across more than 25 US arts and grant-making organizations, including large institutions such as the National Endowment for the Arts.

When I joined the project, the system was already in production. It supported applicant forms, admin workflows, reporting, scoring, data imports, and recurring grant cycles.

It was useful software with real users, but it also carried years of earlier decisions, bugs, slow queries, performance problems, and support requests.

Where the complexity lived

Much of the platform’s value came from its flexible grant forms. Admins could create custom fields and adapt each grant cycle to their organization’s needs.

That flexibility also made reporting and performance difficult. The system had to query and combine large numbers of custom fields across many applications, sometimes with relationships that were difficult to reconstruct from the stored data alone.

Around major application deadlines, the platform could receive submissions from roughly 10,000 applicants within one or two days.

That made performance work more than technical cleanup. It directly affected whether the system could remain usable under real deadline pressure.

What I worked on

Over several years, I worked on the parts that made the platform easier to operate: reporting, admin workflows, and performance.

This included tracing slow SQL queries, profiling PHP code, reducing memory usage, and testing demanding workflows under load.

I also improved everyday admin work, including recurring grant-cycle setup and form management.

One larger refactor moved frontend logic into a more reusable structure, so business rules were no longer scattered as widely across the interface layer.

Why this matters

The work was about making an inherited production platform faster, safer, and easier to maintain without pretending that the existing data model, users, and workflows could simply be replaced.

Technical context

PHP, Zend Framework, MySQL, SQL/EAV, jQuery, dynamic forms, reporting, scoring, data import, performance optimization.