About us Guides Projects Contacts
Админка
please wait

Client & context

A North American training provider operated a multi-tenant learning portal used by multiple corporate clients. The platform was built with Laravel and a modern front-end, but:

  • Local development was unclear to set up and keep running.
  • Upgrades were risky due to architectural inconsistencies.
  • There were numerous small bugs in legacy code, layout, and multi-tenant behavior.

I joined as a senior full-stack engineer to stabilize and evolve the platform.

Challenges

  • Complex multi-tenant setup with per-tenant configuration, custom domains, and background jobs.
  • Dev environment pain: Docker configuration, certificates, and initialization were complicated and brittle.
  • Upgrades and security: framework and libraries needed to be updated while keeping tenants online.
  • UI & UX regressions: CSS/JS loading issues, broken adaptive layouts, and duplicated code in legacy sections.

What I did

1. Simplified local development & onboarding

  • Cleaned up and simplified Docker Compose and Dockerfile setup.
  • Fixed automatic certificate generation and initialization routines, including cron jobs.
  • Updated and clarified onboarding documentation, making it much easier for new devs to start contributing.

2. Architectural cleanup & upgrades

  • Fixed architectural inconsistencies that made upgrades hard and error-prone.
  • Upgraded the backend from Laravel 8 to Laravel 9.
  • Updated Node.js libraries and build tooling until all known vulnerabilities were resolved.
  • Refreshed architecture documentation so future changes would be easier to plan.

3. Quality & consistency improvements

  • Performed manual testing across legacy and newer features.
  • Fixed bugs in legacy functionality, including:
  • Conditional logic and edge cases.
  • Adaptive design issues (responsive layouts).
  • JavaScript and CSS loading order problems and duplicates.
  • Merged database migrations and updated feature implementations to align old code with newer patterns.

4. Multi-tenancy enhancements

  • Integrated with AWS Route 53 API to manage subdomains and DNS automatically.
  • Implemented sub-tenant creation from within the tenant administrator interface.
  • Added background tenant initialization processes.
  • Improved configuration options for fields, columns, filters, validations, and multi-language captions.

Results

  • New developers could get a working local environment much faster, reducing onboarding friction.
  • The platform moved to Laravel 9 with an updated front-end stack and closed security vulnerabilities.
  • Multi-tenant management became more reliable and user-friendly, including automated domain handling.
  • The codebase became more coherent and maintainable, allowing the client to focus on new features instead of firefighting.

Tech & responsibilities

  • Role: Senior full-stack engineer for a multi-tenant SaaS platform
  • Technologies: Laravel 8→9, PHP, Node.js, Docker, Docker Compose, AWS Route 53, multi-tenancy, JavaScript, CSS, responsive design
  • Scope: Dev environment and documentation, framework and library upgrades, bug fixing, multi-tenant enhancements, and architecture cleanup

If you operate a multi-tenant SaaS that’s hard to upgrade and even harder to run locally, I can help you simplify the setup, modernize the stack, and remove friction for your team.

Back to all case studies

 
 
 
Языки
Темы
Copyright © 1999 — 2026
ZK Interactive