PeopleFluent — Principal Software Engineer

3 min read

PeopleFluent — Principal Software Engineer

2018 – 2020 | Enterprise learning platforms and web development

I worked on enterprise learning management systems (LMS) at PeopleFluent, contributing to platform capabilities and integrations. This was full-stack work in a large, mature codebase—the kind of system that has been in production for years and has accumulated both wisdom and technical debt.

What I Worked On

SCORM Engine Migration

I architected and led the development effort to replace the legacy SCORM interface with a modern SCORM Engine implementation. The existing interface had accumulated years of patches and edge-case handling that made it fragile and difficult to extend. The new implementation improved content compatibility across SCORM versions and reduced the maintenance burden on what was a critical integration surface—SCORM is how learning content communicates progress and completion, and if it breaks, courses don’t work.

Legacy Modernization

I led incremental modernization of legacy code using strangler patterns and feature flags. This is delicate work—you’re refactoring a system while it’s actively serving customers. Rewriting from scratch is rarely an option when you have enterprise customers depending on the current system, so I modernized in small steps: isolate a subsystem behind a clean interface, build the replacement behind a feature flag, validate it in production, then cut over. The goal was improving maintainability without disrupting active customers or requiring a risky full rewrite.

Platform Stability and Feature Development

Beyond the larger projects, I contributed to production reliability through incident response and performance optimization, and developed features across backend and frontend layers. The work ranged from new capabilities to maintenance of existing functionality. Enterprise LMS platforms need to talk to many things: content packages, HR systems, single sign-on providers—and each integration has its own quirks and failure modes.

What I Learned

Large codebases require discipline, not heroics. You can’t hold the whole system in your head. You need good tests, clear interfaces, and the humility to admit when you don’t understand something.

Modernization is incremental. Rewriting from scratch is rarely an option when you have customers depending on the current system. I learned to modernize in small steps—strangler patterns, feature flags, careful migrations.

Enterprise customers have enterprise expectations. Uptime matters. Performance matters. Backwards compatibility matters. These aren’t abstract requirements—they’re contractual obligations with real consequences.

Why This Mattered for Later Work

  • I design for maintainability because I’ve lived with systems that weren’t maintainable.
  • I respect incremental migration because I’ve seen big rewrites fail.
  • I think about what happens when the original authors aren’t around.
  • The SCORM expertise I deepened here built on what I’d learned at NetDimensions and later applied differently—understanding learning standards from the platform side rather than the content side.

Technologies: Java, JavaScript, HTML/CSS, SCORM/AICC/xAPI, enterprise LMS tooling.

  • NetDimensions — Where I first worked with SCORM/xAPI from the mobile and content side
  • Decian — Where I applied the modernization and platform thinking at an infrastructure level