Senior PHP / Livewire/ Laravel Developer — General Requirements

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Full Time

SALARY

$7-$12 per hour

HOURS PER WEEK

40

DATE UPDATED

Sep 3, 2026

JOB OVERVIEW

Contract: 12-week initial term, extension expected
Engagement: Project-Based
Location: Remote — must overlap Australia / Sydney business hours (AEST/AEDT)
Time Tracking: TimeDoctor (screenshots + activity tracking) — required for the duration of the contract
Experience: 8+ years professional PHP / Laravel development
Working hours: 40 hours/week Monday to Friday
Positions: 3 — Clinical & Supplier Integrations, Business & Financial Integrations, Product Features
About the Project
We build and run a multi-tenant practice management platform used by healthcare clinics — patient records, appointments, clinical notes, prescriptions, invoicing, and reporting. The platform is a set of interconnected Laravel applications sharing a central PostgreSQL database, and we are progressively rewriting our main portal into Laravel + Livewire 3.
We are hiring three senior Laravel developers. All three sit on the same platform and share the same bar; they differ in what each owns. This document is the baseline every candidate must clear before their specialisation is considered. Each role has its own job description covering what it adds on top.

The Three Positions
• Clinical & Supplier Integrations — supplier and laboratory ordering systems, health-claims and rebate platforms, partner clinical networks. Correctness over speed.
• Business & Financial Integrations — accounting platforms, email and calendar providers, payment terminals and banking APIs. Money and communications, both unforgiving.
• Product Features — new customer-facing features including AI-assisted clinical documentation and self-service financial tooling. UI-forward; the only role where Livewire is a hard requirement.

Requirements
Experience & Skills
• 8+ years building production PHP applications, with at least 5 years in Laravel (Laravel 9+), hands-on and current.
• Large or long-lived production systems — code with history, constraints you did not choose, and users who noticed when it broke. A string of greenfield builds is a different kind of experience; this platform is not a greenfield.
• You have owned something in production — not just built it, but carried it, watched it fail, and fixed it. Be ready to talk about a specific failure in detail.
• Eloquent at depth — relationships, eager loading, query performance, and knowing when to drop to the query builder or raw SQL instead.
• Strong SQL — non-trivial queries, joins, indexes, and the ability to read a query plan and act on it. PostgreSQL preferred; MySQL transfers fine.
• Queues and background jobs — Laravel queues, Horizon, Supervisor or equivalent. You have debugged a job that failed silently in production.
• REST and web services in general — HTTP semantics, auth headers / bearer tokens, status-code handling, retries/backoff, idempotency, and what happens when a request times out mid-write.
• Reading code you didn’t write — much of this work is understanding existing systems before changing them. Comfort navigating an unfamiliar codebase is essential.
• Multi-tenant awareness — every record here is scoped by account and practice; getting that wrong is a data-leak class of bug, not a cosmetic one.
• Able to work independently — self-directed and comfortable owning a component end to end with minimal supervision.
• Testing & QA — can write unit and feature tests (Pest or PHPUnit), perform manual QA, identify and log defects, and verify fixes against acceptance criteria.
• Agentic Coding — familiar with Claude Code in coding, testing, and review in the workflow.
• Project Management — capable of lightweight PM tasks: tracking milestones, updating task status, flagging blockers proactively, and estimating remaining effort.
• Security Awareness — aware of data sensitivity and handling. This platform holds patient and financial records.
• Good verbal and written communication in English — clear and professional in async written communication (Slack, Jira, Confluence) and comfortable in spoken sync calls.
Tools & Workflow
• Comfortable working in our toolchain: Jira (issues/sprints), Confluence (docs), Postman (API testing), Sentry (error monitoring), and Bitbucket (source control / pull requests).
• Clean commits, clear pull requests, and clear written communication in English.

Not Required
• A degree. We care about what you’ve shipped.
• Livewire — except for the Product Features role, where it is a hard requirement.
• Tailwind or Alpine specifically — the fundamentals underneath them are what matter.
• Python or Django — helpful for reading legacy business logic, not a requirement.
• Healthcare or clinical software background — useful context, genuinely not a hard requirement.
• PostgreSQL specifically — strong MySQL transfers fine.

Working Arrangement
• Project-based. 12-week initial term with milestones agreed up front. Extension expected for the right person.
• Sydney business-hour overlap required for daily sync and quick turnaround on questions. A minimum of 6 hours of genuine overlap each working day is required — you don’t need to be Sydney-based.
• TimeDoctor is used for time tracking and is a condition of the engagement; please only apply if you’re comfortable with activity monitoring.
• Resources provided: codebase access, database schema documentation, and a staging environment to test against.

How to Apply
Please include:
• Which of the three positions fits you best and why. If more than one does, say so — we’d rather place you well than fill a slot.
• Relevant Livewire work — links or descriptions of comparable projects, and what you owned on them.
• Relevant Laravel work — links or descriptions of comparable projects, and what you owned on them.
• Links to any code you’ve written — GitHub, GitLab, personal projects, anything.
• Your experience with agentic coding tools — which you’ve genuinely used, one task you completed with one, and one time the tool got it wrong and how you caught it.
• Examples of working independently and owning a component end to end.
• Any Testing, QA, or light project management experience.
• Your time-zone and the daily hours you can overlap with Sydney.
• Confirmation you’re comfortable using TimeDoctor, Jira, Confluence, Postman, Sentry, and Bitbucket.
• A rough estimate / milestone breakdown for work of this shape, and your rate.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0023
Controller Execution Time ( Jobseekers / Job )  0.0235
Total Execution Time  0.0268
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,513,872 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-PHP-Livewire-Laravel-Developer-General-Requirements-1713880
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0113 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0009   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1713880
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 967319
 LIMIT 1 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1713880
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-09-21',ej.date_added) duration_daysDATEDIFF('2026-09-21',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-09-21',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1713880' 
0.0008   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1713880 
0.0009   UPDATE employer_jobs SET hit_counts '***Aug-21-2026=477***Aug-22-2026=149***Aug-23-2026=22***Aug-24-2026=40***Aug-25-2026=5***Aug-26-2026=15***Aug-27-2026=82***Aug-28-2026=67***Aug-29-2026=26***Aug-30-2026=35***Aug-31-2026=139***Sep-01-2026=73***Sep-02-2026=72***Sep-03-2026=1066***Sep-04-2026=172***Sep-05-2026=69***Sep-06-2026=52***Sep-07-2026=103***Sep-08-2026=83***Sep-09-2026=71***Sep-10-2026=65***Sep-11-2026=56***Sep-12-2026=40***Sep-13-2026=38***Sep-14-2026=36***Sep-15-2026=36***Sep-16-2026=40***Sep-17-2026=29***Sep-18-2026=28***Sep-19-2026=12***Sep-21-2026=1' WHERE job_id'1713880'  
0.0013   UPDATE employer_jobs SET monthly_hits '***Aug-2026=1056***Sep-2026=2140' WHERE job_id'1713880'  
0.0009   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1713880' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1713880 
0.0026   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '967319'
AND `date_added` >= '2022-06-08' 
0.0014   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)