I'm An Li.
$ a SWT engineer
From Taiwan, based in Tokyo.
More About Me
…
SalesMarker · Lead QAexperience.json → SalesMarker (2024 - Present)
Apple · AI/ML Evalexperience.json → Apple Yokohama (2022 - 2024)
Google · Nest / Chromecastexperience.json → Google Taipei (2020 - 2022)
Full timelineexperience.json
Core Skills
# ~/portfolio/skills.yml
Work Experience
// parsed 7 roles · 3 cities · ~6.5 years
Highlighted Projects
// export default: top 10
Say Hello.
$ curl hello@an-li.tw · LinkedIn · Instagram
Form posts to Formspree when the endpoint is set; otherwise falls back to a mailto: draft.
resume.pdf
:help
# command palette reference · ⌘K / Ctrl+K
Navigation
:aboutOpen about.md (bio, hero):skillsOpen skills.yml (core capabilities):experienceOpen experience.json (7 roles):projectsOpen projects.ts (top 10):contactOpen contact form:cvPreview resume.pdf inlineActions
:resume downloadDownload Anli-Resume.pdf:emailCompose email to hello@an-li.tw:linkedinOpen LinkedIn profile:playgroundRun a live Playwright snippet:exitShut down · back to classic UIPersonalization
:themeToggle dark / light:theme darkSet theme: Dark:theme lightSet theme: Light:lang en / ja / zhSwitch languageShortcuts
:sudo¯\_(ツ)_/¯⌘K / Ctrl+KOpen command palette/Open command palette (search focus)g a / g s / g p …Quick-jump to files (vim-style)EscClose palette / dialogs:playground
# a simulated Playwright test run · watch it in real time
// tests/login.spec.ts
import { test, expect } from '@playwright/test';
test('login flow · happy path', async ({ page }) => {
await page.goto('/login');
await page.getByLabel('Email').fill('hello@an-li.tw');
await page.getByLabel('Password').fill(process.env.PW!);
await page.getByRole('button', { name: 'Sign in' }).click();
await expect(page.getByRole('heading', { name: 'Dashboard' })).toBeVisible();
});
--:--:--·Press "Run test" to start.