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.0149
Total Execution Time  0.0168
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,502,984 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.0071 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1394706
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 818647
 LIMIT 1 
0.0013   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1394706
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-19',ej.date_added) duration_daysDATEDIFF('2026-04-19',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-04-19',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1394706' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1394706 
0.0016   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-19-2026=1' 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=11' WHERE job_id'1394706'  
0.0008   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` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1394706 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '818647'
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)