💼 Hiring Quest – Backend Developer @ Expanders360

Phase: Registration

Registration Deadline: September 10, 2025

Submission Deadline: September 10, 2025

To register for a quest, you need to create an account on our platform . If you've registered for any quest before, you already have an account. If you face any issues, please contact us on WhatsApp at 01558405326 or join our WhatsApp Community.

Register Now

Prizes

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

👋 We are Expanders360, a global expansion partner helping founders and investors enter new markets with ease. Through our network of vetted experts and service providers, we make cross-border growth smooth, compliant, and successful.

We’re now hiring a Backend Developer (3–5 YOE) to build reliable APIs, relational schemas, and hybrid storage systems that support our international expansion platform.

🕓 Start Date: Immediate
🌍 Location: Remote (Egypt-based preferred)
💰 Salary: Paid in USD (or USD-equivalent)


🛠️ How the Hiring Quest Works

  1. Register for the quest

  2. Receive full instructions via email after registration closes

  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 freelance or future roles


🔍 Who We’re Looking For

  1. 3–5 years of backend development experience

  2. Strong in NestJS with solid OOP design

  3. Proficient in MySQL (schema design, joins, transactions, optimization)

  4. Knowledge of MongoDB for handling unstructured data

  5. Experienced in building secure REST APIs with RBAC & validation

  6. Solid understanding of DB migrations, indexing, and caching strategies

  7. Bonus: experience with message queues, scheduling, or hybrid data architectures


🎯 Your Mission: Build the Global Expansion Management API

Business Context:
Expanders360 helps founders run expansion projects in new countries. Each project requires structured data (clients, vendors, projects) stored in MySQL, and unstructured research documents (e.g., market insights, contracts, reports) stored in MongoDB. Your mission is to design a backend that connects these worlds and powers the matching of projects with vendors.


🛠️ Your Tasks

  1. Auth & Roles

    1. Implement JWT authentication in NestJS

    2. Roles: client, admin

    3. Clients can manage their own projects

    4. Admins can manage vendors and system configs

  2. Projects & Vendors (MySQL) - Relational schema in MySQL:

    1. clients (id, company_name, contact_email)

    2. projects (id, client_id, country, services_needed[], budget, status)

    3. vendors (id, name, countries_supported[], services_offered[], rating, response_sla_hours)

    4. matches (id, project_id, vendor_id, score, created_at)

  3. Research Documents (MongoDB)

    1. Store market reports and project research files in MongoDB (schema-free).

    2. Each document is linked to a project (projectId).

    3. Provide an endpoint to:

      1. Upload a document (title, content, tags).

      2. Query/search documents by tag, text, or project.

  4. Project-Vendor Matching

    1. Build an endpoint /projects/:id/matches/rebuild that generates vendor matches using MySQL queries.

      1. Matching rules:

        1. Vendors must cover same country

        2. At least one service overlap

        3. Score formula: services_overlap * 2 + rating + SLA_weight

      2. Store matches in DB with idempotent upsert logic.

  5. Analytics & Cross-DB Query

    1. Create an endpoint /analytics/top-vendors that returns:

      1. Top 3 vendors per country (avg match score last 30 days, from MySQL)

      2. Count of research documents linked to expansion projects in that country (from MongoDB)

    2. This requires joining relational and non-relational sources in your service layer.

  6. Notifications & Scheduling

    1. When a new match is generated → send email notification (SMTP or mock service).

    2. Implement a scheduled job (e.g., using NestJS Schedule or BullMQ) that:

      1. Refreshes matches daily for “active” projects

      2. Flags vendors with expired SLAs

  7. Deployment

    1. Dockerized app with MySQL + MongoDB containers

    2. Deploy to any free cloud (Render, Railway, AWS free tier, etc.)

    3. Provide a working .env.example and setup instructions


🧰 Tech Stack

  1. NestJS (TypeScript)

  2. MySQL for relational data

  3. MongoDB for unstructured documents

  4. JWT Authentication

  5. ORM: TypeORM (MySQL) + Mongoose (MongoDB)

  6. Scheduling: NestJS Schedule / BullMQ

  7. Docker + docker-compose


📝 What You Should Submit

  1. GitHub repo with:

    1. Codebase (NestJS modules, services, controllers)

    2. MySQL migrations + seeds

    3. MongoDB seed script

    4. README including: setup, schema diagrams, API list, matching formula, deployment link

  2. Short demo video: DB schema walkthrough, API demo, analytics query demo


📊 Evaluation Criteria

  1. API & Architecture (NestJS practices, modularity, DI) – 25%

  2. MySQL Schema & Queries – 20%

  3. MongoDB Integration – 15%

  4. Matching Logic & Analytics – 15%

  5. Notifications & Scheduling – 10%

  6. Documentation & DX – 10%

  7. Deployment – 5%


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


Making the world a better place through competitive crowdsourcing programming.