Senior C# / .NET Developer (Windows Services + REST API Integration) for Healthcare Booking Platform

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

TYPE OF WORK

Gig

SALARY

1800-2200pm

HOURS PER WEEK

40

DATE UPDATED

Aug 21, 2026

JOB OVERVIEW

TYPE OF EMPLOYMENT
Full Time

JOB DESCRIPTION

IMPORTANT: Start your application with the word BOOKED and answer the three questions at the bottom. Applications that skip either will not be read.

We are an Australian company building an online appointment booking product for healthcare practices. Patients book on a branded web page, the appointment writes directly into the practice's existing practice management software in real time, and a confirmation event (never patient data) is sent to our analytics service. Part of the web layer already exists in production. You will build the integration layer.

What you will build:

A Windows service agent (C# / .NET) that installs on a practice PC, holds an outbound-only connection to our cloud (no inbound ports), auto-updates, and reports health
An adapter to the practice software's local REST/OData API: read availability, create, update and cancel appointments (full API documentation provided after NDA)
Patient matching logic that finds the correct existing record with a confidence threshold and a safe fallback, and never creates duplicates
Idempotency and concurrency handling: a retried request must never create two appointments, and two patients must never take the same slot
A webhook posting confirmed-booking events to our analytics service
Fleet tooling: auto-update pipeline, health monitoring, alerts

Requirements:

Strong C# / .NET including Windows services, not only web APIs
You have shipped software that runs unattended on customers' machines: installers, self-update, and diagnosing faults you cannot reproduce locally
REST and OData integration against third-party APIs you do not control
Queuing, retry and idempotency patterns
Careful work against live production databases you must not corrupt
Good written English and at least 4 hours daily overlap with Sydney time
Nice to have: healthcare, dental or veterinary software integration; Azure

How we will hire:

NDA first, then a small paid trial task, then full-time engagement
Long-term role for the right person
All work is IP-assigned to our company
We work in a code-named brief; real system names are shared after NDA only

Answer these three in your application:

Describe something you built that runs on a customer's machine. How did it update itself, and how did you diagnose a fault you could not reproduce?
A booking API call times out and you do not know whether the appointment was created. What exactly does your design do next?
A returning patient types their name slightly differently from the database record. How does your matching d ---------- , and what happens when it is not confident?

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.0102
Total Execution Time  0.0114
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,500,288 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-C-NET-Developer-Windows-Services-REST-API-Integration-for-Healthcare-Booking-Platform-1713937
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0048 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1713937
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 967319
 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` = 1713937
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-24',ej.date_added) duration_daysDATEDIFF('2026-08-24',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-24',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1713937' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1713937 
0.0007   UPDATE employer_jobs SET hit_counts '***Aug-21-2026=553***Aug-22-2026=78***Aug-24-2026=1' WHERE job_id'1713937'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Aug-2026=631' WHERE job_id'1713937'  
0.0003   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1713937' 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` = 1713937 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '967319'
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)