Full Stack Engineer

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

TYPE OF WORK

Full Time

WAGE / SALARY

$1000 - $1200

HOURS PER WEEK

40

DATE UPDATED

May 12, 2026

JOB OVERVIEW

Full Stack Engineer
Company: Global Ultrasound Institute (GUSI)
Location: Fully Remote
Type: Full-time
About GUSI
Global Ultrasound Institute is the world's leading platform for Point-of-Care Ultrasound (POCUS) education, having trained 18,000+ clinicians across 124+ countries. We build the tools — ScanHub, Sage AI, and our scan review platform — that help doctors, nurses, and trainees learn ultrasound and bring better care to patients everywhere, including the world's most underserved communities.
The Role
We're hiring a Full Stack Engineer to help build and scale the products clinicians rely on every day: our learning platform, scan archive, AI-assisted scanning tools, and mobile experiences. You'll own features end-to-end across web and mobile, working alongside a small, mission-driven team of engineers, clinicians, and educators.
What You'll Do

Build and maintain backend services in Node.js powering our learning platform, scan management, and AI features
Develop responsive web interfaces in React
Build and ship cross-platform mobile features in Flutter (iOS and Android)
Work with ultrasound imaging data — uploads, storage, playback, annotation, and (where applicable) ML-driven analysis
Collaborate with clinicians and product to translate real clinical workflows into clean, reliable software
Contribute to architecture decisions, code reviews, and engineering standards as we scale

What We're Looking For

4+ years of professional full stack experience
Strong Node.js backend skills (REST APIs, relational/NoSQL databases, cloud services — AWS or GCP)
Solid React experience for production web apps
Production experience with Flutter (or strong cross-platform mobile fundamentals and willingness to ramp quickly)
Comfort working independently in a remote, async environment
Clear written communication

Nice to Have

Experience with medical image processing (DICOM, ultrasound/video frames, image annotation, OpenCV, or similar)
Exposure to ML/AI pipelines, especially around imaging or computer vision
Background in healthcare, medical devices, or HIPAA-regulated environments
Experience with video streaming, large media uploads, or offline-first mobile sync

Why GUSI

Mission that matters — your code directly improves patient care in 60+ countries
Fully remote, with a collaborative, global team
Competitive compensation, health benefits, and PTO
Real ownership and the chance to shape a category-defining POCUS platform

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.0352
Total Execution Time  0.0365
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,505,504 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Full-Stack-Engineer-1645260
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0296 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1645260
 LIMIT 1 
0.0008   SELECT *
FROM `employers`
WHERE `employer_id` = 916300
 LIMIT 1 
0.0215   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` = 1645260
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-19',ej.date_added) duration_daysDATEDIFF('2026-06-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-06-19',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1645260' 
0.0009   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1645260 
0.0007   UPDATE employer_jobs SET hit_counts '***May-12-2026=69***May-13-2026=166***May-14-2026=40***May-15-2026=24***May-16-2026=9***May-17-2026=14***May-18-2026=24***May-19-2026=13***May-20-2026=9***May-21-2026=8***May-22-2026=11***May-23-2026=4***May-24-2026=8***May-25-2026=9***May-26-2026=15***May-27-2026=7***May-28-2026=7***May-29-2026=6***May-30-2026=4***May-31-2026=2***Jun-01-2026=8***Jun-02-2026=15***Jun-03-2026=4***Jun-04-2026=7***Jun-05-2026=3***Jun-06-2026=2***Jun-07-2026=3***Jun-08-2026=2***Jun-09-2026=5***Jun-10-2026=8***Jun-11-2026=3***Jun-12-2026=3***Jun-13-2026=3***Jun-19-2026=2' WHERE job_id'1645260'  
0.0006   UPDATE employer_jobs SET monthly_hits '***May-2026=448***Jun-2026=68' WHERE job_id'1645260'  
0.0016   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1645260' 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` = 1645260 
0.0016   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '916300'
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)