William Gervasio.

Member of Technical Staff / Microsoft AI

Scroll through the projects below for case study explanations. Read my resume for actual summaries.

Microsoft AI

Member of Technical Staff
Job 1/6

Consumer Copilot and Copilot Tasks

I work on Consumer Copilot model behavior and architected the Copilot Tasks response layer. The walkthrough starts with image results and the chat handoff, then follows presentation, shopping, document, and app requests to explain planning, tools, inference caching, and evaluation.

100MConsumer Copilot monthly active users~70%of Tasks usage coming through the chat handoff40%Copilot Tasks week-over-week retention$2M+/moinference spend eliminated across Copilot

Copilot Tasks reached 200k daily active users in under a month. Separately, I approved model-feature evaluations and led an evaluation harness profiling 1,000+ coding-agent PRs per week.

Copilot Tasks product announcement ↗
Consumer Copilot

Image results and guided follow-ups

Copilot answers a presentation-style question with image references and a suggested follow-up. I co-owned the main system prompt and worked on these model features as one of five feature owners, serving 100M monthly active users.

Consumer Copilot

Starting a task from chat

That presentation request moves from chat into Tasks. I built this handoff: Start launches the work, and Open reveals its plan. The chat-to-Tasks path accounted for about 70% of Tasks usage.

Copilot Tasks · Presentation

Loading skills and source access

The plan loads a presentation skill, reads Drive notes, and checks web sources. I implemented skill loading and explored selecting connector permissions before consent, including read access without email-send permission.

Copilot Tasks · Presentation

Producing the slide deck

I architected the response layer coordinating plans, tools, and artifacts. Here, the gathered inputs produce the requested slide deck; that same deck carries into the preview.

Copilot Tasks · Shopping

Keeping the task context

A new shopping request specifies size M and a $60 budget. Those constraints stay in the task brief while tool results are added. My inference caching and context-management work reduced Copilot spend by $2M+ per month.

Copilot Tasks · Shopping

Batching browser operations

For that shopping task, predictable browser actions run in one batch instead of separate model round trips. I worked on this browser-use guidance; the grouped Open, Read, and Compare actions show the batch.

Copilot Tasks · Shopping

Recovering from repeated work

The browser returns the same page again. I worked on instructions for recognizing repeated work and changing approach; the task now replans around another source instead of repeating the request.

Copilot Tasks · Shopping

Reviewing the selected item

The shopping task has selected an item that fits the requested size and budget. It reaches a review step and waits for purchase approval.

Copilot Tasks · Shopping

Checking the task result

The selected item is checked against the $60 budget and size M. The final check confirms that checkout is still waiting for approval.

Copilot Tasks · Documents

Turning notes into a brief and draft

A separate document request uses the same launch notes to produce a brief and email draft. The three sheets belong to that one task: source note, derived document, then draft awaiting approval.

Copilot Tasks · App

Generating a runnable app

A separate request produces an app instead of a document. Its artifact becomes the paper-plane game, with keyboard and touch input, scoring, pause, and restart controls.

The illustration loads as you approach. The story is ready to read.

Instacart

Software Engineer II
Job 2/6

Receipt reconciliation

I led a receipt-reconciliation platform combining offline preparation with real-time matching. The walkthrough explains matching first, then serving, and finally three separate consumers of the same results: shopper questions, audit review, and pricing.

$3M+/mosaved through receipt reconciliation86%of all Instacart orders~21M/moestimated covered orders at 2024 scale90%recall from bidirectional receipt/order matching

2024: 294M company-wide orders, averaging 24.5M per month. Applying 86% coverage gives about 21M covered orders per month. This is an annual-average estimate, not measured monthly traffic. 2024 annual report ↗

The shopper product ↗
Receipt reconciliation

Receipt capture and reconciliation

I led receipt reconciliation serving 86% of all Instacart orders and saving more than $3M a month. A receipt photograph supplies the text used by the matching pipeline.

Receipt reconciliation

Reading product attributes

The abbreviated milk description stays as the input. It contains signals for flavor and size, but is not a catalog ID. The order provides the products to compare it against.

Receipt reconciliation

Generating candidate products

The milk description expands into three candidate products. Associative data mining supplies these interpretations, which are compared with the ordered items to find possible pairs.

Receipt reconciliation

Comparing matching signals

The bars compare text similarity between the receipt and each candidate. Flavor, size, weight, and historical associations provide additional evidence; the highest string score alone does not decide the match.

Receipt reconciliation

Filtering resolved cases and charges

Clear matches, such as eggs and apples, leave the exception path. Tax and deposit lines are excluded. Ambiguous milk and unexpected or missing items remain for further processing.

Receipt reconciliation

Resolving the milk description

For the remaining milk candidates, semantic reasoning uses flavor, size, and order context. Vanilla at 32 ounces matches; original flavor and the larger carton are rejected.

Receipt reconciliation

Preparing evidence for serving

The view now shows how matching evidence is prepared offline. Databricks aggregates 7-, 30-, and 180-day history into a feature store, so online requests can retrieve it without rerunning that work.

Receipt reconciliation

Matching in both directions

At request time, the system retrieves stored candidates and matches receipt to order and order to receipt. Together, these paths reached 90% recall and exposed unexpected and missing items.

Receipt reconciliation

Using matches for shopper questions

One use of the matching results is a shopper question. The order contains yogurt with no receipt match, so the app asks whether it was missed, unavailable, or replaced.

Receipt reconciliation

Using matches for audit review

A separate consumer of the same results is fraud and audit review. The unexpected drink and missing yogurt enter an evidence record for investigation, not an automatic fraud verdict.

Receipt reconciliation

Using matches for price corrections

Pricing is another use of the same matches. Linking the milk’s receipt and recorded prices exposes a seventy-cent difference, which goes to customer-credit review and the pricing API.

The illustration loads as you approach. The story is ready to read.

BC Cancer Research Centre

Research Intern
Job 3/6

Cell imaging and tracking

At Canada’s Michael Smith Genome Sciences Centre in BC Cancer Research Centre, I worked on labeling, segmentation, tracking, and analysis within a cell-to-genomics workflow. The animation follows that workflow through the lab’s deposition and sequencing stages. The centre was founded in 1999 by Nobel laureate Michael Smith.

700+cells dispensed per minute in the pipeline50%reduction in segmentation error
Canada’s Michael Smith Genome Sciences Centre ↗
Cell-analysis workflow

Preparing cell-training labels

HPC jobs ran Segment Anything with heuristics to produce rough cell masks; I manually corrected them. The outline shows a rough mask becoming a cleaned training label.

Cell-analysis workflow

Training cell segmentation

Those cleaned masks become training data for Mask R-CNN. I trained the model to separate individual cells in each image; the learned outline becomes the input for tracking.

Cell-analysis workflow

Tracking cells across images

I used btrack to connect observations using motion and appearance. When the highlighted cells overlap, identity is uncertain. Bayesian association builds tracklets; global integer optimization selects compatible links.

Cell-analysis workflow

Linking a cell to its microwell

After tracking, the lab’s workflow deposits the cell into a microwell. The well identifier connects imaging to collected material, while uncertain track-to-well links remain flagged.

Cell-analysis workflow

Sequencing the collected material

Material from that same well is sequenced. Its genomic measurements are linked by the well identifier, keeping them distinct from image-derived area, shape, and movement.

Cell-analysis workflow

Comparing imaging and genomic data

The workflow joins imaging features with sequencing-derived measurements. I explored associations such as cell size and ploidy; the plot compares those measurements while holding ambiguous cell identities for tracking review.

The illustration loads as you approach. The story is ready to read.

Simba Technologies

Junior Software Engineer
Job 4/6

Native database drivers

Simba co-created the ODBC standard with Microsoft in 1992. One PostgreSQL query connects two separate projects in this walkthrough: my ARM64 porting work on C/C++ PostgreSQL and Redshift drivers, and the PostgreSQL parser redesign. The final steps follow the query’s results back to the application.

ARM64native driver support10%faster execution from the parser redesign40%lower memory use from the parser redesign
Simba’s ODBC heritage and connectivity platform ↗
Project 1 · ARM64 driver port

Starting a database query

This query provides the example for the driver work. An ARM64 BI application requests sales totals by region through ODBC; the driver must carry the request to PostgreSQL and return usable rows.

Project 1 · ARM64 driver port

Routing the ODBC call

The SQL becomes an ODBC call on a statement handle. The Driver Manager selects the database-specific driver, which translates between ODBC calls and the native client API.

Project 1 · ARM64 driver port

Encountering an incompatible library

The request stops at the loader: an ARM64 application cannot load an x86_64-only driver. The driver and its in-process dependencies need compatible builds before any query reaches the server.

Project 1 · ARM64 driver port

Porting the native-library chain

I ported the C/C++ driver components and rebuilt compatible dependencies, including PostgreSQL’s libpq. The native chain becomes loadable; API, authentication, type, error, and cleanup handling also needed compatibility checks.

Project 2 · SQL parser redesign

ANTLR parsing redesign

Separately, I replaced regex-based PostgreSQL parsing with an ANTLR grammar. The SQL splits into tokens and forms a grammar tree. That redesign improved execution by 10% and reduced memory use by 40%.

Driver query lifecycle

Sending the query to PostgreSQL

The walkthrough returns to the same query. After client-side parsing, the driver uses the native client to send PostgreSQL’s wire message to the remote server, where the query will execute.

Driver query lifecycle

Returning typed result rows

PostgreSQL groups the sales records and returns typed rows. They travel back through libpq and ODBC into the application’s bound buffers, completing the query that began this walkthrough.

The illustration loads as you approach. The story is ready to read.

University of British Columbia

Senior Teaching Assistant
Job 5/6

Computer science teaching

This walkthrough covers my teaching in CPSC 110 and CPSC 320. It reuses one graph: first for systematic program design and recursive search, then for weighted shortest paths, correctness proofs, and complexity analysis.

4 yearsof teaching work~1,000students at CPSC 110 course scale, supported by the teaching team188k+registered learners in the MicroMasters program I helped support
CPSC 110, computation and program design ↗
CPSC 110 · Program design

Defining the search problem

I taught systematic program design: data definitions, signatures, tests, templates, and implementation. Here, graph nodes are states, edges are legal moves, and the function must find a route from S to T.

CPSC 110 · Program design

Generating the next search states

The search generates neighboring states and explores one branch. I taught how generative recursion creates subproblems from rules, unlike structural recursion over smaller pieces of the given data.

CPSC 110 · Program design

Returning from a dead end

The highlighted branch reaches a dead end and returns failure. The search then tries another neighbor. I used cases like this to teach tests and debugging against the program’s contract.

CPSC 110 · Program design

Rejecting a repeated state

The search encounters a state already on its current path and rejects that call. I taught students to explain this accumulator invariant and why the search terminates on a finite graph.

CPSC 110 · Program design

Returning the successful route

The search reaches T and returns the path through its calls. I assessed whether students could connect that result to their data definitions, helpers, tests, and explanation of correctness.

CPSC 320 · Algorithms

Finding the lowest-cost route

The same graph now illustrates CPSC 320: edges have costs, and the goal is the cheapest route. I taught Dijkstra’s algorithm, its correctness argument, and time and space analysis.

CPSC 320 · Algorithms

Recomputing after a cost change

The B–A edge changes from 2 to 9, so distances must be recomputed. I taught students to examine how an input change affects the result and whether the algorithm’s assumptions still hold.

The illustration loads as you approach. The story is ready to read.

Cadets Canada

Instructor · Summer Company Sergeant Major
Job 6/6

Instruction and staff leadership

The first part covers school-year curriculum and cadet assessment. The rest follows my summer work at Vernon CTC: staff management, Company Sergeant Major duties, sports instruction, coaching new instructors, and coordinating larger events.

18 weeksof planned and led sports / fitness training~100cadets led as Company Sergeant Major1,000+participants in large parades and sports events
Vernon Cadet Training Centre ↗
School-year training

Teaching and assessing cadets

During the school year, I helped plan curriculum for about 100 cadets and taught and assessed lessons. The classroom shows that instructional work; I also supervised drill and dress for roughly 20.

Vernon CTC · Summer training

Managing staff and cadet wellbeing

The setting changes to summer training at Vernon CTC. I managed platoon sergeants and staff, covering meals, hydration, uniforms, barracks, learning, and support for cadets who needed care.

Vernon CTC · Summer training

Leading the company on parade

As summer Company Sergeant Major, I coordinated about 100 cadets within a roughly thousand-person parade. The formations and pace-stick salute show the march-past responsibilities of that role.

Vernon CTC · Summer training

Teaching sports and fitness

In the same summer program, I taught sports and fitness through explanation, demonstration, practice, and feedback. The ball moves from the instructor to the cadets as they practise the activity.

Vernon CTC · Summer training

Coaching new cadet instructors

The focus stays on the same training field, but a cadet now leads. I coached new instructors to brief the activity, assess participants, and give feedback while I supervised.

Vernon CTC · Summer training

Coordinating a larger event

The camera pulls back to the wider event. I planned and ran activities and tournaments, coordinating staff, teams, spaces, equipment, and schedules, including an event for more than a thousand cadets.

The illustration loads as you approach. The story is ready to read.