About our PI
Ruey Hu, MD, MPH
cat about.txt
I have enjoyed programming since I was 10.
Now I am a structural interventional cardiologist. I take care of patients and perform interventions for coronary artery disease and valvular heart disease.
Software is something I do alongside medicine, mostly to build educational tools for cardiology.
Software and technical background
What I have picked up along the way
I build software alongside my work in medicine, across everything from older systems languages to the modern web frameworks behind our tools.
Layer 1 of 4
General-Purpose & Systems Programming
Beyond web technologies, I have worked with a variety of programming languages, including C, C++, Java, Swift, Pascal, QBasic, and assembly language. They gave me some exposure to different programming paradigms, from procedural and object-oriented development to lower-level ideas such as memory management. I would not call myself an expert in any of them.
- C
- C++
- Java
- Swift
- Pascal
- QBasic
- Assembly
Layer 2 of 4
Scripting, Automation & Development Tools
I am comfortable enough at the command line to write shell scripts and use text-processing tools such as awk. They help me automate small workflows, manipulate data, and find my way around Unix-like systems.
- Shell scripting
- awk
- Command line
Layer 3 of 4
Scientific Computing, Statistical Analysis & Data-Driven Applications
I use R, Python, MATLAB, and Stata for statistical programming, numerical computing, and data analysis, and I have made interactive, data-driven web applications with Shiny, the R-based framework. They are what I reach for when a question calls for computation, statistical modeling, or data visualization.
- R
- Python
- MATLAB
- Stata
- Shiny
Layer 4 of 4
Web Development & Modern Application Frameworks
Most of our tools are web applications, so this is where I spend the most time: JavaScript, TypeScript, PHP, HTML, and CSS, with libraries and frameworks such as React, Preact, and Next.js. I use Tailwind CSS for responsive layouts, Three.js for interactive 3D graphics, and TSX for component-based interfaces. Vite, Vercel, and Supabase help me build and deploy, and MySQL is the relational database I know. I am sure a professional web developer would do all of this with far more depth and polish.
- JavaScript
- TypeScript
- PHP
- HTML
- CSS
- React
- Preact
- Next.js
- Tailwind CSS
- Three.js
- TSX
- Vite
- Vercel
- Supabase
- MySQL
A modest toolbox
Pick a problem.
I have learned a range of languages and platforms, which helps me see how technologies fit together and choose one that suits the problem in front of me.
I would reach for React, Preact or Next.js for the interface, Tailwind CSS for responsive layout, Vite and Vercel to build and ship it, and Supabase when it needs a database behind it.
Select any tool to see a short sample of the kind of code it involves.
These are short, generic examples of how each one looks, not code from our sites.
Still learning.
My interests sit between older programming practices and the frameworks used to build modern software. I have a foundation in traditional programming, I have picked up the current tools one project at a time, and I am still learning.