ASMBS: modernizing a medical society's systems while payments stayed live
The American Society for Metabolic and Bariatric Surgery runs its members, events and content on two systems, a private AMS and a public-facing CMS. I led full stack work across both: updating the stack, keeping payment portals running, and cleaning up duplicate member records without losing any of them.
My roleManager, Software Engineering (contract)
TimelineMarch - May 2025 · Newberry, FL
BuildWordPress · Symfony · PHP · MariaDB
Outcome10+ features shipped across both systems
Old systems, live payments, messy member data
A medical association lives by its data: memberships, certifications, events, dues. At ASMBS that data sat in a private Association Management System built on Symfony and a public WordPress site, and both were overdue for updates.
Members pay dues and register for events through those systems every day, so the payment portals couldn't go down while I worked. The AMS also had duplicate member entries that needed to be merged without losing anyone's history. My job was to update and extend both systems without breaking anything critical, with no documentation to start from.
What I did
Updated the stack on a copy first. Cloned production, including the MariaDB data, into a staging environment and ran the PHP, Symfony, WordPress core and plugin updates there. Nothing touched the live site until we thoroughly tested everything.
Kept the payment portals live. Tested every dues and registration checkout against the payment provider's sandbox before each release, deployed during low-traffic hours, and kept the previous release ready to roll back to in minutes.
Merged duplicates without losing records. Wrote queries to flag likely duplicates by email, name and member ID, then merged each set into one record and moved its dues, certifications and event history over. Merged records were archived and logged rather than deleted, so any merge could be undone.
Left it maintainable. Documented what I changed and why, so the next developer could get up to speed in half the time it took me.
10+Features shipped in the engagement
55%Faster on key admin page loads
~7 hrsStaff time saved per week
What I learned
Running both upgrades side by side showed me how much the AMS and the WordPress site depend on each other. Mapping every place the two share data is what made this job go smoothly. On the next system like this, it's the first thing I'll write and the first thing I'll hand the next developer.