Senior Full Stack Developer

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

TYPE OF WORK

Full Time

SALARY

130000

HOURS PER WEEK

40

DATE UPDATED

Oct 21, 2025

JOB OVERVIEW

About Aphex
We're the construction planning platform that's replacing outdated spreadsheets with multiplayer tools that delivery teams love. Major contractors like BAM, Balfour Beatty, SKANSKA, Kier, MACE, and Murphy use Aphex to deliver projects ranging from £50 million to multi-billion pound megaprojects.

We're tackling an industry that drives 10% of global GDP yet has seen productivity decline for 20 years. It's time for change.

The role
We're looking for Senior Full Stack Developers based in the Philippines to join our growing team of 20+ developers. You'll bring robust backend skills to help our team, which is mainly working on frontend development. You'll build the systems that help construction teams each day on large projects, such as highways, bridges and hospitals. Your efforts will create infrastructure that millions will rely on in the years to come.
This is a remote-first, hands-on engineering role where you'll tackle complex technical challenges while building products that construction teams genuinely enjoy using. You'll work across our entire stack, from creating delightful user interfaces to architecting robust backend systems that enable real-time collaboration at scale.

What you'll do
- Build and scale backend services that power real-time collaboration for teams on billion-pound projects
- Architect solutions for complex data synchronisation challenges between multiple construction planning systems
- Create elegant frontend experiences using React and TypeScript that make complex workflows feel simple
- Design and implement WebSocket-based features for live updates across distributed construction teams
- Optimise performance for applications handling massive project datasets
- Contribute to our serverless infrastructure and event-driven architecture
- Participate in code reviews and help elevate engineering standards across the team
- Collaborate asynchronously with our global team while predominantly overlapping with PH timezone colleagues


About you

At Aphex, we believe our team should reflect the variety of perspectives in the world we build for. We encourage you to apply even if you don’t meet every listed requirement - your unique perspective might be exactly what we need.

Essential:
- Based in the Philippines with reliable internet connection
- Must have 5+ years experience in software engineering with skills in JavaScript or TypeScript.
- Deep experience with React and modern frontend patterns (we use Redux client-side)
- Proven backend development skills - you've built and scaled production systems
- Experience with real-time applications and WebSocket implementations
- Deep understanding of database design and optimisation (NoSQL experience valued)
- Track record of delivering quality code through peer reviews and testing
- Top-notch written and verbal communication skills for async collaboration

Highly valued:

- Experience with Node.js, serverless architectures, and event-driven systems
- Knowledge of Redis for caching and real-time features
-Awareness of Go or Python for backend services
- Experience with GCP or similar cloud platforms
- CI/CD pipeline expertise
- Flutter or mobile development experience

Not looking for:
- .NET or Java backgrounds (our stack is different)

What we offer

Work & Culture:
- Remote-first role with a thriving Philippines-based engineering team (20+ and growing)
- Flexible working hours with async collaboration
- Join a team that takes ownership, focuses on quality, and genuinely enjoys solving hard problems together

Team Connection:
- 2x Annual Team Offsites - all expenses paid adventures to connect in person:
- May 2025: Our entire Aphex team (40+) spent a week in Da Nang, Vietnam
- October 2025: Our dev team (20+) gathered in Siquijor, Philippines
- Monthly online socials with Airwallex card for team lunches and activities

Time Off & Wellbeing:
- 20 days PTO + Philippine public holidays (all paid)
- 5 days sick leave (plus discretionary additional as needed - we're humans, not machines)
- Comprehensive private healthcare with family plan option
- ?2,000 monthly rice allowance

Tech & Growth:
- Ongoing learning and training opportunities, including a training allowance Aphex covers
- Work on products used by teams building critical infrastructure that millions rely on daily

Ready to transform construction?
At Aphex, we believe our team should reflect the variety of perspectives in the world we build for. We encourage you to apply even if you don't meet every listed requirement - your unique perspective might be exactly what we need.

Application and Interview Process
1. First off we'd love you to apply here: ----------
2. Our second stage interview is a coding challenge in HackerRank focused on TypeScript, React and Docker -> the challenge here isn't to get 100% we use this as a way to better understand how you tackle coding challenges
3. From here, we will conduct 2 rounds of interviews with our hiring managers, team leads and CTO

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0022
Controller Execution Time ( Jobseekers / Job )  0.0143
Total Execution Time  0.0173
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,513,552 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-Full-Stack-Developer-1495529
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0054 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1495529
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 867834
 LIMIT 1 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1495529
AND `misc`.`idIS NULL 
0.0005   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 '1495529' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1495529 
0.0007   UPDATE employer_jobs SET hit_counts '***Oct-21-2025=157***Oct-22-2025=57***Oct-23-2025=35***Oct-24-2025=16***Oct-25-2025=13***Oct-26-2025=3***Oct-27-2025=10***Oct-28-2025=6***Oct-29-2025=4***Oct-30-2025=1***Oct-31-2025=5***Nov-01-2025=1***Nov-02-2025=3***Nov-03-2025=3***Nov-04-2025=7***Nov-05-2025=1***Nov-06-2025=5***Nov-07-2025=1***Nov-08-2025=1***Nov-09-2025=3***Nov-10-2025=3***Nov-11-2025=2***Nov-12-2025=3***Nov-13-2025=1***Nov-14-2025=2***Nov-15-2025=1***Nov-16-2025=4***Nov-17-2025=4***Nov-18-2025=2***Nov-20-2025=5***Nov-22-2025=2***Nov-23-2025=1***Nov-24-2025=3***Nov-25-2025=3***Nov-26-2025=1***Nov-27-2025=1***Nov-28-2025=2***Nov-29-2025=2***Nov-30-2025=1***Dec-01-2025=1***Dec-02-2025=1***Dec-03-2025=1***Dec-06-2025=1***Dec-07-2025=2***Dec-10-2025=1***Dec-11-2025=2***Dec-13-2025=1***Dec-15-2025=2***Dec-16-2025=1***Dec-17-2025=1***Dec-18-2025=1***Dec-20-2025=1***Dec-23-2025=1***Dec-24-2025=1***Dec-30-2025=1***Jan-01-2026=3***Jan-02-2026=4***Jan-06-2026=2***Jan-07-2026=3***Jan-10-2026=1***Jan-11-2026=1***Jan-12-2026=2***Jan-13-2026=5***Jan-15-2026=1***Jan-16-2026=3***Jan-18-2026=1***Jan-21-2026=1***Jan-22-2026=4***Jan-23-2026=1***Jan-24-2026=2***Jan-26-2026=11***Jan-27-2026=1***Jan-28-2026=1***Jan-31-2026=2***Feb-01-2026=1***Feb-02-2026=3***Feb-06-2026=1***Feb-08-2026=3***Feb-09-2026=2***Feb-11-2026=1***Feb-12-2026=2***Feb-13-2026=1***Feb-16-2026=2***Feb-18-2026=2***Feb-19-2026=1***Feb-20-2026=1***Feb-22-2026=5***Feb-23-2026=1***Feb-25-2026=1***Feb-28-2026=2***Mar-03-2026=1***Mar-04-2026=2***Mar-07-2026=2***Mar-08-2026=1***Mar-10-2026=2***Mar-11-2026=1***Mar-12-2026=1***Mar-13-2026=1***Mar-14-2026=3***Mar-17-2026=1***Mar-20-2026=2***Mar-23-2026=1***Mar-25-2026=1***Mar-26-2026=3***Mar-28-2026=1***Mar-29-2026=2***Mar-30-2026=2***Mar-31-2026=5***Apr-02-2026=1***Apr-04-2026=1***Apr-06-2026=1***Apr-08-2026=2***Apr-12-2026=1***Apr-13-2026=3***Apr-17-2026=3***Apr-18-2026=1***Apr-19-2026=2' WHERE job_id'1495529'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Oct-2025=307***Nov-2025=68***Dec-2025=19***Jan-2026=49***Feb-2026=29***Mar-2026=32***Apr-2026=15' WHERE job_id'1495529'  
0.0003   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1495529' 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` = 1495529 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '867834'
AND `date_added` >= '2022-06-08' 
0.0007   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)