Middle Backend Developer (Laravel / PHP)
Project:
Admin platform for managing insurance products offered together with major telecom providers in South Africa — policies, claims, payments (debit orders), customer communications (SMS/email), reporting, and third-party integrations.
You'll build software used by thousands of customers across the South African insurance market. It's a large modular Laravel application with multiple business domains and mature legacy areas that require careful, incremental improvement.
What you'll do
Build and maintain the backend of a large modular Laravel application (15+ business modules)
Maintain and improve existing functionality across multiple business domains
Investigate production issues and implement sustainable fixes
Refactor existing code following service-oriented architecture and separation of concerns
Investigate and optimize slow SQL queries, reporting pipelines, and batch-processing jobs
Refactor and optimize console commands and scheduled jobs (payment reminders, debit-order cycles, claim SLA checks)
Generate operational and financial reports in PDF, Excel, and Word formats
Work with background queues (beanstalkd + Supervisor) for async processing
Support integrations: SOAP web services, SMS gateways, PGP/GPG file encryption
Participate in code review and work through a ticket-based flow (Jira, OM-XXX tickets) with PRs
Must-have
PHP 8+
Laravel
SQL
Git
REST APIs
Queues
English at a confident reading/writing level (tickets and PR discussions are in English)
~2–4 years of commercial PHP/Laravel experience
Nice-to-have
Modular Laravel architecture nwidart/laravel-modules or similar)
Spatie ecosystem (laravel-data, laravel-permission, medialibrary)
Queues on beanstalkd / Supervisor, Redis
SOAP integrations, SMS gateway experience
PGP/GPG and handling sensitive financial/insurance data
Fintech / insurance / telecom domain background
Pest / PHPUnit, Laravel Pint
Basic frontend: Blade, Bootstrap 5, Vite
Soft skills
Comfortable working in a mature legacy codebase
Willingness to gradually improve existing code instead of rewriting everything
Ownership of assigned features through deployment
Able to break larger tasks into steps and carry them through to release with light guidance
Communicative — a lot of the work happens in PR discussions