鈴奈庵Suzunaan, home

Carl Fan, HCI researcher
and software engineer

I study what people of different ages, with and without visual impairments, want from AI that automates their web tasks (source a).

M.S. in Information (HCI) and M.S. in Industrial and Operations Engineering, both from the University of Michigan.

Email Résumé

Clipping from the paper’s abstract. Highlighted: “users’ web automation needs and preferences” and “individuals across various age ranges and users with visual impairments”.
Source a: From the abstract of Understanding Challenges and Needs of Using AI in Web Automation Systems, our paper at the CHI 2025 Computational UI Workshop.

Work

What people want from web automation

Jiacheng Zhang, Carl Fan and Steve Oney. Understanding Challenges and Needs of Using AI in Web Automation Systems. CHI 2025 Computational UI Workshop.

Considering a mountain bike, participant 2 would have AI gather the “pros and cons mentioned in the reviews” but wanted to “confirm the final purchase”.

We interviewed 24 people, among them 12 aged 55 or older and 6 blind or low-vision screen-reader users, and analyzed their answers on 312 web tasks. They were open to AI gathering information for them but preferred to make final decisions themselves.

In their task ratings, the older participants and the blind or low-vision participants leaned toward more automation than the others.

This study is the basis of my thesis for the M.S. in Information.

Preferred level of automation in participants’ task ratings
Semi-automated
48%
Fully automated
32%
No automation
16%

Source: workshop paper, §3.1, §4.1 (48.39%, 32.05% and 15.71%), §4.2.1 and §4.5.1.

WebMemo

A Chrome extension that links each value an AI extracts from a web page back to the words it came from. It is a team research project at the University of Michigan School of Information. Its design goals came from these interviews and earlier work. I designed and built its extraction and provenance workflow.

Twelve participants tried both WebMemo and OttoGrid, a table tool with AI assistance. They rated WebMemo’s results as more trustworthy: a mean trust rating of 4.42 against 3.33 (p = .027).

One finding and the design that answers it
From the interviews
People wanted to review and check the data before making a final decision.
In WebMemo
Clicking a cell opens its source page with the passage highlighted, so the value can be checked while browsing.

Source: anonymous draft, §3, Figure 2, §6.1.1 and §6.2.3. The draft does not give the scale of the trust rating.

WebMemo case study

Map of central Japan, from Hiroshima in the west to Tokyo in the east.
The atlas map. Map data © OpenStreetMap contributors, tiles by OpenFreeMap and OpenMapTiles.

Gensō Field Atlas

An atlas of more than 600 real places linked to characters and works from Touhou Project, a long-running Japanese indie game series. Each link between a place and a character or work carries an evidence grade, such as “stated in a source”, “matching motif” or “editor’s inference”.

I built the versioned Python data pipeline, the map interface in Next.js, React and MapLibre, and the release checks. The app runs on Cloudflare Workers and D1.

Atlas case study

From the atlas

Two places linked to Kosuzu Motoori 本居小鈴, whose family’s lending library gives this site its name:

  1. stated in a source: Kamome Inari, at the Tokyo branch of Nose Myōken‑san 能勢妙見山東京別院 鴎稲荷大明神The cited source says its black talisman is probably the model for the “Nose black talisman” in Forbidden Scrollery, volume 3, chapter 19. The atlas marks that claim as unconfirmed.
  2. editor’s inference: Motoori Norinaga‑no‑miya, Matsusaka 本居宣長ノ宮A shrine to the scholar Motoori Norinaga, whose family name Kosuzu shares.

Two shutdown fixes in Deskflow, made with coding agents

Deskflow, an open-source app, shares one keyboard and mouse across computers; I use it between a Windows PC and a Mac. On Windows, shutting it down logged a clipboard warning, error 87 (#8179), and could end in a deadlock crash (#8941).

I worked on both with coding agents, and each pull request says who did what. Claude traced the bugs and wrote the patches. Codex reviewed them and ran the automated tests in the table. I ran the manual test with both fixes, edited the write-ups and submitted #10197 and #10200 as @iamnotmili. Both were merged upstream.

From the review of #10200: Ah, nice, this solves the error dialog flashing up on Core restart when in desktop mode. (nbolton, Deskflow maintainer)

Shutdown tests reported in #10200: each row is three start-and-stop runs of one Windows build.
BuildClipboard warningDeadlock crashExit code
Unpatchedpresentpresent0xc0000409
#8179 fix onlyabsentpresent0xc0000409
#8941 fix onlypresentabsent0
Both fixesabsentabsent0

Two fixes in zotero-mcp

zotero-mcp connects a Zotero library to Claude and other AI assistants through the Model Context Protocol; I use it on my own library. I sent two pull requests, each with tests, and both were merged in version 0.12.0: a creator with an empty first or last name no longer leaves a dangling comma in collection summaries (#532), and when Zotero cannot be reached, the recent-items tool reports an error instead of a successful result whose text says it failed (#533).

I also sent a third, on metadata searches that fail partway through and come back as “No items found” (#578). The maintainer closed it in favour of a narrower fix of his own in 0.12.5, and a gap I then reported in that release was closed in 0.13.1.

Pharmacy capacity planning for Michigan Medicine

Before an ICU expansion, the pharmacy team needed a way to estimate its workload and staffing. As a graduate consultant, I combined intervention, staffing and patient-acuity records in a Python ETL workflow to prepare the planning inputs. I also built a linear optimization model to compare staff allocations. Neither the model nor its results are public.

The résumé has the rest.