How a Healthcare Startup Migrated From Azure to GCP and Kept Production Running

Episode 12
May 5, 2026 | 32:31

Summary

Jo Hjersman has spent over five years at a healthcare XR startup wearing every hat on the data stack, from research data scientist to Head of Data. In this episode, he walks Saket through how he built and scaled a behavioral analytics platform for mental health care, navigated a full cloud migration from Azure to GCP with critical systems kept online throughout, and keeps the whole system running efficiently on a startup budget.

The conversation gets into the real mechanics: how intent-driven data design changes what you can extract from immersive environments, how to handle schema evolution without breaking downstream consumers, and why the data scientist and ML engineer roles are converging toward an ownership model rather than a specialization model.

Topics Discussed

  • Designing intent-driven data capture in immersive healthcare environments
  • Building a bronze/silver/gold architecture from scratch at a startup
  • Managing schema evolution across multi-device data sources
  • Planning and executing a full Azure-to-GCP cloud migration with minimal downtime
  • Handling HIPAA-adjacent compliance through UUID abstraction at the schema level
  • Why data scientists and ML engineers are converging toward a full-stack ownership model
  • What bootcamps miss about real-world data engineering at scale
  • Evaluating infrastructure trade-offs from both a technical and business cost perspective

Always evaluate trade-offs, and do it holistically. As tools become more specific and more powerful, they come with constraints: more compute means more cost, more quota usage, less flexibility. Every technical choice has a business implication.”

Johannan (Jo) Hjersman
Head of Data at The Commons XR LLC
Transcript

Saket Saurabh

Hello everyone! Thank you for listening in to another episode of Data Innovators and Builders. I’m your host, Saket, and I’m here with Jo, who is Head of Data at Commons XR. Jo, thank you for being with us today.

Jo Hjersman

Thank you for having me.

Saket Saurabh

Let’s start with a little bit about your background. Tell us what Commons XR does.

Jo Hjersman

At its core, Commons XR is a behavioral analytics platform. We work in the mental health space to help primary care physicians and mental health providers deliver better care through screening, diagnosis, and treatment plans. We have an immersive platform using Aria XR, as well as phones, tablets, and other devices, where a user can enter the immersive platform and perform a set of tasks and activities. Mental health providers use these to support treatment plans and screening tests like the PHQ-9. We extract app analytics from that experience and provide insights to support better care and better diagnoses for both the therapist and the patient.

Saket Saurabh

Amazing. Tell us a little bit about your background, Jo, and what you do as Head of Data at Commons XR.

Jo Hjersman

I started as a research data scientist, helping develop insights and research publications to establish results in the field. As a small startup, you wear many hats, so I moved into data engineering, getting pipelines set up, figuring out how to do extraction, transformation, and loading efficiently, and delivering insights not just internally but to our clients. Eventually things shifted more toward the cloud, and I got much more into cloud services. The more I built, the more I realized cost really matters, so I’ve been focused on making sure the whole system runs efficiently and under a tight cost structure.

Saket Saurabh

That’s one of the benefits of being at a startup. You get to build from the ground up and make those architectural decisions. You’re applying a data-driven approach to a healthcare use case. Tell us a little about what kind of data you work with.

Jo Hjersman

We see various inputs from the immersive experience, many different data types that can tell us what people are doing. But what we really try to extract is intent and context. For example, if we have a certain activity with defined tasks, we ensure participants perform those tasks rather than moving freely through the experience. When someone is just free-roaming, it’s hard to determine the context and meaning of the data. When we have clear intent behind what people are doing, that helps us generate more meaningful insights.

Saket Saurabh

Can you give us a concrete example of an activity and the data it captures?

Jo Hjersman

Sure. Let’s say someone has arachnophobia, a fear of spiders. We might have them walk down a hallway filled with spiders as an exposure exercise. The task itself could be as simple as going from point A to point B, but what we capture is how they do it. How long does it take? Where are they looking, down, up, away? Are they just pushing through without engaging at all? The way a participant accomplishes the task is what generates insight. Because the task gives us a defined requirement for behavior, we can assess whether their response falls outside the baseline we’d expect, or outside the aggregate of a control group.

Saket Saurabh

So for a given person and experience, you’re capturing millions of rows of data. You mentioned building the initial pipelines and infrastructure. Where did those pipelines tend to break?

Jo Hjersman

To put it bluntly, one of the biggest challenges, and the biggest source of breakage, is cost. I’ve seen pipelines break at almost every point: where IoT data coalesces into VMs or data collection infrastructure, during the ETL process between databases, and in the delivery of analytics. There are straightforward solutions. You can scale VMs horizontally or vertically, add compute, or distribute with Spark, Hive, and similar tools. But there are many ways to solve each problem, and I have to make sure whatever I choose is sustainable now and in the future. That’s the bigger challenge, ensuring the whole system runs efficiently under a tight cost structure.

More technically, the throughput breakage typically occurred where all services were funneling into one point. We addressed that with horizontal scaling and ensuring there were no hotspots, standard system design principles around distributing load as evenly as possible.

Saket Saurabh

And of course this is healthcare data, which comes with its own compliance requirements. How did that factor into your architecture?

Jo Hjersman

We always built compliance in from the start. Our CEO was deliberate about beginning with abstraction using UUIDs, universally unique identifiers. Because of that, I work with UUIDs in my operations, which gives me the flexibility to work with a wide variety of data while facing less compliance friction, because PII has already been separated into a different system. I have visibility into the schema, but my day-to-day operations deal with UUIDs, not personally identifiable information.

Saket Saurabh

As you add more data signals across mobile, AR, and VR, how do you manage schema evolution?

Jo Hjersman

We do experience some data drift, but I try to ensure that new signals are additive rather than disruptive. We built the schema from the ground up with future versions in mind, because we’re fairly confident that what we’re collecting today, we’ll want to collect tomorrow. New additions should simply mean more columns, or perhaps a separate structure.

That said, there have been major schema evolutions. I went through a significant one when I had to migrate from a more OLTP-oriented structure to a more flexible, layered approach. We use the medallion architecture, bronze, silver, gold. Bronze is raw data, gold is analytics-ready, and silver is everything in between.

Saket Saurabh

And who consumes the gold layer?

Jo Hjersman

The gold layer feeds both our analytics dashboard and our reporting. APIs serve both surfaces. Whether a user is looking at a graph or pulling a report, both are inferencing from the gold layer through an API.

Saket Saurabh

At some point you did a cloud migration from one system to another. That can be extremely complex in a live production environment. How did you plan it, and why did you make the move?

Jo Hjersman

The reason we migrated, in this case from Azure to GCP, was that we were accepted into a startup founders program that gave us a significant influx of cloud credits. That unlocked more runway and, more importantly, the AI capabilities we were trying to leverage.

In terms of execution, there was a lot of planning. First, we identified the most critical systems and figured out how to minimize downtime. Then we mapped all the dependencies across services and environments and determined whether we needed cross-cloud connections. Ideally we avoided those. Where we couldn’t, we used VPC peering and parallel infrastructure. We shifted left wherever possible on critical systems, bringing them over with minimal downtime, and migrated more ancillary services like logging and monitoring afterward.

Once everything was running on the new platform, we let it run for a period before fully decommissioning services on the old platform. Data we no longer needed actively was archived, the kind of thing you might look at once a year just in case, and then we wound down the old environment.

Saket Saurabh

Were there any surprises along the way, good or bad?

Jo Hjersman

It was my first multi-cloud migration, so there were definitely surprises. The biggest one was how differently GCP operates compared to Azure. Azure uses resource groups; GCP is project-based, built from the ground up around that model. That meant managing access differently. Users needed to be added project by project rather than at a group level, which led to more access requests than we anticipated. Services also communicate differently under the project model, with individual service accounts rather than shared resource group identities.

That said, there was a genuine upside: the project-based structure made billing much clearer. You could see exactly what each project was costing you.

Another surprise was licensing. In Azure, we were using MySQL and our credits covered the license cost. In GCP, there was a partner licensing cost for MySQL that we hadn’t anticipated, and it became unsustainable. We migrated to PostgreSQL, which has been reliable and cost-effective, though we do miss MySQL as a managed service.

Saket Saurabh

Shifting gears, the traditional roles of data scientist and machine learning engineer seem to be converging. What’s your take?

Jo Hjersman

Data scientist is not a well-defined title. In one company it might mean writing SQL and cleaning data; in another it’s pure ML research; in others it’s a full-stack function. ML engineer is more clearly scoped. I’d also add data engineer to this conversation, because if you look at the data science hierarchy of needs, the AI and ML modeling sits at the very top, maybe 5 to 10 percent of a data scientist’s time. The bulk of the work is collection, wrangling, and exploration, which is closer to what engineers do.

The realization is that since data scientists have to do this work anyway, it makes sense for them to own more of the data stack alongside the modeling. A lot of data scientists work in notebooks for experimentation, but that work can end up sitting unused. The convergence is partly about closing the gap between research and business value. ML engineers who deploy models and measure them in production generate visible, real-time business value. The pressure is for data scientists to move closer to that.

Saket Saurabh

How is that convergence changing hiring?

Jo Hjersman

I’ve always leaned toward the view that data scientists should be more engineering-oriented. That’s what drove me to develop the way I have. I still do the research and experimentation, but every week I’m in the pipelines, the cloud infrastructure, the operations. It just gives you a better sense of the business.

The LLM wave is accelerating this. Engineers who can use AI tools effectively can do far more than before. And that creates pressure to interface more directly with clients, stakeholders, and other departments, to be the person who understands the domain well enough to prompt effectively and evaluate the output critically. Knowing the context is what makes the difference.

Saket Saurabh

What are you seeing in the bootcamp space? Where does hands-on industry experience still diverge from what’s taught?

Jo Hjersman

Bootcamps draw a wide range of people, from those without a bachelor’s degree to those with PhDs in mathematics or biology. What they don’t replicate well is solving real problems under pressure. When a pipeline breaks in production, you have to fix it now, then postmortem it and build a more sustainable solution. That pressure is hard to simulate.

Collaboration dynamics are also different in a real work environment. In a bootcamp, group project blockers are typically manageable, scope, data access, project direction. In production, blockers can cascade in ways you can’t predict, and navigating those requires a different kind of experience.

Scale is another gap. Working with a cleaned CSV from Kaggle is a fundamentally different experience than operating at production scale. And since most bootcamp students aren’t coming from a software engineering background, the systems thinking tends to develop on the job.

Saket Saurabh

How much has AI adoption changed what’s being taught in these programs?

Jo Hjersman

Honestly, the answer I give today will probably change in three to six months. Curricula are adapting, but most programs still lead with the classics, classification models, train/test splits, the foundational data science toolkit. LLMs tend to feel like an add-on rather than a core element, even though at many companies they’re central to daily workflows. Some programs are leaning in hard, but traditional institutions are moving more cautiously. Personally, I’d be more aggressive about integrating it.

Saket Saurabh

Critical thinking seems more important than ever in that environment.

Jo Hjersman

Absolutely. Prompt quality matters, but evaluating output matters more. The real value comes from being a strong subject matter expert who can assess whether what the model returns is accurate, whether it’s tactically correct but missing business nuance, or whether there’s a better path. We’re interfacing with other humans, and that requires creativity, holistic thinking, and genuine domain expertise. Don’t copy and paste and call it done. Validate it. That’s where human value remains, even in a highly automated environment.

Saket Saurabh

Any advice for data leaders out there?

Jo Hjersman

Always evaluate trade-offs, and do it holistically. As tools become more specific and more powerful, they come with constraints: more compute means more cost, more quota usage, less flexibility. Every technical choice has a business implication.

There’s a threshold where product cost increases start to drive customer churn, and you have to hold that in mind alongside the engineering decision. A feature might be technically sound but financially unsustainable. Make sure you’re weighing the business impact, not just solving the tactical problem.

Saket Saurabh

What tools have you come to rely on or want to highlight?

Jo Hjersman

For personal projects I explore broadly, Hugging Face, LangChain, Codex. For our production environment, BigQuery has been a standout for keeping costs down and running efficiently. We also make good use of the model gardens available on cloud platforms. On the AI side, we’ve been experimenting with Gemini, particularly for our reporting layer. Google’s models have been producing nuanced output that we’re actively working to incorporate into our product.

Saket Saurabh

This has been a great conversation covering the data stack, AI convergence, and evolving roles. Thank you so much for joining us, Jo.

Jo Hjersman

Thank you for having me, Saket. Really appreciated it.

Show Full Transcript

Ready to Conquer Data Variety?

Turn data chaos into structured intelligence today!