Building Healthcare Software as a Pharmacist
I watched a TED Conferences in 2013 when I was a PGY-1 Pharmacy Resident at Sarasota Memorial Health Care System about how innovation typically happens at the intersection of very different things. Some may refer to this idea as "orthogonal thinking". Nevertheless, it's always been on the back of my mind over the years as I've continually found benefit in learning about things outside of my general sphere of pharmacy.
Given that I've been diving deeper into the technical weeds of software development, I wanted to share a bit of my experience thus far on how it has been going. In case you didn't want to read the article, the tl;dr is simply: I absolutely love applying my domain expertise in building healthcare software.
Context
Before I dive straight in, I should probably provide a bit of context. Especially for those of you who don't know who I am and somehow stumbled upon this blog. Quick summary:
I was trained at University of Florida as a pharmacist
Majority of my career experience (2015-2022) has been with Mayo Clinic as an informatics pharmacist configuring our Epic electronic health record (EHR)
I transitioned into a more technical role as a healthcare data architect at Verily in April 2022. This is also where I've learned the bulk of my technical skills and how to "build things" (the focus of this article).
Through that summary, I hope you took away two things:
I'm a pharmacist, first and foremost, and
I learned most of my technical skills in the last 2 years
Abysmal progress
Before I joined Verily in April 2022, I already knew I wanted to improve my technical skills and had already begun learning SQL (because that's what everyone kept telling me), but momentum was difficult because I didn't have a clear goal aside from:
I should improve my technical skills so I'm more competitive in the job market.
I'll expand on this later.
I had also taken a few Coursera courses on R a year or two prior, but it was quite insignificant. I struggled a lot - which, I attribute to being unclear on my goals again. I also attempted some courses on Python as well, but never got passed the "Hello World". Embarrassingly.
Jumping in
The goals became a bit clearer once I got started at Verily: learn SQL and Fast Healthcare Interoperability Resources (FHIR). I wanted to contribute as soon as possible so I jumped right into immersing myself in any resource I could get my hands on. Not literally - we're all digital nowadays. In the first 3 months, this included:
Health Level Seven International's HL7 FHIR Fundamentals Course
IBM's Data Science Fundamentals with Python and SQL Specialization
The two that helped the most were the SQL in 10 minutes and FHIR Fundamentals course as I had to use them immediately. Applying knowledge certainly helps make things sink in. Though, I can't say I was actually in the mindset of "building things" yet. I still had a lot to learn.
The Data Science Firehose
That all changed in September 2022 when I enrolled for my first Biomedical Informatics course at Stanford University School of Medicine: Data Science for Medicine. I won't elaborate too much on it here since I've written a blog article about it and even have a video, but this is where things began to click because:
Learning was at such an accelerated and difficult pace because I was not prepared/had a strong enough technical background.
I learned to build, from scratch, simple machine learning algorithms like gradient-boosted trees (GBT) or lasso to predict which patients are likely to be septic.
My learning continued through the next two classes: Modeling Biomedical Systems and Computational Methods for Biomedical Image Analysis and Interpretation where I built some cool projects that gave me a lot of confidence in "building things". Some examples below:
Pharmacogenomics clinical decision support tool using CPIC's API
3d reconstruction of the left ventricle using 2d images to predict ejection fraction
Classification of Breast Cancer Tumors using Convolutional Neural Networks
Of course, nothing I built was even remotely close to production-grade, but it did make me extremely curious about how to take it to the next level.
Learn, tinker, fail
Although I rarely had time to do anything else besides taking those Stanford University School of Medicine courses 2022-2023, I did start binging books, YouTube videos, and Coursera courses on anything and everything about computer science, artificial intelligence, data engineering, and software development. Just to name a few that I enjoyed:
Let's build GPT: from scratch, in code, spelled out by Andrej Karpathy (amongst all his interviews and build from scratch videos)
Do we still need data classes by ArjanCodes (amongst all his other videos on software design patterns)
Deploy ML models with FastAPI, Docker, and Heroku by AssemblyAI
Massachusetts Institute of Technology's 6.S191 Deep Learning Series
Stanford University School of Engineering's CS231N Deep Learning Series
...amongst many more.
Through each of these, I usually went through a constant cycle that I still go through now: learn something, tinker with it in code, fail - rinse and repeat. Through the process, I've created some fun and interesting projects that I'll list below:
Extracting my own health data from my Apple iphone by building my first iOS app on Swift
Behavior-driven development (BDD) using Behave-Gherkin + deploying CI/CD pipelines using GitHub actions.
PubMedAI - a retrieval-augmented generation (RAG) LLM that is grounded on PubMed to answer questions
Structured product labeling (SPL) extraction using openFDA's drug APIs
To-do app, my first full-stack web app deployed on Google's App Engine
FHIR Terminology Server for validating LOINC codes (not public)
LLM summarization of clinical practice guidelines using Google's Gemini 1.5 Pro (not public)
Device integration in FHIR using openFDA's APIs and Google's FHIR store/healthcare API (not public)
Enjoy the journey
Through my learn, tinker, and fail cycle, I've come to enjoy the journey. A lot.
To tie it back to the beginning, I think I rationalize this to the fact that with each resource I consume or every tiny prototype I build, I see so many opportunities to build better software applications. Software applications that can make a meaningful impact in solving some of our most complex healthcare problems today. Of course, the impact is larger when "I can cast a stone across the waters to create many ripples" - Mother Teresa. That's where OpenClinTech comes in and why I share so much about these things on social media (e.g. LinkedIn, YouTube). Everything I learn will be curated onto that platform (i.e. OpenClinTech) and distributed on free, public YouTube videos to democratize education.
If you like what I do and want to support, please, just simply like, share, and comment on my posts :).