💼 Hiring Quest – Senior Full-Stack Laravel Engineer @ Career 180
Challenge-based hiring quest with structured evaluation and real project outcomes.
Top performers get hired with a paid contract and the opportunity to work on real-world projects.
👋 We are Career 180, a comprehensive and interactive Career Knowledge Network where all career-related services are centralized in one place.
We’re building a scalable Learning Management System (LMS) that powers interactive learning experiences for thousands of learners.
We’re hiring a Senior Full-Stack Laravel Engineer (6+ YOE) to architect and implement the core foundation of our next-generation LMS.
🕓 Start Date: Immediate
🌍 Location: Hybrid – Nasr City (3 days onsite)
💰 Salary: EGP 50 – 80K
🛠️ How the Hiring Quest Works
Register
Receive detailed instructions
Submit before deadline
Top candidates attend a deep technical review session
One candidate will be hired
🔍 Who We’re Looking For
5+ years of professional Laravel development experience
Strong in OOP, HTTP, REST/JSON, queues, caching, transactions, validation
Deep understanding of concurrency, data integrity, race condition prevention
Solid grasp of Livewire v3 and Alpine.js patterns
Proficient in automated testing (Pest or PHPUnit)
Comfortable with Action/Service classes, Composer, NPM, Vite, Tailwind, and Git
Strong database skills (indexes, constraints, performance awareness)
Bonus: experience with Filament v3
Bonus: event-driven architecture / high-scale systems
🎯 Your Mission
Build the core foundation of a scalable Mini-LMS.
This is not just a feature exercise — it’s a systems-thinking exercise.
🧰 Tech Stack
Laravel 11/12
Livewire v3
Alpine.js
Filament v3
Pest
MySQL
Plyr.js
Docker + Docker Compose (Required)
📌 Core Functional Scope (Focused)
1️⃣ Public Home
/ lists published courses (title, image, level)
Must be efficient (no N+1)
2️⃣ Authentication & Enrollment
Registration sends Welcome Email (queued/async)
Enrollment requires authentication
Enrollment must not create duplicates
Enrollment must not allow draft courses
System must behave correctly under:
rapid clicks
network retries
queue retries
3️⃣ Course View
/courses/{slug}
Course details
Ordered lessons
Free preview lessons accessible to guests
Unique slug handling (including soft deletes)
4️⃣ Lesson & Progress
/courses/{slug}/lessons/{lesson}
Video player via Plyr
Mark as completed
Track started_at, completed_at
Completion rules:
A course becomes completed when all required lessons are completed
On completion:
Create certificate record (UUID)
Send completion email (async, once only)
Courses may be edited after users enroll (lessons added/removed).
System must remain logically consistent.
(No further clarification will be provided.)
⚡ Required Alpine Behaviors (Min 3)
Accordion lesson list
Confirmation modal before marking completed
Animated progress bar
Plyr lifecycle integration
(Bonus) Dark mode toggle
🛠 Architectural Requirements
Core flows implemented via Action classes
Use Events + queued listeners where appropriate
Use DB constraints where appropriate
Use transactions in multi-step flows
Policies must isolate user data and prevent cross-user exposure
🐳 Docker Requirements (Mandatory)
Your submission must include a working Dockerized setup with:
Required services
app (PHP-FPM or Laravel container)
web (Nginx or Apache)
db (MySQL)
queue worker (separate container OR same image different command)
(Optional bonus) redis for queue/cache
Must-have DX
docker-compose.yml at repo root
One-command start:
docker compose up --build
Documented bootstrap script/commands in README:
install deps
migrations + seeds
queue worker
run tests
✅ The reviewer should be able to run the full project on a clean machine using Docker only.
🧪 Testing (Pest Required)
Must cover:
Enrollment integrity (idempotency / duplication prevention)
Completion flow integrity (email once + certificate once)
Slug uniqueness rule
User isolation (policy/access)
At least one meaningful edge case of your choice
🧠 Product Thinking Layer
Note : Please focus on explaining your own thinking and decision-making process. We want to understand how you approach product problems and evaluate trade-offs — this is about your thinking, not AI-generated answers.
In addition to implementation, you must include a section in /docs/PRODUCT_THINKING.md.
In this document, answer:
1️⃣ Business Risks
What are the top 3 product risks in this LMS?
Explain how your architecture supports or mitigates these risks.
2️⃣ Metrics That Matter
If you were working with Product, what 5 metrics would you track?
Explain:
Where would you capture these metrics?
Would you compute or store them?
How would you avoid performance issues?
(No need to fully implement analytics — just design thinking.)
3️⃣ Future Evolution
Imagine in 6 months Career 180 wants:
Paid courses
Mobile app API
Corporate multi-tenant accounts
Gamification badges
Explain:
What in your current architecture supports this?
What would need refactoring?
4️⃣ Trade-offs You Made
List 3 conscious trade-offs you made. And Explain why.
📦 Deliverables
Repo must include:
Codebase
Migrations + seeders
Actions
Events + listeners
Policies
ERD (image or docs)
README (setup + assumptions)
/docs/ARCHITECTURE.md
/docs/PRODUCT_THINKING.md.
🎥 10–15 min video:
Architecture + trade-offs
Concurrency strategy
Docker/DX walkthrough
What you would improve next
📊 Evaluation Criteria
System Architecture & Structure — 30%
Data Integrity & Concurrency Handling — 20%
Laravel Implementation Quality — 20%
Testing Depth & Edge Cases — 15%
Admin & UX Implementation — 10%
Clarity of Decisions (Video + Docs) — 5%
📩 After Submission
Top candidates will join a technical review session
👉 Final decision within 5 business days after the review.