<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Inna Campo</title>
    <description>The latest articles on DEV Community by Inna Campo (@innacampo).</description>
    <link>https://dev.to/innacampo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3644416%2Fb07333f0-159b-4545-a5b9-8b51cfe0d6f4.jpg</url>
      <title>DEV Community: Inna Campo</title>
      <link>https://dev.to/innacampo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/innacampo"/>
    <language>en</language>
    <item>
      <title>When Doctors Are Too Tired to Think Slow: Building CLARA with Gemini 3.1 Pro</title>
      <dc:creator>Inna Campo</dc:creator>
      <pubDate>Fri, 27 Feb 2026 15:25:28 +0000</pubDate>
      <link>https://dev.to/innacampo/when-doctors-are-too-tired-to-think-slow-building-clara-with-gemini-3-pro-hpe</link>
      <guid>https://dev.to/innacampo/when-doctors-are-too-tired-to-think-slow-building-clara-with-gemini-3-pro-hpe</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/mlh-built-with-google-gemini-02-25-26"&gt;Built with Google Gemini: Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What I Built with Google Gemini&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Diagnostic error affects &lt;em&gt;12 million Americans annually&lt;/em&gt;. Behind that number are real encounters - patients who leave uncertain, physicians who move to the next room carrying doubt.&lt;/p&gt;

&lt;p&gt;In women's health, this crisis is particularly acute: women are diagnosed on average 4 years later than men. A major factor driving this gap is &lt;em&gt;Diagnostic Shadowing&lt;/em&gt;, a cognitive bias where a patient's physical symptoms are inadvertently misattributed to their psychiatric or chronic history.&lt;/p&gt;

&lt;p&gt;It’s important to understand that this is rarely negligence. It is a breakdown of &lt;em&gt;Dual Process Theory&lt;/em&gt; under pressure. High cognitive load forces burnt-out physicians to rely on System 1 (fast, heuristic thinking) just to keep up, bypassing System 2 (slow, analytical thinking). Necessary mental shortcuts can occasionally become unintended clinical blind spots.&lt;/p&gt;

&lt;p&gt;To help solve this, I built &lt;strong&gt;CLARA (Clinical Logic Assessment &amp;amp; Reasoning Assistant)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;CLARA is a multimodal AI agent powered by Gemini 3.1 Pro &lt;code&gt;gemini-3.1-pro-preview&lt;/code&gt;. She acts as a Cognitive Forcing Strategy - an "External System 2" that supports physicians when cognitive bandwidth is limited.&lt;/p&gt;

&lt;p&gt;Unlike standard AI medical scribes that merely record &lt;em&gt;what&lt;/em&gt; is said, CLARA analyzes the &lt;em&gt;logic&lt;/em&gt; of the encounter. Because Gemini 3.1 Pro is natively multimodal, CLARA can process consented consultation audio directly.&lt;/p&gt;

&lt;p&gt;Designed as a post-encounter safety net, CLARA reviews recorded consultations prior to discharge, identifying high-risk reasoning patterns and generating standardized “Clinical Insights” in JSON format. In doing so, she transforms the subjective experience of “being dismissed” into objective, actionable data, protecting patients while supporting physicians under human constraints.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Demo&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__cloud-run"&gt;
  &lt;iframe height="600px" src="https://clara-144308352836.us-central1.run.app/"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;




&lt;p&gt;Check out the &lt;a href="https://github.com/innacampo/clara" rel="noopener noreferrer"&gt;CLARA Github repository&lt;/a&gt; and &lt;a href="https://clara-144308352836.us-central1.run.app" rel="noopener noreferrer"&gt;live demo&lt;/a&gt;.&lt;br&gt;
Test files can be downloaded &lt;a href="https://github.com/innacampo/clara/tree/main/test_files" rel="noopener noreferrer"&gt;here&lt;/a&gt; or try the Sample Cases. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frisbyc9u3tsgshtre448.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frisbyc9u3tsgshtre448.gif" alt=" CLARA UI: an audio transcript is analyzed and the JSON "&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;What I Learned&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Building CLARA taught me two massive lessons - one technical, and one deeply human.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The Human Element: Empathy in AI Design&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Initially, I named the project the Clinical Logic Assessment &amp;amp; Reasoning &lt;em&gt;Auditor&lt;/em&gt;. I programmed the AI to hunt for "dangerous biases" and output "Audit Flags." I quickly realized that this punitive framing would alienate the very people I was trying to help. Physicians are already under immense strain. I learned to completely rewrite my system prompts to shift the tone from evaluative to collaborative. CLARA is now an &lt;em&gt;Assistant&lt;/em&gt; that looks for unintended clinical blind spots and offers gentle clinical nudges. Designing AI begins with understanding the psychology of the end user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The Technical Element: Securing API Keys&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While prototyping in Google AI Studio, I initially used the generated client-side JavaScript implementation. That approach quickly revealed a production concern: exposing the Gemini API key in the browser.&lt;/p&gt;

&lt;p&gt;To harden the architecture, I introduced a dedicated Node.js/Express backend layer. The frontend now sends analysis requests to my server, which securely manages the API key via environment variables and handles all communication with Gemini. This shift transformed CLARA from a prototype into a securely deployable AI service.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Google Gemini Feedback&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What Worked Well:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gemini 3.1 Pro’s (and earlier Gemini 3 Pro's) native multimodality was transformative for this build. Not having to chain a separate Speech-to-Text model with an LLM significantly simplified the architecture. Furthermore, Gemini's ability to digest complex psychological concepts (like Anchoring Bias and Premature Closure) and apply them to raw conversational dialogue (while strictly adhering to my requested JSON output schema) was flawless.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where I Ran Into Friction:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The primary friction point emerged around production security. Google AI Studio excels at rapid prototyping, and the generated client-side JavaScript is perfect for experimentation. However, moving toward deployment requires architectural adjustments, since client-side implementations expose API keys in the browser. &lt;/p&gt;

&lt;p&gt;It would be powerful to see AI Studio offer a “full-stack” export option (for example, a minimal Node.js backend paired with a frontend scaffold) or include a more explicit production-readiness guide. That small addition could significantly reduce the learning curve for developers transitioning from prototype to secure deployment. This experience reinforced how important it is to think about security architecture as early as the prototyping phase when building AI systems.&lt;/p&gt;

&lt;p&gt;Overall, building with Gemini 3.1 Pro allowed me to address a systemic healthcare issue with tools that did not exist just a few years ago. Next, I’m building SONA for the Gemini Live Agent Challenge, a voice-based simulator designed to strengthen women’s health communication. By allowing users to rehearse how they articulate menopause symptoms, SONA uses AI to help patients communicate with clarity and confidence before they ever step into the clinic.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;P.S. Deep Dive: System Architecture &amp;amp; Technical Implementation&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To ensure clinical data was handled securely and efficiently, I built CLARA using a two-tier client-server architecture, containerized via a multi-stage Docker build for deployment on Google Cloud Run.&lt;br&gt;&lt;br&gt;
Here is a breakdown of the technical stack and how the AI integration works under the hood.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;1. The Stack&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React 19, TypeScript, Vite, Tailwind CSS, Recharts
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Node.js 20, Express
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI SDK:&lt;/strong&gt; @google/genai (v1.31.0)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model:&lt;/strong&gt; gemini-3.1-pro-preview&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;2. Client-Server Data Flow &amp;amp; Audio Processing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;One of the core constraints of building with LLMs in the browser is API key security. To solve this, the React SPA never interacts with the Gemini API directly. Instead, I built a thin Express proxy server.&lt;br&gt;&lt;br&gt;
When a doctor uploads a consultation recording, the client-side process looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Validation:&lt;/strong&gt; The React app enforces a 10MB file limit.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encoding:&lt;/strong&gt; The audio file is read via &lt;code&gt;FileReader&lt;/code&gt; and converted into a base64 string directly in the browser using a custom utility function.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transmission:&lt;/strong&gt; The client POSTs the &lt;code&gt;{ type: 'audio', data, mimeType }&lt;/code&gt; payload to the Express server (&lt;code&gt;/api/analyze&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To handle these large base64 strings, I had to configure the Express backend body parser with a 15MB limit (&lt;code&gt;express.json({ limit: '15mb' })&lt;/code&gt;). The server then wraps this base64 data into an &lt;code&gt;inlineData&lt;/code&gt; object and ships it to Gemini.&lt;br&gt;&lt;br&gt;
&lt;em&gt;Note: Because Gemini 3.1 Pro is natively multimodal, we completely bypass the need for a separate Speech-to-Text (STT) transcribing step. The model ingests the audio directly.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Future Optimization: The Gemini File API&lt;/strong&gt; &lt;br&gt;
While the base64 &lt;code&gt;inlineData&lt;/code&gt; approach works perfectly for short consultations, it creates memory overhead and strict payload constraints on the Express server. Moving forward, I plan to migrate this pipeline to use the &lt;strong&gt;Gemini File API&lt;/strong&gt;. Instead of passing raw base64 strings in the JSON body, the backend will upload the raw audio directly to Google's infrastructure (using &lt;code&gt;ai.files.upload&lt;/code&gt;), retrieve a &lt;code&gt;fileUri&lt;/code&gt;, and pass that lightweight reference to the model. This will eliminate payload bottlenecks, reduce server memory pressure, and allow CLARA to seamlessly process much longer, high-fidelity consultation recordings.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;3. Controlling the LLM: Structured Outputs &amp;amp; Temperature&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Extracting consistent, usable data from LLMs can be notoriously brittle. To solve this, I leveraged Gemini's &lt;strong&gt;Structured Output&lt;/strong&gt; capabilities.&lt;br&gt;&lt;br&gt;
I configured the &lt;code&gt;ai.models.generateContent()&lt;/code&gt; call with a &lt;code&gt;responseMimeType: 'application/json'&lt;/code&gt; and passed a strict &lt;code&gt;responseSchema&lt;/code&gt; using the SDK's &lt;code&gt;Type&lt;/code&gt; enum. This forces Gemini to map its analysis into an array of &lt;code&gt;AuditFlag&lt;/code&gt; objects, matching this exact TypeScript interface:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;interface AuditFlag {  
  timestamp: string;  
  bias_type: "Diagnostic Shadowing" | "Premature Closure" | "Anchoring Bias" | "Safe Practice";  
  risk_level: "High" | "Medium" | "Low" | "None";  
  dialogue_trigger: string;  
  clinical_reasoning: string;  
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Because clinical analysis requires high determinism and zero hallucination, I also set the model's &lt;code&gt;temperature&lt;/code&gt; to &lt;code&gt;0.2&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. Advanced Prompt Engineering&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;CLARA_SYSTEM_INSTRUCTION&lt;/code&gt; (an approx. 2,000-token system prompt) is the brain of the application. To prevent false positives, I engineered specific analysis rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Logic over Tone:&lt;/strong&gt; The model is explicitly instructed that a provider can be highly empathetic but still exhibit a clinical blind spot, or be abrupt but logically thorough. It must focus &lt;em&gt;only&lt;/em&gt; on reasoning pathways.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The "Testing Gap":&lt;/strong&gt; The prompt trains the model to flag diagnoses made purely on assumptions rather than objective data (e.g., diagnosing a panic attack in a patient with tachycardia without ordering an EKG).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Constructive Framing:&lt;/strong&gt; The model is commanded to output its &lt;code&gt;clinical_reasoning&lt;/code&gt; as "gentle clinical nudges" rather than accusations, ensuring the resulting UI is supportive rather than punitive.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5. Frontend State Management&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The UI is driven by a finite state machine managed by a single &lt;code&gt;useState&amp;lt;AnalysisState&amp;gt;&lt;/code&gt; hook in the root &lt;code&gt;App.tsx&lt;/code&gt;. Depending on the status (&lt;code&gt;idle&lt;/code&gt;, &lt;code&gt;uploading&lt;/code&gt;, &lt;code&gt;processing&lt;/code&gt;, &lt;code&gt;complete&lt;/code&gt;, or &lt;code&gt;error&lt;/code&gt;), the component conditionally routes the user through the experience. Once the JSON payload returns from the server, Recharts processes the aggregated risk levels to render a donut chart, while a dynamic list of color-coded Audit Cards maps out the clinical insights.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>geminireflections</category>
      <category>gemini</category>
      <category>mentalhealth</category>
    </item>
    <item>
      <title>SELENE: Why Women’s Healthcare AI Must Be Open, Local, and Privacy-First</title>
      <dc:creator>Inna Campo</dc:creator>
      <pubDate>Wed, 25 Feb 2026 15:05:34 +0000</pubDate>
      <link>https://dev.to/innacampo/selene-why-womens-healthcare-ai-must-be-open-local-and-privacy-first-3p3n</link>
      <guid>https://dev.to/innacampo/selene-why-womens-healthcare-ai-must-be-open-local-and-privacy-first-3p3n</guid>
      <description>&lt;p&gt;When it comes to women’s midlife health, particularly the neuroendocrine transition of menopause, there is a massive historical data gap. For decades, the standard of care has been reactive and fragmented. AI has the immense potential to close that gap by processing longitudinal symptom tracking, but the tech industry’s default response has created a new problem: the privacy deadlock.&lt;/p&gt;

&lt;p&gt;We are building SELENE (Scientific Evidence-based Longitudinal Endocrine Neuropsychological Engine) to prove that high-utility medical AI does not require a data center. Currently in its alpha prototype phase, SELENE is a local-first medical intelligence engine. More than just a tool, it is an argument for why healthcare AI must be open source, open code, and fiercely protective of user privacy.&lt;/p&gt;

&lt;p&gt;Here is why we built it, how the architecture works, and why we are calling on the open-source community to help us take it to the next level.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Clinical Gap: The "Invisible" Transition&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Menopause is not a singular medical event but a complex transition affecting the brain, cardiovascular health, and metabolic function over seven to ten years. Yet, clinical guidelines are often based on cross-sectional studies that fail to capture this fluctuating reality.&lt;/p&gt;

&lt;p&gt;A woman might experience a constellation of symptoms, for example, disrupted sleep architecture, transient cognitive impairment ("brain fog"), and anxiety that don't align neatly with a 15-minute primary care visit. Because clinicians lack high-fidelity, structured data mapping symptom velocity over time, care often becomes guesswork. Women’s brain health deserves rigorous, longitudinal tracking that validates their lived experiences.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Failure of Cloud-First AI&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To solve this data deficit, the default tech solution is a cloud-centralized tracking app. But in today's digital landscape, the aggregation of intimate reproductive and neurocognitive health data on central servers poses an unacceptable risk. Asking women to trade their privacy to third-party data brokers for health insights is a non-starter.&lt;/p&gt;

&lt;p&gt;When you decouple health intelligence from cloud surveillance, an interesting technical benefit emerges: you completely eliminate the attack vectors associated with transmitting sensitive data, and you don't even have to worry about securing cloud API keys or guarding against middle-man breaches because there are no external API calls. The data never leaves the hardware.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;SELENE: A Neuro-Symbolic, Privacy-First Architecture&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;SELENE runs entirely on the user's device. We utilize the &lt;strong&gt;MedGemma 1.5 (4b)&lt;/strong&gt; variant, optimized for edge deployment via Ollama, giving it a nuanced understanding of clinical terminology that general models lack.&lt;/p&gt;

&lt;p&gt;The user experience centers on capturing structured data and qualitative notes, which are processed through a strictly local Retrieval Augmented Generation (RAG) pipeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vector Database:&lt;/strong&gt; We utilize ChromaDB running locally to manage semantic search for both a medical knowledge base and the user’s long-term history.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retrieval &amp;amp; Synthesis:&lt;/strong&gt; SELENE consults a locally stored, vector-embedded library of peer-reviewed research and endocrine protocols, synthesizing the user's logs with retrieved medical literature.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Knowledge Patches:&lt;/strong&gt; To keep the AI current without exposing user data, we use a one-way update mechanism. The system pulls vector chunks of new research &lt;em&gt;Server → Device&lt;/em&gt;. No user queries or chat history ever flow &lt;em&gt;Device → Server&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why Open Code is Non-Negotiable&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Women's health has suffered for decades under opaque medical paradigms. AI cannot afford to replicate that with "black box" proprietary algorithms. We need open source and open code for three critical reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Audibility of Safety Guardrails:&lt;/strong&gt; LLMs are probabilistic, but patient safety must be deterministic. By making the code open, the community can verify our safety layers. For example, SELENE uses a deterministic math layer to analyze symptom velocity. If it detects a red flag (e.g., rapid deterioration in sleep combined with severe headaches), it forces the LLM to output a hard-coded referral warning.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mitigating Bias:&lt;/strong&gt; Proprietary models hide their training biases. Open weights like MedGemma allow researchers and clinicians to look under the hood and ensure the model isn't perpetuating gender-based medical biases.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verifiable Trust:&lt;/strong&gt; Open code is the ultimate proof that an application isn't quietly exfiltrating sensitive data in the background.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Call for Collaboration: Join the Alpha&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;SELENE is currently an alpha-first prototype. It proves the concept that we can build robust, locally-run, neuro-symbolic AI for midlife women's health. But to push this forward, it takes a village.&lt;/p&gt;

&lt;p&gt;We are looking for open-source contributors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ML Engineers:&lt;/strong&gt; To help optimize quantized local models and improve our local RAG pipelines.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend Developers:&lt;/strong&gt; To refine our UI and ensure accessibility.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clinical Researchers:&lt;/strong&gt; Passionate about women's brain health, neurocognition, and endocrinology to help curate our Knowledge Patches.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We don't have to accept a future where healthcare AI is a black box that harvests our data. We can build it in the open, keep it local, and ensure it actually serves the people who need it most.&lt;/p&gt;

&lt;p&gt;Check out the &lt;a href="https://github.com/innacampo/selene" rel="noopener noreferrer"&gt;repository&lt;/a&gt; and &lt;a href="https://huggingface.co/spaces/innacampo/selene_demo" rel="noopener noreferrer"&gt;live demo&lt;/a&gt; and let’s build AI that understands women’s health safely, openly, and securely.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>womenshealth</category>
      <category>wecoded</category>
    </item>
    <item>
      <title>Human-in-the-Loop, by Design: Evolving from Algorithms to Care-Centered AI</title>
      <dc:creator>Inna Campo</dc:creator>
      <pubDate>Tue, 20 Jan 2026 23:37:02 +0000</pubDate>
      <link>https://dev.to/innacampo/human-in-the-loop-by-design-evolving-from-algorithms-to-care-centered-ai-3i37</link>
      <guid>https://dev.to/innacampo/human-in-the-loop-by-design-evolving-from-algorithms-to-care-centered-ai-3i37</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/new-year-new-you-google-ai-2025-12-31"&gt;New Year, New You Portfolio Challenge Presented by Google AI&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About Me
&lt;/h2&gt;

&lt;p&gt;Hello! I am Inna Campo, a Bioinformatics AI Scientist dedicated to building human-in-the-loop AI systems that prioritize clinical logic, safety, and gender equity in healthcare.&lt;br&gt;&lt;br&gt;
My career has been an evolution: from optimizing distributed algorithms for supercomputers during my PhD, to tracking viral outbreaks at the CDC with the GHOST platform, and scaling predictive modeling for millions of users at IBM.   Today, as Principal Scientist at HARMONI Lab, I lead an independent initiative to develop multi-agent AI ecosystems and RAG pipelines centered on women's neuroendocrine health.&lt;br&gt;&lt;br&gt;
With this portfolio, I wanted to express that transition with a "bio-digital" aesthetic - something that feels calm, organic and alive, yet rigorously structured.&lt;/p&gt;

&lt;h2&gt;
  
  
  Portfolio
&lt;/h2&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__cloud-run"&gt;
  &lt;iframe height="600px" src="https://portfolio-981825573692.us-central1.run.app"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;


&lt;br&gt;
(Note: If the embed above doesn't load, you can view the live site here: &lt;a href="//innacampo.com"&gt;innacampo.com&lt;/a&gt;)

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;This project is a high-performance, single-page application (SPA) portfolio that bridges the gap between scientific engineering (HPC) and human-centric Agentic AI. It features a "bio-digital" aesthetic built on a performance-first architecture. I primarily 'vibe-coded' this app using AI Studio and Antigravity. It was a truly magical experience; as someone whose expertise lies in bioinformatics and AI safety rather than web design, these tools bridged the gap, allowing me to build a modern, high-performance site from the ground up. I also  used Gemini to navigate the rapidly evolving landscape of modern web development.&lt;br&gt;&lt;br&gt;
Here is the Technical Stack of the end product:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Core Architecture &amp;amp; Frontend
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Framework&lt;/strong&gt;: &lt;a href="https://react.dev/" rel="noopener noreferrer"&gt;React 19&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;  Leverages the latest concurrent rendering features for smooth UI transitions.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Build Tool&lt;/strong&gt;: &lt;a href="https://vitejs.dev/" rel="noopener noreferrer"&gt;Vite 6&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;  Optimized production builds with ultra-fast Hot Module Replacement (HMR).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Language&lt;/strong&gt;: &lt;a href="https://www.typescriptlang.org/" rel="noopener noreferrer"&gt;TypeScript 5.8&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;  End-to-end type safety for data constants, component props, and API interfaces.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Visual &amp;amp; Aesthetic System
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;"Washed Watercolor" Background&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Engine&lt;/strong&gt;: CSS Radial and Linear gradients layered for a diffused, organic look.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Anti-Banding&lt;/strong&gt;: A localized SVG &lt;code&gt;fractalNoise&lt;/code&gt; filter (30% opacity, Soft Light blend) prevents color banding across diverse display types.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Decorative Arc&lt;/strong&gt;: A single, high-precision SVG Bézier curve that serves as a minimal visual anchor.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;"Bio-Digital" DNA Loader&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;  Transparent, full-screen loading sequence with a sharp, clinical aesthetic (no glows).&lt;/li&gt;
&lt;li&gt;  CSS-driven &lt;code&gt;helixMove&lt;/code&gt; animations for zero-jank page entry.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Styling&lt;/strong&gt;: &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;  Integrated via runtime CDN for flexible, instant styling updates.&lt;/li&gt;
&lt;li&gt;  Custom themes for &lt;strong&gt;Slate&lt;/strong&gt;, &lt;strong&gt;Emerald&lt;/strong&gt;, and &lt;strong&gt;Amber&lt;/strong&gt; palettes.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Optimization &amp;amp; Performance
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Particle Connections&lt;/strong&gt;: The &lt;strong&gt;ParticleBackground&lt;/strong&gt; (Neural Synapses) is hard-capped at 150 particles with $O(N^2)$ math optimizations and hardware acceleration hints (&lt;code&gt;will-change: transform&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Lazy Loading&lt;/strong&gt;: Implicit scrolling reveals and optimized asset paths ensure a fast initial payload.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Artificial Intelligence &amp;amp; Backend
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;AI Engine&lt;/strong&gt;: &lt;a href="https://www.npmjs.com/package/@google/genai" rel="noopener noreferrer"&gt;Google GenAI SDK&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Model&lt;/strong&gt;: &lt;code&gt;gemini-3-flash-preview&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;  Powering an context-aware "Inna AI" assistant with specialized personas for HPC and Public Health domains.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Backend&lt;/strong&gt;: &lt;a href="https://expressjs.com/" rel="noopener noreferrer"&gt;Express.js 5&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;  A secure proxy layer for the Gemini API ensures &lt;code&gt;GEMINI_API_KEY&lt;/code&gt; protection.&lt;/li&gt;
&lt;li&gt;  Serves compiled assets and handles client-side routing logic.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnenvwme7oh570wjrwpxs.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnenvwme7oh570wjrwpxs.gif" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Deployment
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Platform&lt;/strong&gt;: &lt;a href="https://cloud.google.com/run" rel="noopener noreferrer"&gt;Google Cloud Run&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Infrastructure&lt;/strong&gt;: Containerized via &lt;strong&gt;Docker&lt;/strong&gt;; deployed as a stateless, auto-scaling service.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Contact Handling&lt;/strong&gt;: Integrated with &lt;strong&gt;Formspree&lt;/strong&gt; for reliable, serverless communication.
pi/chat` endpoint for the AI chatbot.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I'm Most Proud Of
&lt;/h2&gt;

&lt;p&gt;I’m especially proud of the Custom AI Assistant integrated into the site. Far beyond a simple greeting bot, I engineered a specialized persona that can pivot between discussing high-performance computing (HPC) and complex public health domains, powered by a secure Express.js proxy to the Gemini API.&lt;/p&gt;

&lt;p&gt;I am also proud of the development velocity achieved through AI Studio and Antigravity. By treating Gemini as a design and trend consultant, I was able to build a professional-grade SPA that honors my rigorous scientific background while meeting 2026's modern web standards, proving that "vibe-coding" is a legitimate and powerful tool for specialists to cross-pollinate  their expertise into new domains.&lt;/p&gt;

&lt;p&gt;P.S. If you're a fellow engineer, don't forget to check the console for a little surprise!&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>portfolio</category>
      <category>gemini</category>
    </item>
    <item>
      <title>Roasting Turkey and Building Reasoning Engines</title>
      <dc:creator>Inna Campo</dc:creator>
      <pubDate>Thu, 04 Dec 2025 17:43:20 +0000</pubDate>
      <link>https://dev.to/innacampo/roasting-turkey-and-building-reasoning-engines-ge8</link>
      <guid>https://dev.to/innacampo/roasting-turkey-and-building-reasoning-engines-ge8</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-kaggle-ai-agents-2025-11-10"&gt;Google AI Agents Writing Challenge&lt;/a&gt;: Learning Reflections&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Picture this: it’s Thanksgiving week. In the kitchen, I’m basting a turkey. At the kitchen table, I’m helping my 5-year-old draft a high-stakes letter to Santa. And on my laptop? I’m deploying a multi-agent AI system to Google Cloud’s Vertex AI.&lt;/p&gt;

&lt;p&gt;If you saw me at the grocery store, you’d see a mom wrestling a 30-pound dog food bag and managing the holiday chaos. You probably wouldn't guess that I also hold a PhD in Computer Science and an MS in Bioinformatics. Moreover, I just finished the &lt;a href="https://www.kaggle.com/learn-guide/5-day-agents" rel="noopener noreferrer"&gt;5-Day AI Agents Intensive Course with Google and Kaggle&lt;/a&gt;, and I want to share how I deploy clinical-grade reasoning engines and why bringing a real-world perspective to tech is my biggest asset.&lt;/p&gt;

&lt;p&gt;Before I get into the story, here is what I built:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Framework:&lt;/strong&gt; Google Agent Development Kit (ADK)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infrastructure:&lt;/strong&gt; Google Cloud Vertex AI &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language:&lt;/strong&gt; Python&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture:&lt;/strong&gt; Multi-Agent System&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’ve learned something crucial: your best scientific insights often happen outside the lab. I am always expanding my dataset. While staying current with tech trends, entering motherhood gave me something academia alone couldn't: deep, ethnographic exposure to real-world stories. Suddenly embedded in a new community, I found myself listening to countless women navigate the complex, often overlooked realities of postpartum recovery and maternal healthcare.&lt;/p&gt;

&lt;p&gt;I realized these conversations weren't just shared venting, they were field research. I took this course to get the advanced tooling I needed to solve the exact problems I was observing firsthand.&lt;/p&gt;

&lt;p&gt;My capstone project, &lt;strong&gt;LUCIA&lt;/strong&gt; (Language Understanding for Clinical Insight &amp;amp; Analysis), wasn't born out of frustration. It was born out of a specific scientific observation. Researching women's health (specifically postpartum, menopause and longevity), I noticed a pattern: women’s physiological symptoms are often complex and mimic mental health conditions like anxiety. Clinicians are brilliant, but they are time-poor. They often lack the tools to quickly parse these nuanced biological signals. I didn't want to blame the system but I wanted to enrich it. I wanted to build a "scientific second chair" for doctors, patients and researchers.&lt;/p&gt;

&lt;p&gt;Initially, I thought I needed one giant model to do everything through comprehensive prompts. But the course taught me the power of separation of concerns. This was my "Aha!" moment. I architected LUCIA as a dual-engine system because a single agent can't effectively be both an empathetic listener and a cold, hard logician at the same time.&lt;/p&gt;

&lt;p&gt;The system processes the patient's subjective narrative through four distinct stages to create a structured clinical asset.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Ingest &amp;amp; Map: The Digital Scribe&lt;/u&gt;&lt;br&gt;
Agent 1 &lt;code&gt;symptom_mapper&lt;/code&gt;: Acting as a scribe for overloaded clinicians, this agent ingests the user's narrative and translates emotional history into a structured Review of Systems (ROS).&lt;br&gt;
Action: It updates the &lt;code&gt;symptomMapping&lt;/code&gt; state in memory (e.g., mapping "brain fog" to neurological clusters), allowing the doctor to skip data entry and focus on diagnosis.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Audit: Clinical Decision Support&lt;/u&gt;&lt;br&gt;
Agent 2 &lt;code&gt;bias_analyzer&lt;/code&gt; : Acting as a non-judgmental "second opinion," this agent audits the narrative for cognitive traps like premature closure or attribute substitution.&lt;br&gt;
Tool &lt;code&gt;get_bias_implications&lt;/code&gt; : The agent queries the AXIOM Engine, a validated dictionary of bias implications, to ground its insights in external, controlled facts rather than LLM weights. The AXIOM Engine concept aims to repair the foundation of medical knowledge. While simulated for this capstone, the architectural vision is to bridge research gaps by scanning PubMed via MCP to flag systemic bias in literature and collect patient narratives to fill medical "Data Voids" with real-world evidence.&lt;br&gt;
Action: It asynchronously updates the &lt;code&gt;biasAwareness&lt;/code&gt; state, framing potential biases not as errors, but as diagnostic pivot points.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Advocacy: The Patient Prep Engine&lt;/u&gt;&lt;br&gt;
Agent 3 &lt;code&gt;advocacy_generator&lt;/code&gt;: Recognizing that a prepared patient is a partner, this agent transforms anxiety into a structured agenda.&lt;br&gt;
Action: Based on the &lt;code&gt;symptomMapping&lt;/code&gt; and &lt;code&gt;biasAwareness&lt;/code&gt; states, it generates &lt;code&gt;structuredAdvocacy&lt;/code&gt; - a list of differential diagnosis requests (e.g., "Given symptoms X and Y, should we check thyroid function?") - to focus the conversation on clinical investigation.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Structure: The Clinical Handoff&lt;/u&gt;&lt;br&gt;
Agent 4 &lt;code&gt;report_formatter&lt;/code&gt;: This agent compiles the final output into a professional Consultation Brief.&lt;br&gt;
Action: It generates the final report using a standard medical note layout (Subjective -&amp;gt; Assessment -&amp;gt; Plan), ensuring the output is instantly scannable for the provider and positions the patient and doctor on the same side of the table.&lt;/p&gt;

&lt;p&gt;I designed a pipeline that operates in a parallel layer where a &lt;code&gt;symptom_mapper&lt;/code&gt; extracts patient sensations and a &lt;code&gt;bias_analyzer&lt;/code&gt; audits for specific bias markers, followed by a sequential layer where an &lt;code&gt;advocacy_generator&lt;/code&gt; and &lt;code&gt;report_formatter&lt;/code&gt; synthesize these findings into a final Patient Advocacy &amp;amp; Consultation Aid.&lt;/p&gt;

&lt;p&gt;I didn't just want LUCIA to chat, I wanted her to reason. To test this, I ran a series of diverse patient scenarios ranging from standard check-ups to complex, ambiguous presentations of hormonal imbalances. LUCIA successfully flagged potential biases in diagnostic logic, ensuring that physical symptoms weren't prematurely dismissed as psychosomatic. In test cases where a standard symptom checker might suggest "reduce stress," LUCIA was able to suggest specific biomarker panels to rule out physiological root causes.&lt;/p&gt;

&lt;p&gt;Building LUCIA proved to me that the barrier to entry for impactful AI is lower than ever. The tools are intuitive enough that you don't need an enterprise team to build them.&lt;/p&gt;

&lt;p&gt;I’m leaving this course with a renewed fire to pursue my passion for women's mental health research. We now have the tools to ensure science keeps up with the complexity of our biology.&lt;/p&gt;

&lt;p&gt;And honestly, if I can build a clinical-grade reasoning engine while juggling my research, school runs, and writing letters to Santa, just imagine what you can build.&lt;/p&gt;

</description>
      <category>googleaichallenge</category>
      <category>ai</category>
      <category>agents</category>
      <category>devchallenge</category>
    </item>
  </channel>
</rss>
