Node.js Backend Developer — Data Pipeline & REST API

Posted last week

Worldwide

Summary

We're building a standalone backend microservice that automates two weekly AI-generated research reports covering the global data centre market. The service persists all report data historically in SQLite and exposes everything via a clean REST API. This post covers the first two milestones — database, data loader, normalisation, and REST API. If M1 and M2 are delivered cleanly and on time, there is a confirmed M3–M5 engagement to follow covering automated generation, a PM review gate, platform publication, and a benchmarking layer. Full PRD and issue breakdown shared with shortlisted candidates. Milestone 1 — Database & historical data store Two report types: DC Hardware Weekly (~70 products) and Global DC Development Weekly (rolling top-100 project list). Both share the same SQLite database. Schema: report_runs, hardware_items, developments, sources, benchmarks, trend_metrics Historical backfill loaders from existing JSON archives POST /ingest endpoint — validates weekly JSON and writes to SQLite Every weekly snapshot preserved permanently and queryable across weeks Done when: Azraq can call POST /ingest and query rows across multiple weeks in SQLite. Milestone 2 — Normalisation & REST API The Global DC Development report contains free-text capacity and cost fields that need parsing into typed numeric columns. Parse capacity: "200 MW (Phase 1 of 1 GW)" to 200, "1.4 GW" to 1400 Parse cost: "SAR 1.88B ($501M)" to 501000000, "$1.2B" to 1200000000 Status enum mapping for both reports Automated 12-point quality gate post-ingest Full REST API with OpenAPI/Swagger spec Core endpoints: GET /hardware, GET /hardware/:vendor/:model/history, GET /hardware/delta GET /developments, GET /developments/:project_name/history, GET /developments/delta GET /reports, GET /reports/:id/quality, GET /sources, POST /ingest Done when: Swagger spec published and all endpoints return correctly typed, paginated data. What comes next — M3 overview for context If M1 and M2 are delivered well, M3 covers: -Scheduled node-cron job firing Monday morning, calling the Claude API to generate both reports automatically -Rolling-100 merge algorithm for Global DC Development — this is the technically hard piece. -Each week: new entries upsert on project_name, ranks reassign across 100 entries, near-duplicates over 80% name similarity flagged for PM review, projects that drop off stored with their final rank PM review gate: GET /diff, GET /preview, PATCH /approve, POST /publish POST /publish pushes the approved report to the platform API — nothing reaches the platform without PM approval M4 and M5 cover benchmarking, over-time trend analysis, and API sign-off. Stack Node.js, TypeScript, SQLite, Redis, AWS ECS You should apply if: You've shipped production Node.js TypeScript backend services You're comfortable designing SQLite schemas from scratch and writing efficient queries You can work from a written spec without hand-holding Available to start within 2 weeks We are NOT looking for: -Laravel or PHP developers — Node.js only -Full-stack developers who want to build UI — backend API only -Agencies — individual developer or small focused team only To apply (please read) 1.Share a similar Node.js backend project you've shipped 2.Your fixed-price quote for M1 and M2 3.How would you approach the rolling-100 merge algorithm described in M3? Specifically: rank reassignment across 100 entries, near-duplicate detection by project name, and tracking projects that drop off week over week. We're not asking you to build it now — we want to understand how you think about it.

  • Less than 30 hrs/week
    Hourly
  • 1-3 months
    Duration
  • Intermediate
    Experience Level
  • $10.00

    -

    $20.00

    Hourly
  • Remote Job
  • Ongoing project
    Project Type
Skills and Expertise
Mandatory skills
API
Node.js
Software Architecture & Design
Activity on this job
  • Proposals:20 to 50
  • Last viewed by client:6 days ago
  • Interviewing:
    5
  • Invites sent:
    6
  • Unanswered invites:
    1
About the client
Member since Jan 11, 2025
  • United Arab Emirates
    Dubai4:19 PM
  • $1.8K total spent
    13 hires, 9 active
  • 52 hours

Explore similar jobs on Upwork

Application InstallationFixed-price‐ Posted 3 weeks ago
Android
Smartphone
Tablet
iPhone
Cin 7 Core and QuickBooks Integration SpecialistFixed-price‐ Posted 2 months ago
Intuit QuickBooks
Accounting
Bookkeeping
Windows Administration

How it works

  • Post a job icon
    Create your free profile
    Highlight your skills and experience, show your portfolio, and set your ideal pay rate.
  • Talent comes to you icon
    Work the way you want
    Apply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
  • Payment simplified icon
    Get paid securely
    From contract to payment, we help you work safely and get paid securely.
Want to get started? Create a profile

About Upwork

  • Rating is 4.9 out of 5.
    4.9/5
    (Average rating of clients by professionals)
  • G2 2021
    #1 freelance platform
  • 49,000+
    Signed contract every week
  • $2.3B
    Freelancers earned on Upwork in 2020

Find the best freelance jobs

Growing your career is as easy as creating a free profile and finding work like this that fits your skills.

Trusted by

  • Microsoft Logo
  • Airbnb Logo
  • Bissell Logo
  • GoDaddy Logo