Full-Stack Developer – Membership & Payment Management System

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

TYPE OF WORK

Any

SALARY

tbc

HOURS PER WEEK

1

DATE UPDATED

Sep 1, 2026

JOB OVERVIEW

We are looking for an experienced Full-Stack Developer to build a web-based membership and payment management system for a UK business.

The system will include an internal staff dashboard, membership management, recurring payments, payment status tracking, visit/session logging, and importing data from an existing system.

Skills Required
Strong full-stack development experience
Node.js / TypeScript or Python
PostgreSQL / Supabase or similar
REST API development
GoCardless API integration
Payment webhooks
Third-party API integrations
CSV import/data migration
Authentication and user permissions
Modern JavaScript frontend development
Deployment and production hosting
Git/GitHub

Experience developing membership, subscription, payment or admin dashboard systems is highly desirable.

We already have a prototype/plan for the system and are looking for someone who can take the requirements and develop a reliable production application. The backend will need to receive payment webhooks, provide an API to the dashboard and handle data imports.

To apply, please send:

Examples of similar systems you have developed
Your experience with GoCardless or other payment APIs
Your preferred development stack
Your availability
Your hourly/project rate

Please start your application with “MEMBERSHIP SYSTEM” so we know you have read the full job description.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0204
Total Execution Time  0.0218
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,487,112 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Full-Stack-Developer-Membership-Payment-Management-System-1721503
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0146 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0009   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1721503
 LIMIT 1 
0.0009   SELECT *
FROM `employers`
WHERE `employer_id` = 742659
 LIMIT 1 
0.0022   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1721503
AND `misc`.`id` IS NULL 
0.0005   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-09-27',ej.date_added) duration_days, DATEDIFF('2026-09-27',e.rebill_date) duration_rebill, ej.*, e.deactivate FROM employers e, employer_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-09-27',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1721503' 
0.0007   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1721503 
0.0008   UPDATE employer_jobs SET hit_counts = '***Sep-01-2026=532***Sep-02-2026=286***Sep-03-2026=143***Sep-04-2026=95***Sep-05-2026=26***Sep-06-2026=47***Sep-07-2026=39***Sep-08-2026=44***Sep-09-2026=35***Sep-10-2026=23***Sep-11-2026=11***Sep-12-2026=4***Sep-13-2026=10***Sep-14-2026=6***Sep-15-2026=18***Sep-16-2026=23***Sep-17-2026=34***Sep-18-2026=16***Sep-19-2026=12***Sep-20-2026=12***Sep-21-2026=9***Sep-22-2026=7***Sep-23-2026=6***Sep-24-2026=9***Sep-25-2026=5***Sep-26-2026=6***Sep-27-2026=1' WHERE job_id= '1721503'  
0.0007   UPDATE employer_jobs SET monthly_hits = '***Sep-2026=1458' WHERE job_id= '1721503'  
0.0015   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1721503' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1721503 
0.0052   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '742659'
AND `date_added` >= '2022-06-08' 
0.0003   select * from teasers 
0.0003   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)