💼 Hiring Quest – Backend Developer – Mid-Level @ 4Sale

Phase: Submission

Registration Deadline: June 21, 2025

Submission Deadline: June 30, 2025

Prizes

You get hired with paid contract and the opportunity to work on real-world .

👋 4Sale is a leading online classifieds platform in Kuwait. With its user-friendly interface, it has gained massive popularity, boasting over 1 million active users and more than 400 million monthly page views. The platform features 197 categories, including cars, real estate, electronics, services, and more

🕓 Start Date: Immediate
🌍
Location: Hybrid
💰
Salary: 20,000 - 35,000 EGP


🛠️ How the Hiring Quest Works

  1. Register for the quest

  2. After registration, you’ll receive all details via email

  3. Submit your solution before the deadline

  4. Top candidates will be invited to a review session

  5. One candidate will be hired, others may be considered for future roles


🔍 Who We’re Looking For

  1.  ✅ 2–4 years backend development experience

  2. ✅ Strong in Laravel (PHP) or Spring Boot (Java) or Go (Gin/Echo)

  3. ✅ Experience with MySQL or PostgreSQL

  4. ✅ Familiar with Docker and container-based environments

  5. ✅ Experience building and securing RESTful APIs

  6. ✅ Strong grasp of object-oriented design, clean code, and design patterns

  7. ✅ Experience writing unit and integration tests

  8. ✅ Bonus: Familiarity with Redis, CI/CD, or cloud platforms

  9.  ✅ Bonus: Prompt engineering with ChatGPT or similar agents


🎯 Your Mission: Build a Scalable Reward-Based Credit System

Business Context:

Users can buy credit Packages (e.g., 100 EGP = 100 credits). Each purchase also gives them reward points. Users can later redeem those points to claim products selected by the admin. The system must scale to support hundreds or thousands of products, and provide fast and relevant search capabilities.

🛠️ Your Tasks

  1. Credit Packages & Purchases

    1. Users can view and purchase predefined credit packages

    2. On each purchase, reward points are added to the user's account

  2. Points Redemption

    1. Users can view products and redeem their points

    2. Only products in the “Offer Pool” (set by admin) are redeemable

  3. Admin Features

    1. Add/edit credit bundles and reward point rules

    2. Add/edit product catalog and mark eligible products for offers

  4. Search Functionality

    1. Add an endpoint: GET /products/search?query=...

    2. Should support keyword search across product names, categories, etc.

    3. Must handle pagination and be efficient for large product datasets

  5. Docker Support

    1. Submit Dockerfile and docker-compose.yml

    2. System should be fully runnable via Docker

  6. (Bonus) AI Recommendation Endpoint

    1. Route: POST /ai/recommendation

    2. Given user's point balance and product list, return a recommended product

    3. You can include the AI prompt logic or mock the response


🧰 Tech Stack

  1. Backend: Laravel  or Go

  2. Database: MySQL / PostgreSQL

  3. CI/CD: Docker


📝 What You Should Submit

  1. GitHub repo link with:

    1. Backend project code

    2. Dockerfile and docker-compose.yml

    3. README with:Setup steps (docker compose up), API documentation, Sample test data (SQL dump or seeders), (Bonus) AI prompt explanation

  2. Short video walkthrough explaining: Features implemented, Code structure, Key decisions and logic


📊 Evaluation Criteria

  1. System Design & Scalability 25%

  2. API Design & Code Quality 20%

  3. Search Function & Performance 15%

  4. Docker Setup & Usability 10%

  5. Bonus (AI Integration or Redis) 10%

  6. Documentation  10%

  7. Error Handling & Test Coverage 10%


📩 After Submission

Top candidates will be invited to a live technical review session where we'll:

  1. Walk through your implementation

  2. Discuss technical decisions and scalability

  3. Evaluate your thought process and backend fundamentals

👉 Final decisions will be made within 3–5 business days after your review.

Making the world a better place through competitive crowdsourcing programming.