I'm Adnan, a software engineer.
I go where the problem is, solve it, then ship it and keep it running.
Melbourne, Australia.
- PulseNote is in daily clinical use on a children's cancer ward.
- Travista OS runs my family's business end to end.
- Onco Scanner is in safety, integrity and quality validation at Bangladesh Medical University.
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.
- Cycle 3 start2 Mar
Chemotherapy cycle 3 commenced. Counts stable, afebrile, weight on track.
- Routine review22 Mar
Mild weight loss, WAZ −1.3. Protocol continued, no new symptoms.
- Pre-cycle bloods9 Apr
Hb and platelets drifting down, ANC 1.1. Flagged for close follow-up.
- Admitted febrile12 Apr
Fever 38.7 °C, pancytopenia. Empirical antibiotics and G-CSF started.
Haemoglobin and the neutrophil count have both fallen this week, and both are now below the ward's critical thresholds.
Hb 6.4 g/dL on 12 Apr, below the ward's critical threshold. Severe anaemia.
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.
- Temperature38.7 °Crecorded overnight, no ward rule covers this observation
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.
Nothing in this record supports that.
No result on file was checked against the ward's threshold rules for this answer. Nothing here has been evaluated and cleared.
Pulse AI can make mistakes. Verify clinically critical answers.
Stack
What I build with
Everything except the last card runs in production.
Languages
- TypeScript
- JavaScript
- SQL
Frontend
- React
- Next.js
- React Native
- Tailwind
Backend
- Node
- Azure Functions
- REST APIs
- server actions
- Prisma
Data
- Postgres
- Firestore
- Supabase
- offline first sync
AI
- retrieval augmented generation
- longitudinal summarisation
- document extraction
- deterministic rule engines
- citation grounding
- Azure AI Search
- LLM hosted in Azure
Cloud
- Azure
- AWS
- GitHub Actions CI/CD
- gitleaks secret scanning
- Turborepo
- Cloudflare
Clinical
- WHO growth standards and z‑scores
Also worked with
- Python
- Docker
- Figma
- field level encryption
GitHub activity
1,265 contributions in 2026
The problem
My family's medical history lived in a paper folder.
Every doctor turned it over, then asked us from memory anyway.
7 Bangladesh
41 Australia
Of 67 countries measured, Bangladesh has the shortest average primary care consultation.
World Bank / WHO, 2023. Irving et al., BMJ Open 2017.
So I built the folder into a phone.
Work
PulseNote
In daily clinical use at Bangladesh Medical University.
One record per patient, on their phone, readable by any doctor they trust.
On the paediatric haematology and oncology ward, at pulse-note.com and on Google Play.
I founded it and lead the engineering.
Nothing flagged for discharge
Nothing flagged for discharge
Invented patients, no real data.
Then I had to decide what it must never say.
PulseNote / Pulse AI
Pulse AI never writes a number.
Ask a child's record a question. Every statement cites its source.
An answer with nothing flagged still ends: This is not an all clear.
Doses are arithmetic, not generation.
27 tests, 29 curated drug rules, 2 clinicians for a high alert dose. Built and tested, not yet switched on.
One checked door: consent, purpose, audit.
I am not going to publish the architecture.
A record that cannot leave was never the patient's.
5 FHIR R4 resources, 55 tests, HL7 v2 in. No conformance run yet.
The next tool had to know when to say nothing.
Work
Onco Scanner
In safety, integrity and quality validation at Bangladesh Medical University.
Helps frontline doctors catch early signs of cancer in children from a routine blood test.
223 children in the department's leukaemia study. Some confirmed cases arrived with a blood count that looked unremarkable.
The feature I am proudest of is the one I deleted.
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.
Pediatric Leukemia Check
Enter a child's CBC to see the level of suspicion and the next step.
High-alert flagsInvented sample case. No real patient data.
My family's business had a paper folder too.
Work
Travista OS
Runs my family's business at travistabd.com, from an Android phone.
Accounting, inventory, sales and corporate clients.
It was paper, and nobody on the floor is technical.
I built what they needed, not what I wanted to build.
The role comes from the database, never from the token.
About 158 enforcement points, one verifyRole path. It costs a query. It is worth it.
A goods receipt is one transaction.
Stock cannot half happen.
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
Away from a keyboard, it is the same instinct.
Experience
Same instinct, different room.
Academic Senate, Swinburne
The one student among Vice Chancellors and Deans. I argued for lighter late penalties and automatic extensions. Part of it took effect after I graduated.
President, Swinburne Islamic Society
Budgets, rosters, rooms, and a few hundred people expecting it to work on a Friday.
Internships
Full stack engineering at CogniBuild, data analytics at Prompcorp. Both in other people's codebases.
Contact
My family's medical history is still in a folder in a drawer somewhere. The next one will not be paper.
Working on the same kind of problem? I would like to hear from you.