from/prod
← All companies

THE COMPANY INDEX TRACKED BLOG

Doximity

Ideas, decisions, and lessons from the team.

engineering.doximity.com (opens on the source site)LinkedIn X
26Posts tracked
3 weeks agoLatest publication
0.6Posts / month over the last 12 months

Latest writing

20 of 26 posts

Bedside Bench: Expanding Our Commitment to Transparency & Safety (opens on the source site)

In our previous post, we described how Doximity Ask answers clinical questions, and our commitment to safety and oversight as part of building each one of its components. Today we are releasing Bedside Bench, an open benchmark of 500 physician-validated clinical question-answering cases, together with the complete grading rubrics we use as part of our core internal evaluations for this question set. Bedside Bench covers a wide range of clinically specialized evaluation tasks covering both common clinical query scenarios, safety-focused evaluations, as well as areas where large language models…

Read at the source

Migrating Doximity’s iOS Newsfeed to SwiftUI Without Disrupting Users or Development (opens on the source site)

The Newsfeed is one of the most-used features in the Doximity iOS app. It is the first thing many users see when they open the app. For doctors checking in between patients or residents catching up during a break, it has to be fast and efficient. Those expectations defined success for the migration. Feature work had to continue, analytics had to remain reliable, and the experience had to remain familiar to users even as the underlying implementation changed. We approached the migration less like a rewrite and more like a controlled rollout. We moved one section at a time, kept the UIKit and…

Read at the source

From Batch Snapshots to Near-Real-Time Data (opens on the source site)

Change Data Capture (CDC) is often presented as a straightforward pipeline: read a database transaction log, publish each change, and apply those changes to another system. That description is accurate, but it leaves out many of the decisions that determine whether the resulting data can be trusted. At Doximity, we already had a batch pipeline that periodically copied snapshots of application databases into our data warehouse. Those snapshots were reliable, but their freshness was measured in hours. We introduced CDC to make changes available in minutes so downstream transformations and…

Read at the source

Doximity Ask (opens on the source site)

Medical AI has attracted confident claims: perfect scores, no hallucinations, a system that gracefully declines whenever the evidence runs out. But are these dimensions the right way to think about a tool that physicians use to make real-world decisions? For clinical AI, reliability is not just a question of whether an answer is correct. It is also a question of whether a physician can understand where the answer came from, evaluate the supporting evidence, and identify situations where uncertainty remains. How Doximity Ask Answers Clinical Questions Few domains face stakes as high as medical…

Read at the source

Profiling Performance Bottlenecks in Production (opens on the source site)

One of our background jobs was so slow that users assumed it was broken. They would kick it off, wander away, knowing it would take ages to complete. Turns out the job was fine. It was just taking its sweet time. We eventually cut its runtime by about 80%, and the fix was so small it was almost insulting. You could have stared at the code for hours and missed it. A profiler found it in minutes. This post is about how to think about profiling so you reach for it at the right moment, not as a first reflex. Performance is a KPI, Not a Vibe It's easy to treat performance as something you tune…

Read at the source

How We're Thinking About Agentic Systems (opens on the source site)

In the current rush to adopt agentic systems, the most dangerous question isn't "what can we make agentic?" but "where do agents actually help?" At Doximity, we’ve found that moving from a working demo to a production-grade agent requires a shift in focus—from model capability to system design. That framing matters because a working demo and a production system are very different things. The demo proves something can work once. The product has to work repeatedly, with real users, real permissions, real data, and real failure modes. That matters even more in healthcare-oriented products like…

Read at the source

LeadDev StaffPlus 2025: My Top Takeaways (opens on the source site)

As a newly minted Staff Software Engineer at Doximity, I've been looking for ways to maximize my impact on the teams I support. My mandate as a Staff Software Engineer is to solve the kinds of problems that affect every team in my umbrella, not just the one team where I do my own IC work. That's a big change from my previous role as tech lead of a small team. I’ve enjoyed following LeadDev’s content, from blog posts and videos to webinars, so attending a LeadDev conference has been on my bucket list for a while. I got my chance when I learned they were hosting their conference in New York…

Read at the source

Inside Data Engineering at Doximity: Building for Impact (opens on the source site)

IBM defines Data Engineering as "the practice of designing and building systems for the aggregation, storage, and analysis of data at scale, empowering organizations to get insights in real time from large datasets." While this definition generally captures what data engineering is, it blends together distinct specializations that enable scalable transformation of raw data to actionable insights. At Doximity, we break this down into two distinct roles: product-focused data engineers and platform-focused data engineers, each playing a crucial role to fuel our organization with timely, reliable…

Read at the source

The Modern Data Toolbox (opens on the source site)

Matching the Tool to the Task A Quick Recap In a previous article, we focused on the strengths of Large Language Models (LLMs), traditional Machine Learning (ML), and statistical methods and recommended 4 key questions to help you choose the right tool for a data solution. Your Data: Is it structured or unstructured? Bounded or unbounded? Your Goal: Do you need prediction, generation, or inference? Your Data Volume: Are you working with massive datasets or limited samples? Your Need for Transparency: Is deep explainability or strict repeatability a requirement? The key takeaway was that LLMs…

Read at the source

A Smarter Way to Deploy Data Pipelines (opens on the source site)

At Doximity, we have nearly 20 data teams responsible for the development of data pipelines to support product and business intelligence needs. These teams rely on Apache Airflow to orchestrate over 900 active DAGs (fancy word for data pipelines), with dozens of updates deployed daily. However, with the growth of our data platform team, the bottlenecks in our deployment process for data pipelines could no longer be ignored. Deploying new pipelines or updating existing ones required building, publishing, and deploying a new Airflow container image—a process that could take up to 20 minutes. To…

Read at the source

The Art of Data Management (opens on the source site)

The rise of a new title in the data industry, Data Strategist, caught my attention recently. Initially, I was skeptical. "Isn’t this just a fancy term for a Data Manager?" I wondered. However, as I delved deeper, I realized my perspective was heavily influenced by my recent tenure at Doximity. At Doximity, the Data Engineering and Data Analytics Manager roles have always blended technical individual contributor work (often referred to as "IC Work") with responsibilities as people managers and functional leaders in the data organization and product. Prior to Doximity, I rarely had managers who…

Read at the source

Tropical.rb Conference and Rails Girls São Paulo (opens on the source site)

On April 4th and 5th, 2024, Doximity sponsored Tropical.rb, also known as "The Latin America Rails Conference," in São Paulo, Brazil. This event gathered developers from across Latin America and beyond. It served as a dynamic platform for discussing Ruby on Rails, sharing knowledge, and networking among professionals in the field. The Doximity team at Tropical.rb Doximity has utilized Ruby on Rails since its founding, attributing significant success to the framework. The timing of the recent conference coincided with a resurgence in Rails' popularity, marked by new features and increased…

Read at the source

Beyond Accuracy (opens on the source site)

At Doximity, we go to great lengths to ensure the quality of our products aligns with the standards physicians require. Across various industries, Large Language Models (LLMs) have become the backbone of numerous applications, driving advancements in everything from natural language processing to automated content creation. As we continue to develop products that make use of these LLMs, the need for rigorous and comprehensive evaluation of their outputs has never been more critical. Strap in as we explore the process for evaluating our Doximity GPT product, Doximity’s HIPAA-compliant medical…

Read at the source

Scaling with Deeplinks on Android (opens on the source site)

Deeplinking support in Android is relatively straightforward. You declare your deeplinks in the app's manifest, receive the incoming Intent passed in to your Activity and then navigate the user to the associated destination. This pipeline works just fine when you only need to support a handful of deeplinks. What happens though as the number of deeplinks grow? How do you deal with several dozen, or possibly even hundreds, of deeplinks? First Stab at Deeplinks When we first implemented deeplinking in our app, we only had to support 12 different deeplinks. We introduced a DeeplinkRouter class…

Read at the source

Modularizing Rails Monoliths One Bite at a Time (opens on the source site)

As Rails monoliths grow, coupling becomes increasingly difficult to manage. Developers often reach for microservices to help simplify things, but instead find higher complexity. The Modular Monolith approach is a proven, lightweight alternative that offers the benefits of enforced boundaries without being cumbersome. I spoke at the 2023 Rocky Mountain Ruby conference on how teams can use a phased approach to refactoring toward this style using the packwerk gem. At Doximity, we've used this gem and a phased approach to break some of our most critical rails applications into modules that are…

Read at the source

On the Road to Effective Data Analyses (opens on the source site)

In the modern business landscape, the significance of data analysis cannot be overstated. It empowers organizations to uncover insights, make informed decisions, and gain a competitive edge by deciphering the hidden patterns within vast datasets. Data analysis is the cornerstone of strategic innovation and effective decision-making in today's dynamic markets. At Doximity, data is crucial to the success of business operations, playing a key role in every step of the product development cycle. From determining the potential of new features to testing and tracking their performance, data…

Read at the source

Managing State in Vue Applications: The Composable Provider Pattern (opens on the source site)

State management is a fundamental concept of front-end application design, and a critical aspect in building robust Vue applications. As Vue applications grow in complexity, managing state becomes an increasingly challenging task, especially when working with a large organization of engineers spread across various product teams. Fortunately, the Vue and Nuxt ecosystem provides a variety of state management solutions, each with its own trade-offs. In this blog post we will explore the Composable Provider pattern, which handles state management by combining the Vue Composition and…

Read at the source

Building a Note-Taking App in Compose (opens on the source site)

In this case study, we will build a note-taking app that lets the user add, edit and delete notes. It uses Compose for both the view and presentation layers! Note: This is a follow up to Part 1: Simplifying State Management with Compose and assumes the reader is already familiar with Jetpack Compose. The Template I find it useful to start with the model that represents the state of the screen we’re building. It will have a list of notes, with each note containing properties for the text and checkbox: data class NotesUiModel(val notes: ListNote>) : UiModel { data class Note(val text: String,…

Read at the source

Simplifying State Management with Compose (opens on the source site)

The recent release of Doximity’s refreshed physician scheduling tool Amion involved a significant overhaul of the user interface (UI) layer using Jetpack Compose. As part of the development process, we decided to experiment with shifting from ViewModels to utilizing the Compose Runtime for managing screen state. This article explores the motivations behind this approach and demonstrates an overall improvement to the view layer and presentation logic using the patterns developed in Amion 6.0.0. Note: This is part one of a two-part article. In part two, we will build a note-taking app using the…

Read at the source

Doximity Mobile Releases Streamlined with Automation (opens on the source site)

Releasing mobile apps to the store is inherently slower than web updates due to manual process overhead, such as versioning, packaging, and submitting to the App Store for review. While web developers have long enjoyed full buzzword-compliant Continuous Deployment, mobile teams generally use a defined release cadence, typically 2-4 weeks. The DORA metric, which stands for DevOps Research and Assessment, evaluates performance using four key metrics: Deployment Frequency (DF), Lead Time for Changes (LT), Mean Time To Recover (MTTR), and Change Failure Rate (CFR). These metrics are commonly used…

Read at the source

Privacy choices

Reading never requires analytics. These choices last 90 days on this browser.

Essential sign-in and security storage always stays on. Read the privacy notice.