Senior Full-Stack Developer - TypeScript / Cloudflare Workers (Long Term, Claude Code)

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

TYPE OF WORK

Full Time

SALARY

$1,800 - $2,600 USD per month

HOURS PER WEEK

40

DATE UPDATED

Aug 15, 2026

JOB OVERVIEW

READ THIS FIRST.
Your application must open with these four lines, in this order. Anything that does not gets deleted unread.

Line 1 - A Cloudflare Worker enforces a rate limit by counting requests in a plain JavaScript Map declared at module scope. In production it lets through many times more requests than the limit allows. Why? One or two sentences.

Line 2 - Tell me about a time one customer could see another customer's data, either a bug you shipped or one you found in someone else's code. What the bug was, and what you changed so it could not happen again. If it has never happened to you, say so honestly.

Line 3 - A link to code you actually wrote. GitHub, GitLab, Bitbucket, a gist. Not a portfolio website, not a resume PDF.

Line 4 - How many hours per day you can overlap with Pacific time (Vancouver, UTC-7), and the monthly rate in USD you want.

THE PRODUCT
Alvero is a dental practice management platform I have been building. It is live and used every day by real clinics in Canada - staff portals, patient portals, scheduling, messaging, SMS and voice automation, and an integration with a legacy on-premise dental database. It is not a prototype and it is not a side project. When it breaks, a front desk cannot book a patient.

THE ROLE
I need one engineer to take it from where it is now to finished, and then keep it running. This is not a project with an end date. It is a job.

- Build the remaining features to launch quality
- Fix production issues, including the ones only one clinic ever sees
- Onboard new clinics onto the platform and sort out whatever breaks for them specifically
- Own the unglamorous parts: migrations, deploys, logs, alerts, dependency upgrades
- Write the small tools that stop the same problem coming back a third time

THE STACK
- TypeScript everywhere, strict mode
- React with Vite for the portals, some Next.js
- Cloudflare Workers, D1, KV, Pages, Wrangler
- Supabase and Postgres, row level security, multi tenant
- GitHub Actions for CI and deploys
- Twilio for SMS, Anthropic Claude API for the AI features
- I work on Windows and PowerShell, so scripts have to run there

You do not need every item on that list. You do need to be genuinely strong in TypeScript and SQL, and honest about the rest.

HOW I WORK
I use Claude Code every day and so will you. I am not looking for someone who pastes AI output and hopes. I am looking for someone who reviews it the way they would review a junior developer's pull request, and who can tell when it is confidently wrong. If you have never used an AI coding tool seriously, this is the wrong post for you.

Small changes, pull requests, no direct pushes to main. If you break production you tell me immediately, before I find out from a clinic. I would rather have boring code that works than clever code I get woken up for.

REQUIREMENTS
- 4 or more years writing production software, not tutorials and not agency landing pages
- TypeScript and SQL you can defend in a live conversation, screen shared
- You have carried something you built into production and supported it afterwards
- Full time, long term. I am hiring one person for years, not for one sprint.
- Written English good enough that your bug reports need no editing from me
- Reliable power and internet, and a machine that can actually run a dev environment

NICE TO HAVE
- Cloudflare Workers or another edge runtime
- Multi tenant SaaS, where one bad query leaks another tenant's data
- Healthcare, dental, or anything else with real privacy rules
- Integrating a legacy database nobody documented - ODBC, raw SQL, vendor APIs

HEALTH DATA
This platform handles patient information under Canadian privacy law. You will sign a confidentiality agreement. Development is done against synthetic data, never real patient records. If handling health information carefully sounds like an annoyance rather than part of the job, please do not apply.

PAY
1,800 to 2,600 USD per month, full time, depending on what you can actually do. Paid monthly, on time, reviewed at six months.

HOW HIRING WORKS
Applications that follow the four lines get read. Everything else is deleted. Shortlisted people get a short technical exercise, about 45 minutes, on a self contained problem - a piece of TypeScript to fix and a SQL question. Then a live screen share where you walk me through your own code.

Do not send me a generic cover letter. I have read hundreds of them.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0121
Total Execution Time  0.0134
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,510,328 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-Full-Stack-Developer-TypeScript-Cloudflare-Workers-Long-Term-Claude-Code-1709867
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0064 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1709867
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 911208
 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` = 1709867
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-19',ej.date_added) duration_daysDATEDIFF('2026-08-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-08-19',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1709867' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1709867 
0.0007   UPDATE employer_jobs SET hit_counts '***Aug-15-2026=430***Aug-16-2026=2***Aug-18-2026=1***Aug-19-2026=1' WHERE job_id'1709867'  
0.0007   UPDATE employer_jobs SET monthly_hits '***Aug-2026=434' WHERE job_id'1709867'  
0.0009   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1709867' 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` = 1709867 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '911208'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0003   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)