Microsoft: UXR for Python & AI

From quick-pulse usability to org-level strategy, I convert noisy signals into decision-grade insights and operating frameworks that mature Microsoft’s developer and AI experiences.

2019-Present

I joined Microsoft in 2019 as a contract UX researcher embedded with Python developers and data scientists in VS Code. From there, I grew my scope and influence steadily — moving from tactical usability work into strategic research that shaped cloud services, AI-powered developer tools, and emerging AI product experiences. What started as weekly usability studies became multi-study research programs that informed cross-org product direction and long-term roadmap decisions.

Each anchor project reflects one of those sustained efforts — multi-phase work tied to a major product investment.

Anchor Projects

  • When AI reshaped the roadmap, I was embedded at the center of it. The UXR team led a research-intensive workshop series with PMs and customers, synthesizing findings into a Customer Capability Model — a staged maturity framework with measurable indicators that gave teams a shared language for understanding where customers were and what they needed to move forward. I supported end-to-end synthesis, building customer cards and codifying patterns, then extended the model myself to include agentic capabilities — validating both additions with customers. The model was adopted across multiple orgs and became a unifying reference point for investment decisions across Copilot, Foundry, AI Toolkit, and intelligent application initiatives, especially during the most turbulent periods of the AI shift.

    My core research ownership was AI Toolkit, which evolved into Foundry Toolkit and became the primary code-first AI development experience in VS Code — reaching significant MAU growth within 18 months before GA. I established near-weekly research studies with a globally distributed team, balancing long-term strategy with emergent usability needs. Early discovery work on AI playgrounds directly informed the toolkit's foundational concepts. As agentic use cases emerged I led a large-scale survey — run in two passes, first mapping existing practices and then incorporating the agentic layer — to understand how developers were actually building with AI, what risks they were navigating, and where to prioritize. I also used AI to generate personalized CCM mappings for participants after they completed the survey, giving customers a model of their own agentic maturity based on their responses. It wasn't polished, but some customers still asked to keep their copies.

    Some of the work that had the furthest reach started with a commissioned report on data science in the age of AI — a study that traveled across teams and organizations and contributed to the investment in a major flagship Foundry feature. That finding sparked a broader IA review of the entire product, surfacing the importance of evaluating not from feature-specific scope but from a holistic look at the experience architecture. I also led an industry prioritization study for solution templates — identifying which industries to target, determining whether templates should be industry-specific or use-case generic, surfacing where ignoring certain industries would mean missing significant opportunity, and recommending use case bundles by industry. That research reached marketing and product leadership and shaped go-to-market and investment strategy. A separate cloud partnership and startup acquisition study influenced organizational strategic direction and was a significant input into executive-level briefings.

    The last thing I want to mention here is infrastructure — because I think it matters. I took ownership of in-product surveys that had been producing misleading signals: a built-in agent was analyzing them without accounting for survey context or customer intent, leading to flawed conclusions. I built an analysis agent using GitHub Copilot CLI from the terminal, leveraging Claude Opus, that gave PMs access to rigorous, context-aware analysis for the first time. I then built a dashboard on top of it so a globally distributed team of 30+ could access findings directly. I also created a skill to automatically surface UX issues where the team already works-GitHub. Survey findings are now referenced weekly and factored into prioritization and backlog decisions — a meaningful shift from data that was previously either inaccessible or misread.

    What I owned:

    • UX research for AI Toolkit and Foundry Toolkit end-to-end, from early discovery through GA

    • Synthesis and extension of the Customer Capability Model, including the agentic capability layer, validated with customers

    • Large-scale agentic development survey with AI-generated personalized model outputs for participants

    • Weekly research cadence with a globally distributed cross-functional team

    • Commissioned DS in the age of AI report, influencing flagship Foundry feature investment

    • Industry prioritization study for solution templates across industries and use case bundles

    • Cloud partnership and startup acquisition study influencing executive strategy

    • Full IA review of Foundry Toolkit experience architecture

    • Design and deployment of an AI-powered survey analysis agent, dashboard, and GitHub UX logging skill

  • The work here started with Data Wrangler. Through generative research I surfaced how genuinely painful data cleaning and preparation was for data scientists working toward analysis or ML scenarios. I worked iteratively with the team through concept testing and evaluative research as the feature took shape from 0 to 1. That same period also produced shipped improvements to history diffing, Gather, and line-by-line debugging across the experiences in VS Code and Azure Notebooks.

    What we learned from Data Wrangler — combined with parallel exploratory research — led to something bigger. Together with a fellow researcher, we built a data science maturity framework that mapped the key factors, friction points, and workflow needs across DS customers. That foundation became the basis for a concept portfolio of 40+ ideas, each grounded in real user problems, that the team then worked to define, test, and prioritize.

    To move those concepts forward efficiently, I led a Concept Value Testing program guided by Kano methodology — helping teams turn abstract ideas into testable artifacts grounded in user scenarios, articulated benefits, and clear limitations. I facilitated ideation workshops with the Python team to generate and shape concepts, then ran weekly sessions with fresh customer participants to test them. That cadence accelerated how quickly teams could move from idea to evidence-based decision. Some concepts shipped, some evolved, some were handed to partner teams, and some were deprioritized — which was equally valuable, because it saved resources and kept the team focused. When the AI and Copilot shift came, this work transitioned naturally into it — the problems, the concepts, and the customer understanding we'd built all had a new lens to work through rather than starting over.

    What I owned:

    • DS research across VS Code, AML, and Azure Notebooks

    • 0-1 research for Data Wrangler from generative problem definition through iterative evaluation

    • Co-creation of a data science maturity framework used to guide concept development and prioritization

    • Design and facilitation of internal ideation workshops generating 40+ testable concepts

    • Leadership of the CVT program guided by Kano methodology and weekly testing cadence

    • Ongoing recruitment infrastructure for fresh participant pools at weekly testing pace

    • Coaching teams from abstract idea to testable artifact to evidence-based decision

  • This work grew directly out of Quick Pulse. The patterns I'd been surfacing pointed to something bigger than any single team owned — developers weren't struggling with VS Code or Azure in isolation, they were struggling with the seam between them. I made the case, and a dedicated Azure E2E team was stood up to pursue it. I led the effort from April 2020 through August 2021, with Python as my primary research focus and Node as a secondary track.

    The problem demanded a range of methods. I ran in-depth interviews, usability studies, digital ethnography, and journey mapping sessions with customers to understand how work actually moved across tools and surfaces. I also ran co-coding UX sessions — bringing two participants in together to work through tasks collaboratively, which surfaced richer disagreement, sharper nuance, and more honest reactions than single-participant sessions alone.

    The cross-org work was the hardest part — and the most important. Influencing experiences adjacent to my core scope meant navigating teams protective of their territory, finding the right people, and making a convincing case for why their customers were part of the same story. That advocacy led to real changes in resource creation and deployment flows across Azure Container Apps, App Service, and connected VS Code extensions. It also led to the E2E adoption framework — a funnel mapping developer adoption stages with the commitment criteria and motivational factors at each stage. I surfaced the need for it and co-designed it with senior leadership to make it applicable org-wide.

    What I owned:

    • End-to-end research for Python and Node developer experiences across Azure services and connected VS Code extensions

    • Multi-method study design including interviews, usability, digital ethnography, co-coding sessions, and journey mapping

    • Cohort-based recruitment across new-to-cloud, migrating, and advanced developers

    • Cross-org stakeholder navigation and advocacy for research influence beyond direct team scope

    • Triangulation of telemetry, survey data, and product usage with qualitative findings

    • Co-creation of the E2E adoption framework with senior UXRs for org-wide applicability

  • Quick Pulse studies are one of Microsoft's continuous-learning mechanisms — lightweight weekly sessions designed to keep teams connected to real customer behavior. I supported this program for Python efforts, end-to-end as a contractor, owning every study from planning through synthesis across multiple product teams. When I moved into a full-time role focused on Azure E2E research, I onboarded a contractor to carry it forward — handing off not just the work, but the standards and structure I'd built so the quality held.

    Learning the domain in real time was part of the job. I came in knowing research and built fluency in Python workflows and data science tooling by listening carefully and asking sharper questions each week. That depth is what made the patterns visible — including one that turned out to matter a lot: a user's background shaped their experience as much as their current role. Data scientists who had transitioned from software engineering navigated VS Code differently, got stuck differently, and needed different things than those from academic or scientific backgrounds. That insight sharpened prioritization and contributed directly to feature work across VS Code and Azure Notebooks.

    The other pattern I kept surfacing was bigger than any single study: customers weren't experiencing Azure as a product — they were experiencing it as disconnected moments owned by different teams. I connected those dots across studies and advocated for research that followed users across the full journey. That push contributed to the formation of a dedicated Azure E2E effort — and to me being brought on full time as the dedicated Python Azure E2E researcher.

    What I owned:

    • Research planning, protocols, and success criteria across multiple product teams simultaneously

    • Facilitation, rapid synthesis, and cross-functional stakeholder alignment

    • Recruitment, screeners, and remote and lab setups; standardized templates and process docs adopted by partner teams

    • Contractor onboarding, oversight, and quality accountability

    • Triangulating quantitative signals against qualitative feedback to sharpen the story

Guiding Principles

  • Insights shouldn't wait until something ships. I stay close to the work — joining standups, reviews, design discussions — because being in the room early means I can ask the right questions before they become expensive ones. The best research doesn't interrupt the build, it travels with it.

  • Process matters — but I'm not locked into it. I take time to understand the problem and the goal first, then figure out how to work within real constraints. That flexibility comes from my startup days: I'll find a way to help you learn, and I'll always be clear about what the research can and can't tell you.

  • The real story rarely lives in one place. I pull from everything available — telemetry, surveys, sessions, conversations with engineers and designers — and I genuinely enjoy the messy middle part where it all starts to connect. That's where the interesting stuff usually

  • I really do believe my job is to help people succeed — and that includes everyone I work with. PMs navigating hard calls, engineers trying to understand a problem, designers pressure-testing an idea, doc writers, partner teams, people in orgs I've never met before. I bring the same curiosity and care to all of them that I'd bring to a customer in a study. If I can understand what someone needs and where they're stuck, I can usually find a way to help.