Jennifer Nguyen: Bio
Immunology researcher with 10+ years in pharmaceutical and academic R&D, building AI and research tools since 2024.
I'm Jennifer, an immunology researcher who got curious about building software. I spent more than ten years in pharmaceutical and academic research, including Vaccines and Oncology R&D at Pfizer. Since 2024, I've been building software and learning as I go. You can find my academic work on ORCID and my software projects on GitHub.
Naturally, I did it backwards
I started coding with AI before I had much programming experience—or much of the vocabulary for software engineering, neural networks, or LLMs. Then I realized I could use these things to learn almost anything, which obviously sent me down a rabbit hole.
My first coding project started because I noticed the screen-mirroring indicator on my MacBook and wanted to know what my computer was doing. That led me into launch agents, observability, and telemetry.
Then I got curious about differences between models. How do they respond to emotional tone? Could I describe that tone by looking at several markers at once? That's basically how I think about spectral cytometry in immunology, where patterns across many measurements help you distinguish cell populations and phenotypes.
What is Bootwitch?
In August 2025, I built Bootwitch, my first big CLI project. I wanted it to:
- save me the ten seconds it takes to copy a project template by spending considerably longer automating it;
- finally organize my scripts;
- work no matter what folder I started in or where I moved things later; and
- teach me software engineering through projects I actually wanted to build.
I learned that relative paths are why scripts mysteriously stop working when you move them, you can make a wrapper for basically anything, most packages belong inside the project instead of installed globally, and Bash takes typos personally.
I also discovered that I will spend an unreasonable amount of time automating a tiny repeated task. The upside is that I see systems everywhere.
The order matters more than the list. Observability came first, in July 2025, then Bootwitch that August, then an evaluation write-up in November. The pace changed in February 2026: a memory garden, a stretch of local API calls that taught me more by failing than the successes did, a chat interface wired to GitHub, the Cloudflare workspace, and the first version of the multi-provider router — all in the same month. Attractor followed in March, the plate analyzer in May. Since then the work has gone deeper rather than wider. The router became a multi-provider evaluation harness in August 2026; Bootwitch Doctor and this site both went up in September. Each project existed because the last one annoyed me. Together, they cover a surprising amount of what goes into an LLM application: interfaces, routing, memory, evaluation, and observability.
That is also why so few of these have an end date. Nearly everything I build has a second life: the user-facing version ships, and then it becomes the instrument. A router for a Discord reading room turns into an evaluation harness. A portfolio assistant grows an opt-in loop for rating its own answers. The product and the measurement are usually the same codebase a few months apart, which is the part I find most interesting and the reason the dates overlap.
How I build
LLMs remind me of immunology, except the feedback loop is much faster. In the lab, an experiment can take months. With LLMs, I can try an idea, see what happens, and build on it in days or weeks. As someone who once spent almost every day in the lab for nearly a year, that feels like a dream.
AI writes the code. Claude and ChatGPT are where I think a problem through or learn something I don't know yet; Claude Code and Codex do the implementation; Grok and Gemini show up when I want a second read, or when comparing models is the work itself. I'm specific about this because it is the interesting part: eighteen months ago I had no programming background and had never used an AI model. I decide what the pieces should do, what order to build them in, how they fit together, and what to check when something goes sideways. I bring the same habits I used in the lab: design the experiment, test the system, follow the evidence, and keep digging when the result is weird.
This website shares a curated selection of that work. The project pages cover what I made, the decisions behind it, and the gotchas along the way. You can find source code for several of the projects on GitHub.
My scientific work includes immune checkpoints, mucosal immunity, inflammation, and tumor signaling. At Pfizer, I worked on preclinical oncology programs involving oncolytic viruses and a treatment designed to induce tertiary lymphoid structures. Across my research career, I contributed to three programs that made it to clinical trials, which still feels kind of incredible. Browse selected publications.
The first version of this site came together in about three days. I get excited about new projects and ship fast. Enjoy the website, and feel free to reach out!