Experience


POOLCORP

Software Architect

— Present

  • Decomposed a monolithic backend into independently-maintained packages, separating application, API, infrastructure, and integration concerns to improve build times, testability, and multi-tenant correctness
  • Introduced data isolation guarantees at the database context level to enforce strict per-tenant scoping on all authenticated requests, and replaced a frontend-only super admin system with a backend-owned implementation that resolved a class of cross-tenant data leakage bugs
  • Designed and built the end-to-end integration event system connecting the platform to an external ERP via Azure Service Bus, with full ownership of inbound and outbound message contracts, reliability patterns, and Azure Function App infrastructure
  • Pioneered patterns for genuinely isolated unit tests on a codebase where all existing tests were effectively expensive integration tests; the resulting suite runs ~1,000 tests in ~25 seconds, compared to a legacy suite of 200 fewer tests taking ~4 minutes
  • Established frontend test execution as a hard PR gate for the first time — a multi-phase effort spanning a test framework migration, elimination of barrel file imports across the entire codebase, resolution of 400+ latent TypeScript errors, and fixing 150+ broken tests that had never been enforced in CI
  • Upgraded the full platform from .NET 8 to .NET 10 across all APIs, function apps, and shared projects
  • Proactively reduces complexity, removes surface area, and writes code with the next developer in mind; consistently leaves codebases smaller and more comprehensible than before

Software Engineer II & Tech Lead

  • Led two product teams while staying fully hands-on — first the Portal team through its post-go-live phase, then the Service team — owning platform-wide initiatives across both
  • Consolidated two separately-maintained full-stack applications into a shared codebase, unifying the development branch, CI/CD pipeline, and release process while upgrading the platform from .NET 6 to .NET 8 and migrating the frontend from Create React App to Vite
  • Re-implemented a recurring payments processing pipeline from the ground up using the payment provider's REST API directly, with a feature-gated per-tenant rollout and hardened error handling
  • Built out QuickBooks Online integration for the accounting layer, covering customer import, tax code sync, and invoice finalization
  • Built the team's first local development database infrastructure — previously all developers ran against a shared cloud instance, including schema migrations; replaced this entirely with containerized local environments and a .NET Aspire orchestration layer

Software Engineer II

  • Promoted to SE II while on the Portal team, then to team lead shortly after; led the team through the post-go-live period of PoolService and WaterTest, owning the onboarding and account management platform that served as the front door to both SaaS products
  • Established coding patterns, improved production observability, and coordinated releases across multiple applications

Software Engineer I

  • Started on the Retail team working on WaterTest-adjacent services, including Azure Function App batch ETL jobs for mass customer data import and extracting core chemical management functionality into a dedicated microservice
  • Hand-picked as a founding member of the newly formed Portal team, where the team built from scratch a Next.js frontend backed by a .NET BFF, integrating a Contentful CMS for dynamically rendered content alongside administrative flows for user access management and SaaS onboarding
  • Contributed to the go-lives of both PoolService and WaterTest through the Portal platform

Entrance Consulting

Junior Software Consultant

  • Contributed as a full-stack developer across client engagements spanning React/GraphQL frontends and .NET MAUI mobile applications, leveraging AWS services including Lambda, S3, RDS, and SES
  • Engaged across the full software development lifecycle from requirements gathering and wireframing through Agile delivery and stakeholder presentations