Backend Developer – Versatile - node.js

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

TYPE OF WORK

Any

SALARY

400

HOURS PER WEEK

40

DATE UPDATED

Jul 12, 2026

JOB OVERVIEW

Looking for: A versatile backend developer to join me on a freelance basis
Location: Remote (Paris / Massy area preferred for occasional sync)
Mission type: Freelance, flexible (starting with a training period, potential for ongoing collaboration)
Start: ASAP

About me

I'm an independent AI consultant and implementer, specialized in the finance sector — private equity, M&A, audit, and corporate finance (CFOs/DAFs). Alongside client-facing AI training and consulting, I build my own internal SaaS products and tools (Next.js-based platforms, automation pipelines, CRM systems) to support my work and offering.

I'm looking for a versatile backend developer to support the build, testing, and maintenance of these tools.

What you'll work on


Building and maintaining backend services and APIs (Node.js / Next.js API routes)
Writing and running tests to catch bugs before they reach production
Working across a small stack of internal tools (SaaS products, automation pipelines, CRM integrations)
Reviewing, debugging, and improving existing code
Collaborating via GitHub (PRs, code review, clean commit history)
Occasionally integrating third-party APIs (enrichment tools, telephony, AI/LLM APIs, etc.)


What we're looking for


Solid backend fundamentals — Node.js required; familiarity with Next.js/React a plus
Comfortable with API design and integration (REST, third-party APIs)
Testing mindset — you write tests, not just code, and you catch edge cases
Confident with Git/GitHub workflows (branches, PRs, code review)
Detail-oriented — this is non-negotiable. We need someone who double-checks their work
Autonomous enough to pick up a scoped task and run with it, but communicates clearly when something's unclear
Nice to have: experience with Firebase, background job queues (BullMQ or similar), or deployment on Railway/Vercel/Azure


What this is NOT
Not a massive greenfield architecture project — most work is on existing, scoped codebases
it will become a full time position etc

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0129
Total Execution Time  0.0143
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,489,384 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Backend-Developer-Versatile-nodejs-1680931
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0079 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0008   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1680931
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 833352
 LIMIT 1 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1680931
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-10',ej.date_added) duration_daysDATEDIFF('2026-08-10',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-08-10',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1680931' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1680931 
0.0016   UPDATE employer_jobs SET hit_counts '***Jul-02-2026=433***Jul-03-2026=63***Jul-04-2026=19***Jul-05-2026=27***Jul-06-2026=30***Jul-07-2026=28***Jul-08-2026=4***Jul-09-2026=15***Jul-10-2026=11***Jul-11-2026=8***Jul-12-2026=714***Jul-13-2026=152***Jul-14-2026=55***Jul-15-2026=22***Jul-16-2026=12***Jul-17-2026=10***Jul-18-2026=8***Jul-19-2026=6***Jul-20-2026=7***Jul-21-2026=10***Jul-22-2026=9***Jul-23-2026=3***Jul-24-2026=10***Jul-25-2026=8***Jul-26-2026=4***Jul-27-2026=5***Jul-28-2026=7***Jul-29-2026=9***Jul-30-2026=11***Jul-31-2026=4***Aug-01-2026=5***Aug-02-2026=3***Aug-03-2026=6***Aug-04-2026=1***Aug-05-2026=6***Aug-06-2026=1***Aug-07-2026=1***Aug-10-2026=1' WHERE job_id'1680931'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Jul-2026=1704***Aug-2026=24' WHERE job_id'1680931'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1680931' 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` = 1680931 
0.0012   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '833352'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)