ML engineer

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

TYPE OF WORK

Full Time

SALARY

$2000

HOURS PER WEEK

40

DATE UPDATED

Jul 28, 2026

JOB OVERVIEW

About Charm AI

Charm AI makes — a voice-sensing pendant that detects the gap between what someone says and how their voice actually sounds. Built on Pythagorean acoustic physics and the Navarasa framework, it is a state detector not only an emotion labeller. We are a small fast-moving team building at the intersection of emotion labeling, ancient wisdom and measurable science.

About the role

We are looking for a ML engineer to own the full AI stack. Your first and most important responsibility is taking the speech emotion recognition model we have inherited and building it into our proprietary harmonic vocal state engine — a physics-based system that detects vocal state through frequency and acoustic analysis rather than conventional emotion labelling. From there you will own the LLM infrastructure and be the person who keeps all AI systems running, improving, and scaling as the product grows.

This is a hands-on engineering role. You will be working directly with the founder and lead developer. There is no committee, no bureaucracy, and no one else to hand problems to. You need to be someone who owns things end to end.

Responsibilities

Your first workstream is the harmonic vocal state engine. You will take the existing 30-class audio speech emotion recognition model, the dataset, checkpoints, pipeline, and documentation handed over from our previous vendor, and extend it into a physics-based harmonic detection system built on Fourier-derived acoustic analysis and the Navarasa rasa framework. The Hume AI benchmark is no longer available so you will need to design and implement your own validation methodology. Options include Gemini's emotion labelling API as a replacement benchmark, cross-validation against open datasets like IEMOCAP and RAVDESS that are already in our training corpus, and building an internal ground truth evaluation framework. You will own this validation approach from design through to implementation.

Your second workstream is LLM infrastructure. You will deploy and manage a dual-instance vLLM setup on GCP running Llama 3.1 8B on GPU 0 for fast-lane prompts and Qwen 2.5 32B on GPU 1 for reasoning-heavy prompts, on a g2-standard-24 instance. You will own all prompt engineering, output validation, Pydantic schema enforcement, retry logic, and quality monitoring across 42 production prompts. You will handle migrations and scaling without external vendor involvement.

Your ongoing responsibility is model quality. You are the person who catches regressions before users do, designs evaluation pipelines, and continuously improves model performance as real-world pendant audio accumulates.

What we need from you

You need to be comfortable working in the frequency domain — FFT, Fourier analysis, spectral features — and experienced with audio processing libraries like librosa or torchaudio. This is the foundation of the harmonic engine work. Signal processing and acoustic feature extraction is a very important technical skill for this role.

Speech emotion recognition experience is great to have. You should have hands-on experience with audio ML models — wav2vec2, HuBERT, WavLM, or similar — and understand how SER models are trained, evaluated, and fine-tuned.

PyTorch is required. You will be working directly with model checkpoints, training loops, and fine-tuning pipelines.

Model evaluation methodology matters here more than in most roles because our primary external benchmark no longer exists. You need to be someone who can design a rigorous evaluation framework from scratch, whether that means using Gemini as an alternative benchmark, cross-validating against existing open datasets, or building a ground truth labelling pipeline.

Python at a production level is required. Not scripts — production code that other engineers can read, extend, and maintain.

GCP experience is needed for managing the existing infrastructure, storage, and deployment configuration.

vLLM deployment experience is required for the LLM infrastructure workstream.

Strong written English is essential. We are an async-first distributed team and clear written communication is how we stay aligned.

Nice to have

Experience designing or building physics-based audio analysis systems. Familiarity with the Navarasa framework or other classical acoustic or musical theory systems. FastAPI experience for the inference API layer. Prior experience replacing or migrating away from a third-party AI benchmark or provider. Genuine interest in consciousness, sound, acoustic physics, or the intersection of emotions and modern ML.

The hiring test

We do not do whiteboard interviews. We will give you two things and 48 hours. First, the inherited SER model validation report and dataset documentation — we want to see your assessment of where the model stands and how you would approach validation without a Hume benchmark. Second, a Python file from our harmonic engine — we want a one-page technical assessment of the architecture and where you would take it next. Anyone who can do both of these clearly and confidently in 48 hours is the person we are looking for.

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.0132
Total Execution Time  0.0145
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,507,288 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/ML-engineer-1696734
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0082 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1696734
 LIMIT 1 
0.0008   SELECT *
FROM `employers`
WHERE `employer_id` = 959284
 LIMIT 1 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1696734
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-09',ej.date_added) duration_daysDATEDIFF('2026-08-09',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-08-09',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1696734' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1696734 
0.0017   UPDATE employer_jobs SET hit_counts '***Jul-28-2026=299***Jul-29-2026=70***Jul-30-2026=13***Jul-31-2026=9***Aug-01-2026=6***Aug-02-2026=6***Aug-03-2026=7***Aug-04-2026=2***Aug-05-2026=5***Aug-06-2026=3***Aug-08-2026=2***Aug-09-2026=1' WHERE job_id'1696734'  
0.0009   UPDATE employer_jobs SET monthly_hits '***Jul-2026=391***Aug-2026=32' WHERE job_id'1696734'  
0.0011   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1696734' AND status LIKE 'sent%' ORDER BY id DESC  
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1696734 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '959284'
AND `date_added` >= '2022-06-08' 
0.0004   select from teasers 
0.0003   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)