MD Abdul Jabbar Adnan

AI and software engineerMelbourne, Australia

PulseNote in daily clinical use

I build software for places it never reached.

Role
Founder and lead engineer of PulseNote, a patient owned health record, and Pulse AI, its clinical assistant.
Live at
A paediatric haematology and oncology ward, Bangladesh Medical University.
PulseNote
In daily clinical use
Onco Scanner
In validation at BMU
Travista OS
Runs a business end to end

See the workEmail me

Pulse AISample data
Rania K.P100414yFBed 3
Summarise the last few visits
Pulse AI09:12
◆SummaryHide ▾

Rania K., 4 years 2 months, female, blood group O+, PIN P10041.

Admission status: current inpatient. Unit: Haematology / Oncology, Bed 3.

Overview of history: most recent documented phase is induction, cycle 3, recorded 12 Apr. Diagnosis of lymphoma was confirmed 8 Feb. First recorded visit is 2 Mar; most recent visit is 12 Apr. Four visits are documented, with haemoglobin, platelets and neutrophils all trending down over the final six days.

Summary· last 4 visits
  1. Cycle 3 start2 Mar

    Chemotherapy cycle 3 commenced. Counts stable, afebrile, weight on track.

  2. Routine review22 Mar

    Mild weight loss, WAZ −1.3. Protocol continued, no new symptoms.

  3. Pre-cycle bloods9 Apr

    Hb and platelets drifting down, ANC 1.1. Flagged for close follow-up.

  4. Admitted febrile12 Apr

    Fever 38.7 °C, pancytopenia. Empirical antibiotics and G-CSF started.

Any red flags this admission?
Pulse AI09:12

Haemoglobin and the neutrophil count have both fallen this week, and both are now below the ward's critical thresholds.

CRITICAL

Hb 6.4 g/dL on 12 Apr, below the ward's critical threshold. Severe anaemia.

below the critical thresholdward critical values
Hbg/dL
↓ Hb falling 8.1 g/dL to 6.4 g/dL over 6 days(3 results)
6 Apr8.1L
9 Apr7.2L
12 Apr6.4C↓ 1.7 in 6 days
ref 11.5–13.5 g/dL
CRITICAL

ANC 0.4 ×10⁹/L on 12 Apr, below the ward's critical threshold. Febrile neutropenia risk. Derived from WBC and neutrophil percentage, not measured.

below the critical thresholdward critical values
ANCcomputed×10⁹/L
↓ ANC falling 1.1 ×10⁹/L to 0.4 ×10⁹/L over 6 days(3 results)
6 Apr1.1L
9 Apr0.7L
12 Apr0.4C↓ 0.7 in 6 days
ref 1.5–8.5 ×10⁹/L
One value in this answer was not checked against any rule.
  • Temperature38.7 °Crecorded overnight, no ward rule covers this observation
Consider · not a finding

A fever during the neutropenic nadir is usually treated as an emergency until cultures are back. Check that against the unit's own protocol before acting on it.

Is this child clear?
Pulse AI09:12

Nothing in this record supports that.

Nothing was checked.

No result on file was checked against the ward's threshold rules for this answer. Nothing here has been evaluated and cleared.

This is not an all clear.
Ask about Rania…

Pulse AI can make mistakes. Verify clinically critical answers.

Pulse AI on the ward. It answers from the record, or refuses.

Invented sample data
01StackRunning in production

Stack

Languages
  • TypeScript
  • JavaScript
  • SQL
Frontend
  • React
  • Next.js
  • React Native
  • Tailwind
Backend
  • Node
  • Azure Functions
  • REST APIs
  • server actions
  • Prisma
Data
  • Postgres
  • Firestore
  • Supabase
  • transactional writes
  • offline first sync
AI
  • Pulse AI, designed and built
  • retrieval augmented generation
  • longitudinal summarisation
  • document extraction
  • deterministic rule engines
  • citation grounding
  • Azure AI Search
  • LLM hosted in Azure
Cloud and ops
  • Azure
  • AWS
  • GitHub Actions CI/CD
  • gitleaks secret scanning
  • Turborepo
  • Cloudflare
Security
  • role based access control
  • server side authorization
  • hash chained audit
  • granular consent
  • field level encryption
Clinical
  • FHIR R4
  • HL7 v2
  • WHO growth standards and z-scores
  • paediatric dosing
Also worked with
  • Python
  • data analytics and reporting
  • Docker
  • Figma

Everything above the dashed row runs in production. I can open any of it and walk you through it.

1,265GitHub contributions in 2026
02The folder

I did not read about this problem. I carried it.

My family kept our medical history in a paper folder. Every doctor turned it over, then asked us from memory anyway.

Missed

A cardiologist did not know what the endocrinologist had changed.

170million

people carry their history this way, or not at all.

7Bangladesh
41Australia

Doctors per 10,000 people.

67

countries measured. Bangladesh has the shortest average primary care consultation of any.

That is not enough time to read a page, let alone a decade.

World Bank / WHO Global Health Workforce Statistics, 2023. Irving et al., BMJ Open 2017, 67 countries, 28.5 million consultations.

03Why now

I moved to Melbourne to study, and watched the constraint quietly disappear.

  1. 1

    Storage was never the bottleneck. Compression was.

  2. 2

    A model can now read thirty visits and hand back a briefing.

  3. 3

    Document models turn the paper pile into an input.

I built it, and I found out immediately that the hard part is none of the above.

04PulseNoteIn daily clinical use
Where
Paediatric haematology and oncology, Bangladesh Medical University
Web
pulse-note.com
Mobile
Android on Google Play

The hard part is deciding what the software is not allowed to say.

One record per patient, on their phone, readable by any doctor they trust. I founded it and I lead the engineering.

We piloted in the hardest department we could get into. If a record holds there it holds anywhere.

  1. 1

    Open a patient.

  2. 2

    Read down to Pulse AI. Every finding is a value plus a rule.

Morning rounds · Monday
Welcome backDr. AdnanBMU · Paediatric Haematology & Oncology
New1
Continuing2
To discharge0
By stageBy wardBy bed
New1
Continuing2
Ready to discharge0

Nothing flagged for discharge

Invented patients

No real patient data anywhere on this site.

Pulse AI: the model never writes a number.

Pulse AI

Any red flags this admission?

Haemoglobin and the neutrophil count have both fallen this week, and both are now below the ward's critical thresholds.

CRITICAL

Hb 6.4 g/dL on 12 Apr, below the ward's critical threshold. Severe anaemia.

below the critical thresholdward critical values
Hbg/dL
↓ Hb falling 8.1 g/dL to 6.4 g/dL over 6 days(3 results)
6 Apr8.1L
9 Apr7.2L
12 Apr6.4C↓ 1.7 in 6 days
ref 11.5–13.5 g/dL
CRITICAL

ANC 0.4 ×10⁹/L on 12 Apr, below the ward's critical threshold. Febrile neutropenia risk. Derived from WBC and neutrophil percentage, not measured.

below the critical thresholdward critical values
ANCcomputed×10⁹/L
↓ ANC falling 1.1 ×10⁹/L to 0.4 ×10⁹/L over 6 days(3 results)
6 Apr1.1L
9 Apr0.7L
12 Apr0.4C↓ 0.7 in 6 days
ref 1.5–8.5 ×10⁹/L
One value in this answer was not checked against any rule.
  • Temperature38.7 °Crecorded overnight, no ward rule covers this observation
Consider · not a finding

A fever during the neutropenic nadir is usually treated as an emergency until cultures are back. Check that against the unit's own protocol before acting on it.

Server wrote

  1. The value and its date.
  2. The rule that flagged it.
  3. The trend.

Model wrote

  1. The sentences.
  2. One consideration, rejected if it contains a digit.

What never becomes a finding.

  • A value scanned from paper that nobody confirmednot a finding
  • An analyte no rule coversnot a finding

The answer still ends:This is not an all clear.

CostA model call per question. A 30 minute cache makes repeats free.

Dosing is arithmetic, not generation.

The failure I designed against

A language model states a child's chemotherapy dose and nothing checked it.

The price I pay

A drug with incomplete rules is unavailable until someone curates it.

27tests
29curated drug rules
2clinicians to confirm a high alert dose

ScopeBuilt and tested, behind a feature flag not yet switched on for the ward.

The short read.

30past visits in one summary
2search indexes
  • A knowledge base the doctors curate
  • The patient's own record
  • Every statement cites its source.
  • No dose that is not traceable to a retrieved document.

Privacy by design.

One checked doorWeb app, Mobile app, Pulse AI, HL7 v2 in all pass through one door that checks consent, purpose, audit before anything reaches the patient record. There is no other way in.Web appMobile appPulse AIHL7 v2 inno other way inno other way inconsentpurposeauditone checked doorPatient record

I am not going to publish the architecture of a system holding children's medical records.

Consent, three tiers, each the patient's

  • Roles resolved server side.
  • Upstream errors redacted.
  • Access written to a hash chained ledger.

A standard nobody is asking for yet.

5FHIR R4 resources
55tests
HL7 v2inbound
  • Patient
  • Condition
  • Encounter
  • Observation
  • MedicationRequest

A record that cannot leave the system was never really the patient's record.

ScopeServer side API. No clinician facing export screen yet. Not run against an official conformance suite.

Built with
  • TypeScript
  • React
  • Next.js
  • React Native
  • Node
  • Azure Functions
  • Pulse AI: RAG, Azure AI Search, LLM hosted in Azure
  • Firestore
  • FHIR R4
  • HL7 v2
  • GitHub Actions
05Onco ScannerIn validation
Status
In safety, integrity and quality validation
Where
Bangladesh Medical University

The feature I am proudest of is the one I deleted.

A tool that helps frontline doctors catch early signs of cancer in children from a routine blood test.

Built with the head of paediatric haematology and oncology, from that department's own research.

223children in the department's leukaemia study

Some confirmed cases arrived with a blood count that looked unremarkable.

The deleted result

ResultNo concern. This child appears well.REMOVED
Failure

A child with leukaemia goes home reassured by my software.

Price

A well child is referred, and the referral finds nothing.

It flags a case, or it stays silent. It never reassures.

Where an AI generated document disagreed with the department head's instructions, the instructions won.

Onco ScannerLeukemia decision support
Sample data

Pediatric Leukemia Check

Enter a child's CBC to see the level of suspicion and the next step.

Age5 yearsSexMale
High-alert flags
Blasts on film
SeenNot seen
Very high white cell count
YesNo
WBC9.2x10^9/L
Hemoglobin10.4g/dL
Platelets112x10^9/L
Check

Invented sample case. No real patient data.

The rule table and its thresholds are not published here.

Built with
  • TypeScript
  • zero dependency engine package
  • React
  • React Native
  • Vitest
06Travista OSRuns a business end to end
Runs
The family business
Web
travistabd.com
Covers
Accounting, inventory, sales, corporate clients

It was paper there too.

  • Before

    A ledger and a phone call.

  • After

    One scan.

Nobody on the floor is technical. They run it from an Android phone.

I built what they needed, not what I wanted to build.

Authorization

The authorization checkA token edited on the client to say role admin is stopped at verifyRole. The role read from the database passes.token, edited on the clientrole: adminstoppedrole, read from the databaserolepassesverifyRole
about158enforcement points, one verifyRole path

It costs a query. It is worth it.

Goods receipt

  • allcommits
  • nonerolls back
  • halfcannot happen

One database transaction. Stock cannot half happen.

Travista OS · web portal

Select Workspace

Choose a workspace to continue

  • Web Portal ManagementManage website and analytics
  • CRMCustomer relationships, orders, and suppliers
  • POSPoint of sale and transactions
  • InventoryManage inventory and stock levels
  • Access ControlManage users, roles, and locations
Built with
  • TypeScript
  • Turborepo
  • Next.js
  • React Native
  • Postgres
  • Prisma
  • Supabase
  • Cloudflare
  • offline first sync
Also

Two internships during my degree, to show I work well in other people's codebases.

CogniBuild
Full stack engineering
Prompcorp
Data analytics
07The rooms

Same instinct, different room.

I do not build from a desk.

  • The shop

    Travista

  • The ward

    PulseNote

  • The Senate

    A late submission policy

Academic Senate, Swinburne

Body
The university's highest academic body.
Present
Vice Chancellors, Deans, and one student.
Argued
Lighter late penalties and automatic extensions.
Outcome
Some of it changed. It took effect after I graduated.

President, Swinburne Islamic Society

Ran
Budgets, rosters, rooms, and a few hundred people expecting something to work on a Friday.

I argued for students who were not in the room, including the ones who were not there yet.

You go to the room, and you listen before you build.

08Contact

So I try.

If you are working on the same kind of problem, I would like to hear from you.

Based
Melbourne, Victoria
Company
Founder and lead engineer, PulseNote Pty Ltd
Degree
Bachelor of Engineering (Software), Swinburne, completed June 2026
Awards
Academic Merit Scholarship. Swinburne Student Achievement Award.