resume.txt
Annabelle Wright
Frontend Engineer
Currently at eBay. Previously Microsoft Advertising (formerly Xandr) for 5½ years.
I build production web apps in React, TypeScript, and GraphQL, and I like the work users notice: fast pages, accessible UI, and fewer errors.
TypeScriptReactNext.jsTestinga11y
impact_summary.txt
- 90% reduction in customer-facing errors
- 40% faster page loads
- 5+ years shipping at scale
- 1 background thread: annabelle_os (idle)
current_role.txt
Current Role
Software Engineer 3 @ eBay
Feedback & Reviews Platform
Experience
job_ebay.log
Software Engineer 3
July 2025 - PresenteBay
Feedback & Reviews Platform
- Sole web engineer on "Photos and videos from customers," the carousel of buyer photos and videos now live on eBay item pages. Built the carousel and its review modal in Marko against a REST API.
- Shipped the carousel into the item page, which a different org owns and protects with its own release standards and pipeline. Learned their process, built a working relationship with that team, and got it through their review to launch.
- Migrated two multi-step feedback revision flows, including photo upload, from Marko to React and TypeScript on eBay's federated GraphQL. Feedback is used by hundreds of thousands of people a day.
- Building the frontend for a new eBay experience in a greenfield React 19 app, including reusable GraphQL-backed card components I designed so new content types plug right in.
- Wrote the Node.js layer that pulls from a mix of legacy and modern APIs shared with the iOS and Android apps and reshapes the data for web, in a codebase with 25+ years of history.
- Took on codebase health unprompted: cut TypeScript errors 25%, added lint rules and missing tests, upgraded Storybook, and got hot reload working, ending dev server restarts after every change.
- Built an IntelliJ plugin for Marko from scratch for a company AI day, after watching teammates switch editors to work in our Marko repos. Two engineers on the team now use it.
- Wrote reference docs for our React and Marko component libraries aimed at coding agents, so they use our components correctly. My own workflow runs passes with Claude Code, Cursor, and Codex, then a careful human review for correctness and readability before anything merges.
- Founded and run a 20-person monthly frontend developers meetup, coordinating in-office sessions for knowledge sharing.
job_microsoft_ads.log
Software Engineer 2
July 2021 - July 2025Microsoft Advertising (formerly Xandr)
Xandr Invest and Microsoft Advertising Platform
Portland, OR
- Cut customer-facing errors by 90%, from about 500 a day to under 50. Added error tracking and a dashboard that grouped frontend errors as they were thrown, then worked down the most common causes.
- Made pages load 40% faster by rewriting GraphQL queries that kept re-fetching the same subgraphs, bringing the app within its SLOs of a 3-second mean and 6-second p95.
- Scoped new ad targeting features that let buyers target by geography and demographics, including zip code and region, then split the work across the team and led it to launch on schedule.
- Started the team's mentoring program with an engineering lead and mentored two engineers directly through pairing and code walkthroughs.
- Moved the team's frontend tests from Enzyme to React Testing Library across our repos.
job_microsoft_test.log
Software Engineer in Test 2
Jan 2020 - July 2021Xandr (now Microsoft Advertising)
Promoted to Software Engineer 2
Portland, OR
- Replaced the team's Gherkin-style tests with a Cypress workflow developers run as they build. The whole team switched over.
- Added SonarQube quality and security checks to our repos.
- Built small Kubernetes test environments that spun up only the dependencies each app needed.
- Mocked external dependencies in mid-level tests so the team could focus on bugs in the apps we owned.
job_city_of_eugene.log
QA Automation Engineer
Mar 2018 - Jan 2020City of Eugene
Eugene, OR
- Built a Python test automation framework for web and desktop apps, REST APIs, and databases.
- Load-tested web apps with Locust to compare response times on-premise and in the cloud.
- Stored historical test results in a database so trends across test suites were easy to report.
- Administered Jira and Confluence, including custom workflows and ticket layouts.
job_accruent.log
Quality Assurance Associate
July 2017 - Mar 2018Accruent
Austin, TX
- Built and maintained a Selenium WebDriver automation framework.
- Ran weekly performance tests across deployments.
- Was the main QA contact for integrations across several products.
Skills
languages.txt
Languages & Frameworks
TypeScriptJavaScriptReact 19Next.jsNode.jsMarkoGraphQL (federated)PostgreSQLPythonGDScriptHTMLCSS
testing.txt
Testing & Quality
JestReact Testing LibraryCypressStorybookSonarQubeAccessibility (WCAG)
tools.txt
Tools & Infrastructure
GitCI/CDDockerKubernetesAzureKustoFigma
other.txt
AI & Practices
Claude CodeCursorCodexAgent-facing docsPerformanceMentoringCode ReviewREST APIs
Education
edu_uw.txt
Graduate Coursework in Natural Language Technology
Jun 2024 - May 2025University of Washington
Seattle, WA (Remote)
edu_unt_ms.txt
MS in Recreation, Event, and Sports Management
Aug 2015 - May 2017University of North Texas
Denton, TX
edu_unt_ba.txt
BA in Linguistics
Aug 2012 - May 2015University of North Texas
Denton, TX