Senior React Developer - Interactive Video Editor

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

TYPE OF WORK

Full Time

SALARY

Php 150,000

HOURS PER WEEK

40

DATE UPDATED

Jun 7, 2025

JOB OVERVIEW

We are building an innovative, in-browser video editing application that allows users to create and manipulate video scenes with a high degree of interactivity. This is not a simple "add-text-to-video" tool. Our application features a complex scene structure, a command-based architecture, and a dynamic, high-performance canvas-based editor leveraging WebGL and WebAssembly for a fluid user experience.

We believe in empowering our developers with the best tools available and provide fully-paid access to premium AI coding assistants (Cursor, Claude Code, etc.) to accelerate innovation. We are looking for a talented and passionate developer to join our team and help us build the future of online video creation.

Responsibilities:
Develop and maintain new features for our video editing application using React and Next.js.
Write high-performance TypeScript code to interface with our custom WebAssembly-based rendering engine.
Implement and enhance complex user interactions, including drag-and-drop, timeline manipulation, and direct interaction with rendered elements.
Work with our existing scene data structure and command-based architecture to ensure a robust and scalable editing experience.
Collaborate with our team to design and implement new features, and to continuously improve the user experience.
Write clean, efficient, and well-documented code, with a strong emphasis on performance and maintainability.
Troubleshoot and debug complex issues, and provide effective solutions.

Must-Have Skills & Experience:
4+ years of professional experience with React.
Senior level TypeScript
Proven experience building complex, interactive web applications (beyond simple CRUD apps).
Experience interacting with WebAssembly (WASM) modules from JavaScript.
Experience with advanced state management in React, preferably with Zustand.
Demonstrable experience with implementing drag-and-drop functionality.
A portfolio that showcases your work on complex, interactive projects.

Nice-to-Have Skills:
Direct experience with the WebCodecs API for video decoding is a major plus
Experience building browser based "Editor Tools" that involve click-and-drag interactive canvas experiences.
Experience using AI-powered development tools (e.g., Claude Code, Cursor, Windsurf, Cline) to thoughtfully accelerate your workflow.
Experience working in a remote, agile environment.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0011
Controller Execution Time ( Jobseekers / Job )  0.0312
Total Execution Time  0.0372
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,498,368 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-React-Developer-Interactive-Video-Editor-1394706
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0215 seconds)  (Hide)
0.0047   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0023   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1394706
 LIMIT 1 
0.0017   SELECT *
FROM `employers`
WHERE `employer_id` = 818647
 LIMIT 1 
0.0035   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1394706
AND `misc`.`id` IS NULL 
0.0007   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-10-03',ej.date_added) duration_days, DATEDIFF('2026-10-03',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-10-03',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1394706' 
0.0016   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1394706 
0.0009   UPDATE employer_jobs SET hit_counts = '***Jun-07-2025=169***Jun-08-2025=64***Jun-09-2025=29***Jun-10-2025=23***Jun-11-2025=11***Jun-12-2025=6***Jun-13-2025=7***Jun-14-2025=2***Jun-15-2025=4***Jun-16-2025=8***Jun-17-2025=5***Jun-18-2025=3***Jun-19-2025=3***Jun-20-2025=2***Jun-21-2025=2***Jun-22-2025=2***Jun-23-2025=3***Jun-24-2025=1***Jun-25-2025=2***Jun-26-2025=2***Jun-27-2025=3***Jun-28-2025=3***Jun-29-2025=1***Jun-30-2025=2***Jul-01-2025=3***Jul-02-2025=6***Jul-03-2025=5***Jul-04-2025=3***Jul-07-2025=4***Jul-08-2025=5***Jul-09-2025=1***Jul-10-2025=3***Jul-11-2025=1***Jul-12-2025=2***Jul-14-2025=1***Jul-15-2025=2***Jul-16-2025=3***Jul-17-2025=4***Jul-18-2025=2***Jul-19-2025=1***Jul-23-2025=1***Jul-24-2025=3***Jul-28-2025=3***Jul-29-2025=3***Aug-03-2025=1***Aug-04-2025=4***Aug-05-2025=1***Aug-06-2025=1***Aug-07-2025=2***Aug-08-2025=1***Aug-09-2025=1***Aug-10-2025=2***Aug-11-2025=2***Aug-12-2025=3***Aug-13-2025=1***Aug-14-2025=4***Aug-15-2025=2***Aug-17-2025=1***Aug-18-2025=1***Aug-19-2025=5***Aug-20-2025=2***Aug-22-2025=2***Aug-23-2025=1***Aug-25-2025=4***Aug-26-2025=1***Aug-27-2025=1***Aug-28-2025=5***Aug-30-2025=2***Sep-02-2025=4***Sep-03-2025=3***Sep-05-2025=4***Sep-06-2025=1***Sep-08-2025=1***Sep-09-2025=2***Sep-11-2025=1***Sep-12-2025=1***Sep-15-2025=2***Sep-16-2025=2***Sep-18-2025=1***Sep-19-2025=1***Sep-22-2025=1***Sep-23-2025=3***Sep-27-2025=1***Sep-28-2025=1***Oct-03-2025=1***Oct-04-2025=1***Oct-06-2025=1***Oct-09-2025=1***Oct-10-2025=1***Oct-12-2025=1***Oct-13-2025=2***Oct-16-2025=1***Oct-18-2025=3***Oct-21-2025=6***Oct-22-2025=1***Oct-28-2025=1***Nov-10-2025=1***Nov-11-2025=2***Nov-12-2025=1***Nov-14-2025=2***Nov-17-2025=1***Nov-19-2025=5***Nov-20-2025=1***Nov-21-2025=1***Nov-23-2025=1***Nov-25-2025=1***Nov-28-2025=2***Dec-05-2025=1***Dec-08-2025=1***Dec-09-2025=1***Dec-10-2025=2***Dec-11-2025=1***Dec-15-2025=1***Dec-20-2025=1***Dec-24-2025=1***Dec-26-2025=1***Dec-29-2025=1***Dec-30-2025=1***Dec-31-2025=3***Jan-02-2026=2***Jan-03-2026=1***Jan-04-2026=1***Jan-05-2026=1***Jan-06-2026=1***Jan-07-2026=1***Jan-12-2026=2***Jan-13-2026=2***Jan-14-2026=1***Jan-16-2026=1***Jan-20-2026=2***Jan-21-2026=1***Jan-23-2026=1***Jan-25-2026=1***Jan-26-2026=1***Jan-30-2026=1***Feb-02-2026=3***Feb-06-2026=1***Feb-09-2026=1***Feb-10-2026=1***Feb-14-2026=2***Feb-19-2026=2***Feb-24-2026=1***Mar-01-2026=1***Mar-03-2026=1***Mar-04-2026=1***Mar-05-2026=2***Mar-07-2026=1***Mar-10-2026=1***Mar-12-2026=3***Mar-17-2026=1***Mar-19-2026=5***Mar-21-2026=1***Mar-27-2026=1***Mar-29-2026=2***Apr-01-2026=1***Apr-03-2026=1***Apr-05-2026=2***Apr-10-2026=1***Apr-13-2026=1***Apr-14-2026=1***Apr-16-2026=1***Apr-17-2026=1***Apr-18-2026=1***Apr-21-2026=3***Apr-27-2026=1***Apr-29-2026=2***May-02-2026=1***May-03-2026=6***May-04-2026=6***May-05-2026=1***May-07-2026=1***May-08-2026=1***May-09-2026=1***May-11-2026=1***May-16-2026=1***May-20-2026=1***May-23-2026=1***May-25-2026=2***May-27-2026=2***Jun-09-2026=1***Jun-12-2026=2***Jun-13-2026=1***Jun-14-2026=1***Jun-19-2026=1***Jun-29-2026=1***Jun-30-2026=1***Jul-03-2026=1***Jul-04-2026=2***Jul-06-2026=1***Jul-10-2026=1***Jul-14-2026=1***Jul-18-2026=3***Jul-21-2026=1***Jul-23-2026=1***Jul-24-2026=1***Jul-27-2026=1***Jul-30-2026=2***Jul-31-2026=1***Aug-01-2026=3***Aug-02-2026=1***Aug-05-2026=1***Aug-11-2026=2***Aug-14-2026=4***Aug-16-2026=1***Aug-19-2026=1***Aug-20-2026=1***Aug-21-2026=1***Aug-30-2026=1***Sep-12-2026=1***Sep-13-2026=1***Sep-15-2026=1***Sep-21-2026=1***Sep-23-2026=2***Sep-26-2026=2***Sep-30-2026=1***Oct-03-2026=5' WHERE job_id= '1394706'  
0.0006   UPDATE employer_jobs SET monthly_hits = '***Jun-2025=357***Jul-2025=56***Aug-2025=50***Sep-2025=29***Oct-2025=20***Nov-2025=18***Dec-2025=15***Jan-2026=20***Feb-2026=11***Mar-2026=20***Apr-2026=16***May-2026=25***Jun-2026=8***Jul-2026=16***Aug-2026=16***Sep-2026=9***Oct-2026=5' WHERE job_id= '1394706'  
0.0014   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1394706' 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` = 1394706 
0.0015   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '818647'
AND `date_added` >= '2022-06-08' 
0.0004   select * from teasers 
0.0017   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)