Web Game Developer for Educational App

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

TYPE OF WORK

Full Time

WAGE / SALARY

$5/hr

HOURS PER WEEK

40

DATE UPDATED

May 25, 2026

JOB OVERVIEW

VocabKing is a vocabulary learning app that helps students build their English vocabulary through structured practice. We're adding a game-based learning layer to make practice more engaging, and we're looking for a part-time web (Phaser) developer to build it with us as an ongoing collaboration.

What you'll do
- Design and build educational mini-games in Phaser.js (TypeScript) that teach and reinforce vocabulary. If you know another framework and can learn Phaser fast, please apply too
- Own the game layer end-to-end: mechanics, UI, animation, asset integration, performance
- Integrate games with our backend via REST API for user progress, word lists, and analytics
- Ship in 2-week cycles, with one polished game module per month as a rough target

Who we're looking for
- 3-5 years professional JavaScript/TypeScript experience
- Shipped at least 2 substantial Phaser.js games (please share playable links)
- Strong 2D game fundamentals: game loops, sprite animation, tweening, collision, state machines
- Comfortable working independently, async, and managing your own time
- Good written English — daily updates will be in writing (Slack or similar), not video calls

Working style
- One 30-min video sync per week with me; rest is async

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.0265
Total Execution Time  0.0279
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,493,264 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Web-Game-Developer-for-Educational-App-1654516
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0212 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0008   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1654516
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 938194
 LIMIT 1 
0.0155   SELECT COUNT(DISTINCT t.id) as cnt
FROM 
`t_thread` `t`
INNER JOIN `t_message` `mON `t`.`id` = `m`.`thread_id`
INNER JOIN `t_message_employer` `eON `m`.`id` = `e`.`message_id`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1654516
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-20',ej.date_added) duration_daysDATEDIFF('2026-06-20',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-06-20',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1654516' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1654516 
0.0006   UPDATE employer_jobs SET hit_counts '***May-25-2026=579***May-26-2026=61***May-27-2026=62***May-28-2026=33***May-29-2026=20***May-30-2026=10***May-31-2026=8***Jun-01-2026=17***Jun-02-2026=7***Jun-03-2026=4***Jun-04-2026=1***Jun-05-2026=8***Jun-06-2026=6***Jun-07-2026=5***Jun-08-2026=3***Jun-09-2026=3***Jun-10-2026=1***Jun-11-2026=3***Jun-12-2026=7***Jun-13-2026=2***Jun-14-2026=6***Jun-15-2026=2***Jun-16-2026=4***Jun-17-2026=7***Jun-18-2026=3***Jun-19-2026=3***Jun-20-2026=1' WHERE job_id'1654516'  
0.0006   UPDATE employer_jobs SET monthly_hits '***May-2026=773***Jun-2026=93' WHERE job_id'1654516'  
0.0013   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1654516' AND status LIKE 'sent%' ORDER BY id DESC  
0.0002   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1654516 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '938194'
AND `date_added` >= '2022-06-08' 
0.0002   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)