HR Director by Bent Ericksen
Six years of continuous modernization: evolving a decade-old Laravel HR platform from jQuery to Vue + Inertia.js, Laravel 5 to 11, with 100+ automated tests and zero downtime.
Highlights
Hello World modernized HR Director, a decade-old Laravel HR platform, without a single disruptive rewrite. Over six years of continuous improvement, we migrated 30+ pages and 100+ views to a modern SPA architecture, built 100+ automated end-to-end tests, and upgraded through every major Laravel version from 5 to 11, all while shipping new features and keeping production stable.
Services
Long-term Application Modernization
Laravel Development & Upgrades
Frontend Architecture (Vue + Inertia.js)
Automated Testing & CI/CD
Infrastructure & DevOps
Technical Strategy
Overview
HR Director is a comprehensive HR management platform built by Bent Ericksen & Associates, a firm that has helped healthcare practices manage employment challenges for over 40 years. The platform handles policies, compliance workflows, employee management, incentive compensation, and billing for practices across the country.
When Hello World began working with HR Director, the platform was built on server-rendered pages with jQuery. It worked, but it was hard to extend. A ground-up rewrite would have meant long feature freezes and real migration risk. We chose a different path: evolve the platform in place, improve key surfaces one by one, pay down debt as we touched it, and keep production steady throughout.
Our operating principle: de-risk the legacy surface area while shipping continuous improvements.
The Challenge
Evolution Over Rebuild.
HR Director had grown organically over a decade. The codebase mixed jQuery, scattered page-level scripts, and server-rendered views. Long-running tasks caused timeouts. An unmaintained permissions package created governance gaps. The asset pipeline was fragmented, making it difficult to adopt modern tooling.
A rewrite would have frozen development for months, risking customer trust and revenue. The real challenge was modernizing every layer of the stack, from infrastructure to UI, while keeping the platform running and shipping value the entire time.
Our Approach
We treated modernization as a relationship, not a project. Each improvement was scoped to reduce risk, unlock the next step, and keep the business moving forward.
Stabilize the Foundation
We started by Dockerizing development so every engineer shared the same environment. Onboarding dropped from days to hours. We moved heavy operations like policy rebuilds and bulk user updates to Laravel queues, eliminating front-end timeouts. Today, 15+ background workers handle critical jobs out of band.
Modernize the Frontend, Page by Page
We replaced ad hoc jQuery with Vue-powered components, starting with the highest-traffic admin views. Then we adopted Inertia.js for a server-driven SPA experience, migrating 30+ pages and 100+ views without abandoning monolith simplicity. The employee UI refactor delivered a cleaner, more responsive experience with near-zero downtime.
Upgrade the Stack Continuously
We executed a staged series of framework upgrades from Laravel 5 through 11, paired with the PHP 8 migration. We replaced the unmaintained Entrust permissions package with spatie/laravel-permission, introduced soft deletes across policies, users, and Stripe customers, and migrated hosting from managed AWS to Platform.sh for Git-driven workflows and branch-based preview environments.
Build Confidence Through Testing
The legacy WebDriver test suite was fragile and slow. We migrated end-to-end tests to Playwright and expanded coverage to 100+ tests guarding critical flows. Faster feedback, earlier regression catches, and higher release confidence became the norm.
Key Milestones
- 2020: First Vue SPA screen, Dockerized development, background queues, Stripe billing integration
- 2020-2021: BonusPro incentive compensation module matures with guided plan builder and reporting
- 2021: Frontend refactor v1 with Webpack, soft deletes introduced
- 2022-2023: Inertia.js + Vue rollout across 30+ pages, Platform.sh migration, Stripe UX overhaul
- 2023-2025: Playwright test suite (100+ tests), employee UI refactor, Laravel 5→11 upgrades
- 2024-2025: Roles and permissions refresh, expanded soft deletes with automated pruning
Results
- 30+ pages and 100+ views migrated to modern SPA architecture while shipping new features
- 15+ background workers handle heavy jobs out of band, eliminating timeouts
- 100+ Playwright tests guard critical flows with fast feedback
- Laravel 5 through 11 upgraded in stages without stalling feature work
- Preview environments per branch and reproducible local dev with Docker
- Cleaner governance: soft deletes, auditable roles, and reliable billing events
- Zero frozen months: customers felt progress, not turbulence
Why This Approach Works
- No frozen months. Shipping continued while modernizing.
- Focused risk. We touched one surface at a time.
- Compounding gains. Each improvement unlocked the next.
- Calm delivery. Customers felt progress, not turbulence.