{
  "$schema": "https://lucasichen.me/resume.json",
  "profile": {
    "name": "Lucas Chen",
    "role": "Software Engineer",
    "company": "Zynga",
    "team": "AdTech",
    "location": "Toronto, Canada",
    "tagline": "Software engineer building AI tooling and ad tech at Zynga.",
    "links": [
      {
        "label": "GitHub",
        "href": "https://github.com/lucasichen"
      },
      {
        "label": "LinkedIn",
        "href": "https://www.linkedin.com/in/lucasichen"
      }
    ]
  },
  "experience": [
    {
      "org": "Zynga",
      "title": "Software Engineer",
      "location": "Toronto, ON",
      "start": "2025-05",
      "kind": "work",
      "summary": "AdTech team: AI tooling and ad projects.",
      "bullets": [
        "Designed and led internal tooling for ad-serving configurations: an MCP (Model Context Protocol) server and tools that let AI assistants work with ad-serving configuration.",
        "Worked on an AI LiveOps agent that cut a workflow from 2–3 hours to about 20 minutes.",
        "Designed and led a project that helps games identify high-value ads."
      ]
    },
    {
      "org": "Hexagon Manufacturing Intelligence",
      "short": "Hexagon",
      "title": "Full Stack Engineering Intern",
      "start": "2023-05",
      "end": "2024-06",
      "kind": "internship",
      "bullets": [
        "Developed 15+ UI and 10+ API production features for the Nexus Platform, using React and Express with TypeScript.",
        "Reduced load times for user list pages by 97% by optimizing API calls and refining Express APIs.",
        "Cut test automation start-up time by up to 98% by parallelizing the Playwright test suite setup.",
        "Reduced API response time by up to 82% with an Azure Cosmos DB proxy that moved Express APIs to C# .NET database pagination."
      ],
      "stack": [
        "TypeScript",
        "React",
        "Express",
        "C#",
        ".NET",
        "Azure Cosmos DB",
        "Playwright"
      ]
    },
    {
      "org": "McMaster University",
      "short": "McMaster TA",
      "title": "Teaching Assistant",
      "location": "Hamilton, ON",
      "start": "2022-09",
      "end": "2023-04",
      "kind": "teaching",
      "bullets": [
        "1P13 Integrated Engineering Project (Sep–Dec 2022).",
        "2GA3 Computer Architecture (Jan–Apr 2023)."
      ]
    },
    {
      "org": "Exchange Solutions",
      "title": "Software Engineering Intern",
      "start": "2022-05",
      "end": "2022-08",
      "kind": "internship",
      "summary": "E-commerce and loyalty platforms: a Shopify app on AWS, plus AR, blockchain and data-visualization work.",
      "bullets": [
        "Made e-commerce client onboarding over 10x faster by building AWS Lambda components.",
        "Led an augmented reality proof of concept for a national loyalty program, built with 8th Wall WebAR and JavaScript.",
        "Raised a loyalty platform’s user engagement by 4% by integrating it with blockchain assets, using Next.js, Ethereum and the Alchemy API.",
        "Built a real-time data visualization dashboard (D3.js, Snowflake), improving early error catching and data comparisons by over 10%."
      ],
      "stack": [
        "AWS Lambda",
        "JavaScript",
        "Next.js",
        "D3.js",
        "Snowflake",
        "8th Wall WebAR",
        "Shopify API"
      ]
    },
    {
      "org": "McMaster Artificial Intelligence Society",
      "short": "McMaster AI Society",
      "title": "AI Research Member",
      "location": "Hamilton, ON",
      "start": "2021-10",
      "end": "2022",
      "kind": "research",
      "bullets": [
        "Worked with a team of four developers on training a humanoid to walk and navigate obstacles in a ragdoll physics simulation.",
        "Used C# and Unity to train and simulate the humanoid."
      ],
      "stack": [
        "C#",
        "Unity"
      ]
    },
    {
      "org": "InsideDesk",
      "title": "Software Engineering Intern",
      "start": "2021-06",
      "end": "2021-09",
      "kind": "internship",
      "bullets": [
        "Found 50+ bugs through QA testing, validated bug fixes, and was the link between clients and the development team.",
        "Cut manual tasks by over 30% with custom JavaScript Slack bots that automate the customer onboarding notifications.",
        "Wrote automated end-to-end UI tests with Selenium and Python, cutting manual QA testing by 40%."
      ],
      "stack": [
        "JavaScript",
        "Python",
        "Selenium",
        "Slack"
      ]
    }
  ],
  "highlights": [
    {
      "id": "mcp",
      "title": "Ad-config MCP",
      "body": "I designed and led internal tooling for ad-serving configurations at Zynga: a Model Context Protocol (MCP) server and tools that let AI assistants work with ad-serving configuration.",
      "tags": [
        "AI",
        "MCP",
        "AdTech",
        "Leadership"
      ]
    },
    {
      "id": "liveops",
      "title": "LiveOps agent",
      "metric": {
        "before": "2–3 h",
        "after": "~20 min",
        "label": "Time to complete one LiveOps workflow"
      },
      "body": "I worked on an AI LiveOps agent that cut a workflow from 2–3 hours to about 20 minutes.",
      "tags": [
        "AI agents",
        "LiveOps",
        "Automation"
      ]
    },
    {
      "id": "ads",
      "title": "High-value ads",
      "body": "I designed and led a project that helps games identify high-value ads.",
      "tags": [
        "AdTech",
        "Leadership"
      ]
    }
  ],
  "projects": [
    {
      "slug": "agent-platform",
      "title": "Agent Platform",
      "year": 2026,
      "period": "Aug 2026 – present",
      "kind": "tool",
      "tagline": "A control plane for safely delegating software work to autonomous coding agents.",
      "summary": "A harness-agnostic platform for handing software work to coding agents in Cursor, Claude Code or any other harness. The goal, from my spec: maximize architecture-approved, verified engineering output per dollar and per minute of human attention.",
      "role": "Solo: spec, design and CLI (in progress)",
      "highlights": [
        "Wrote the v3 spec: missions, workflow templates, task and role contracts, review gates, model routing, memory and fleet security.",
        "Built the “agent” control-plane CLI in TypeScript: it scaffolds a target repo, validates artifacts against JSON Schemas and runs the claim → start → submit → gate loop.",
        "Workers never certify their own work: a task passes only with an evidence bundle, independent verification, and spec, quality and architecture review.",
        "Routes each task by risk to a capability tier (frontier, strong, mid, cheap), mapped to models by policy instead of hard-coded vendors."
      ],
      "stack": [
        "TypeScript",
        "Node.js",
        "JSON Schema (Ajv)",
        "Commander",
        "YAML"
      ],
      "links": [
        {
          "label": "GitHub",
          "href": "https://github.com/lucasichen/agent-platform"
        }
      ],
      "featured": true,
      "github": {
        "repo": "agent-platform",
        "url": "https://github.com/lucasichen/agent-platform",
        "stars": 0,
        "pushedAt": "2026-09-01T12:20:03Z",
        "language": "TypeScript"
      },
      "caseStudy": "https://lucasichen.me/projects/agent-platform"
    },
    {
      "slug": "tennisbooker",
      "title": "TennisBooker",
      "year": 2026,
      "period": "2023 – present",
      "kind": "product",
      "tagline": "Books tennis and pickleball courts the moment booking opens, every morning.",
      "summary": "My parents had to set a 7:30 a.m. alarm every week to get courts at our local club, so I automated it. Members set weekly schedules in a web app, and a bot books the courts each morning and texts the results.",
      "role": "Solo, full-stack (2023 version with help from Douglas Chen)",
      "highlights": [
        "The bot logs in at 7:25, builds every reservation, then fires at exactly 7:30 a.m. ET for courts 7 days out, falls back to backup courts and texts results via Twilio.",
        "TypeScript monorepo (Turborepo): Express + Prisma/PostgreSQL API with Auth0 roles and machine-to-machine tokens for the bot, and a React, MUI and TanStack Query web app.",
        "Runs in Docker on a Raspberry Pi: CI builds multi-arch images to GHCR, deploys go staging → smoke test → promote with one-command rollback, and Vitest and Playwright suites cover the code.",
        "Began in 2023 as “Alfred”: a Playwright bot on a cron-scheduled GitLab pipeline, with a React and Express app, Firebase and multi-user Auth0 login, used by 2 clients. In Aug 2026 the bot moved to the booking platform’s new GraphQL API."
      ],
      "stack": [
        "TypeScript",
        "Playwright",
        "React",
        "Express",
        "PostgreSQL",
        "Auth0",
        "Docker"
      ],
      "links": [
        {
          "label": "GitHub (2023 version)",
          "href": "https://github.com/lucasichen/TennisUI"
        }
      ],
      "credits": [
        "Douglas Chen"
      ],
      "featured": true,
      "github": {
        "repo": "TennisUI",
        "url": "https://github.com/lucasichen/TennisUI",
        "stars": 1,
        "pushedAt": "2025-05-24T14:47:20Z",
        "language": "JavaScript"
      },
      "caseStudy": "https://lucasichen.me/projects/tennisbooker"
    },
    {
      "slug": "plateful-ai",
      "title": "PlatefulAI",
      "year": 2024,
      "period": "Nov – Dec 2024",
      "kind": "product",
      "tagline": "Mobile meal planner: pick meals, get a grocery list, track calories and protein.",
      "summary": "A mobile-first meal planner: choose meals and servings, turn them into a grocery list, and track calories and protein against personal targets. Our team of five built it as a front-end prototype on mock meal data, so the “AI-powered meal prep” step is a UI concept.",
      "role": "Team of 5: app shell, Auth0 login, meal-planning flow, deploy",
      "highlights": [
        "Set up the React + Vite app with Auth0 login, the start and home screens and bottom-tab navigation, and deployed it on Vercel.",
        "Built the meal-planning flow: favourites, filtering out meals that clash with saved allergies and diets, a meal-details view, and meal and serving selection.",
        "Teammates built the grocery list and meal data (Mohammad Mohsin Khan), the calorie and protein tracker (Wajdan Faheem), and profile and target settings (Jasmine Sun-Hu)."
      ],
      "stack": [
        "React",
        "Vite",
        "MUI",
        "Auth0",
        "Chart.js",
        "Vercel"
      ],
      "links": [
        {
          "label": "Live demo",
          "href": "https://plateful-ai.vercel.app"
        }
      ],
      "credits": [
        "Mohammad Mohsin Khan",
        "Wajdan Faheem",
        "Jasmine Sun-Hu",
        "Hammad"
      ],
      "featured": true,
      "caseStudy": "https://lucasichen.me/projects/plateful-ai"
    },
    {
      "slug": "studyspot",
      "title": "StudySpot",
      "year": 2024,
      "period": "Nov 2024",
      "kind": "product",
      "tagline": "Find a place to study at McMaster: search, filters, ratings, favourites and a map.",
      "summary": "A mobile-first prototype for finding study spots on McMaster’s campus: search and filter spots, save favourites, mark places visited, rate them, and see them on a map around you.",
      "role": "Solo, front-end",
      "highlights": [
        "Leaflet map centred on the user’s location (falling back to Thode Library), with a marker and rating for each spot.",
        "Text search, attribute filters, and spot pages where you can favourite a spot, mark it visited and leave a rating.",
        "Runs entirely in the browser: accounts, favourites and visits persist in localStorage. Deployed on Vercel."
      ],
      "stack": [
        "React",
        "Vite",
        "Leaflet",
        "React Router",
        "Vercel"
      ],
      "links": [
        {
          "label": "Live demo",
          "href": "https://studyspot4hc3.vercel.app"
        }
      ],
      "featured": false
    },
    {
      "slug": "unpassword",
      "title": "UnPassword",
      "year": 2024,
      "period": "Nov 2024",
      "kind": "hackathon",
      "tagline": "A password manager built in one day for the MEC 2024 programming challenge.",
      "summary": "A password manager with Auth0 sign-in, an Express API, and passwords encrypted before they are stored in Firebase. I built it in one day with Willie Pai and Mohammad Mohsin Khan for the MEC 2024 programming challenge.",
      "role": "Team: Auth0 login, JWT-secured API, dashboard-to-API wiring",
      "highlights": [
        "Added Auth0 login and logout, plus a client service layer that attaches the user’s access token to every API call.",
        "Added JWT verification to the Express API and set up its Vercel deployment.",
        "Connected the dashboard to the API for listing, adding and deleting passwords, with password-strength rules on new entries.",
        "Merged 13 of the team’s pull requests during the event."
      ],
      "stack": [
        "React",
        "TypeScript",
        "Vite",
        "Ant Design",
        "Express",
        "Auth0",
        "Firebase"
      ],
      "links": [
        {
          "label": "GitHub",
          "href": "https://github.com/PaisWillie/UnPassword"
        }
      ],
      "credits": [
        "Willie Pai",
        "Mohammad Mohsin Khan"
      ],
      "featured": false
    },
    {
      "slug": "api-resume",
      "title": "API Resume",
      "year": 2023,
      "period": "Oct 2023",
      "kind": "experiment",
      "tagline": "My resume as a REST API: Postman-only, rate-limited, with a joke for anyone who POSTs.",
      "summary": "An Express + MongoDB API that serves my resume as JSON, one section at a time or all at once. Inspired by Eric Lake’s API resume.",
      "role": "Solo",
      "highlights": [
        "Endpoints for experience, projects, education and contact, a combined /api/resume, and a menu at /api.",
        "Only answers Postman (other clients get a 403), rate-limits each IP per day (429), and meets any non-GET request with a joke 500.",
        "Express and Mongoose on MongoDB, deployed to Vercel with Vercel Analytics."
      ],
      "stack": [
        "Node.js",
        "Express",
        "MongoDB",
        "Mongoose",
        "Vercel"
      ],
      "links": [
        {
          "label": "GitHub",
          "href": "https://github.com/lucasichen/api-resume"
        }
      ],
      "featured": false,
      "github": {
        "repo": "api-resume",
        "url": "https://github.com/lucasichen/api-resume",
        "stars": 0,
        "pushedAt": "2023-10-28T02:36:05Z",
        "language": "JavaScript"
      },
      "caseStudy": "https://lucasichen.me/projects/api-resume"
    },
    {
      "slug": "carpoolx",
      "title": "CarpoolX",
      "year": 2023,
      "period": "Mar – Apr 2023",
      "kind": "product",
      "tagline": "Android app that matches riders headed the same way so they can share a taxi.",
      "summary": "CarpoolX matches riders heading to the same destination so they can share a taxi and split the fare, with an upfront fare estimate and safety checks for riding with strangers. Four of us built it as a React Native Android app on a Flask and Firebase backend.",
      "role": "Team of 4: repo lead, most of the Flask backend and auth, core screens",
      "highlights": [
        "Led the repo: scaffold, navigation and a feature-branch workflow. Merged all 38 pull requests that landed and wrote 119 of 156 commits.",
        "Wrote most of the MVC Flask backend: multi-user Firebase Auth sign-in, tokens kept in the Android Keystore, token-checked endpoints, and the controller and model layers.",
        "Built login and registration, the profile, taxi verification by door code, taxi details and passenger reports.",
        "Teammates built ride requests and matching with Google Maps routes and fare estimates (Henushan Bala), end-of-ride ratings (Rafeed Iqbal) and private group rides (Allison Cook)."
      ],
      "stack": [
        "React Native",
        "Python",
        "Flask",
        "Firebase",
        "Google Maps Platform"
      ],
      "links": [
        {
          "label": "GitHub",
          "href": "https://github.com/lucasichen/CarpoolX"
        }
      ],
      "credits": [
        "Henushan Bala",
        "Rafeed Iqbal",
        "Allison Cook"
      ],
      "featured": true,
      "github": {
        "repo": "CarpoolX",
        "url": "https://github.com/lucasichen/CarpoolX",
        "stars": 1,
        "pushedAt": "2023-10-01T18:38:56Z",
        "language": "JavaScript"
      },
      "caseStudy": "https://lucasichen.me/projects/carpoolx"
    },
    {
      "slug": "ridehome",
      "title": "Ride Home",
      "year": 2022,
      "period": "Jun 2022",
      "kind": "experiment",
      "tagline": "Mix subway sounds, chatter and lo-fi music into your own TTC ride-home ambience.",
      "summary": "A small ambient-sound web app inspired by ridethesubway: sliders blend subway ambience, background chatter and lo-fi music over a train illustration by the artist mienar.",
      "role": "Co-created with Quinn Ha; built the app and audio controls",
      "highlights": [
        "Independent volume sliders for subway ambience, chatter and music.",
        "Light and dark themes that follow the system setting and remember the visitor’s choice.",
        "Responsive layout for phones, styled with Sass. Deployed on Netlify.",
        "Reached 610 new users in 12 months."
      ],
      "stack": [
        "React",
        "Sass",
        "MUI",
        "AWS S3",
        "Netlify"
      ],
      "links": [
        {
          "label": "Live",
          "href": "https://ridehome.netlify.app"
        },
        {
          "label": "GitHub",
          "href": "https://github.com/lucasichen/ridehome"
        }
      ],
      "credits": [
        "Quinn Ha"
      ],
      "featured": false,
      "github": {
        "repo": "ridehome",
        "url": "https://github.com/lucasichen/ridehome",
        "stars": 3,
        "pushedAt": "2024-02-01T19:35:08Z",
        "language": "JavaScript"
      }
    },
    {
      "slug": "summary",
      "title": "Summary.io",
      "year": 2022,
      "period": "Jan 2022",
      "kind": "hackathon",
      "tagline": "Upload a lecture video and get an AI transcript to study from. Built at MacHacks 2.",
      "summary": "A study tool for recorded lectures: upload a video, watch it beside an AssemblyAI speech-to-text transcript, and (the plan) drag snippets onto your slides to export as a PDF. In 36 hours our team of four built upload, playback and transcription.",
      "role": "Team of 4: AssemblyAI integration, repo setup and write-up",
      "highlights": [
        "Wrote the AssemblyAI calls that submit audio for transcription and fetch the transcript.",
        "Set up the repo and React app, merged the Express transcription server, and wrote the README and Devpost story.",
        "Teammates built the video upload page and upload server (Douglas Chen) and an Express server that polls AssemblyAI for the finished transcript (Aditya Bhadauriya)."
      ],
      "stack": [
        "React",
        "AssemblyAI",
        "Node.js",
        "Express"
      ],
      "links": [
        {
          "label": "Devpost",
          "href": "https://devpost.com/software/summary-io"
        },
        {
          "label": "Demo video",
          "href": "https://vimeo.com/669041921"
        },
        {
          "label": "GitHub",
          "href": "https://github.com/lucasichen/summary"
        }
      ],
      "credits": [
        "Douglas Chen",
        "Aditya Bhadauriya",
        "Fady Morcos"
      ],
      "featured": false,
      "github": {
        "repo": "summary",
        "url": "https://github.com/lucasichen/summary",
        "stars": 0,
        "pushedAt": "2022-01-26T23:26:14Z",
        "language": "JavaScript"
      }
    },
    {
      "slug": "restday",
      "title": "Rest Day",
      "year": 2022,
      "period": "Jan 2022",
      "kind": "hackathon",
      "tagline": "A workout planner that schedules rest days, not just workouts. Built at DeltaHacks 8.",
      "summary": "A weekly workout planner that deliberately schedules rest days, designed to use Fitbit sleep and activity data to decide when to train and when to recover. Willie Pai and I built it in 36 hours at DeltaHacks 8.",
      "role": "Team of 2: Fitbit API integration, landing page, deploy",
      "highlights": [
        "Wrote the Fitbit Web API client, which pulls 7-day sleep and activity logs and heart-rate data (a standalone Node script, not yet wired into the UI).",
        "Built the navigation bar and landing page with styled-components, plus the routes for the other pages.",
        "Merged the feature branches, deployed the React app to GitHub Pages, and wrote the README and Devpost story.",
        "Willie Pai built the weekly schedule view and the exercise GIFs."
      ],
      "stack": [
        "React",
        "Fitbit Web API",
        "styled-components",
        "Node.js",
        "Figma"
      ],
      "links": [
        {
          "label": "Devpost",
          "href": "https://devpost.com/software/rest-day"
        },
        {
          "label": "GitHub",
          "href": "https://github.com/lucasichen/restday"
        }
      ],
      "award": "2nd place, “To Work or Not To Workout” sponsor challenge (AI Endurance), DeltaHacks 8",
      "credits": [
        "Willie Pai"
      ],
      "featured": true,
      "github": {
        "repo": "restday",
        "url": "https://github.com/lucasichen/restday",
        "stars": 1,
        "pushedAt": "2022-02-23T19:32:46Z",
        "language": "JavaScript"
      },
      "caseStudy": "https://lucasichen.me/projects/restday"
    }
  ],
  "education": [
    {
      "school": "McMaster University",
      "degree": "B.Eng., Software Engineering (Co-op)",
      "start": "2020",
      "end": "2025",
      "notes": [
        "Dean's Honour List (2020–2023)",
        "McMaster Honour Award (2020–2023)",
        "Courses: System Design, Data Structures and Algorithms, OOP, Software Design, Databases"
      ]
    }
  ],
  "skills": [
    {
      "group": "Languages",
      "items": [
        "TypeScript",
        "JavaScript",
        "Python",
        "Java",
        "C#",
        "SQL",
        "HTML/CSS",
        "Bash"
      ]
    },
    {
      "group": "Frontend",
      "items": [
        "React",
        "React Native",
        "Next.js",
        "Vite",
        "MUI",
        "TanStack Query"
      ]
    },
    {
      "group": "Backend & data",
      "items": [
        "Node.js",
        "Express",
        ".NET",
        "Flask",
        "Prisma",
        "PostgreSQL",
        "MongoDB",
        "Azure Cosmos DB",
        "Firebase",
        "DynamoDB",
        "Swagger"
      ]
    },
    {
      "group": "AI & agents",
      "items": [
        "Model Context Protocol (MCP)",
        "Claude Agent SDK",
        "Claude Code",
        "Cursor"
      ]
    },
    {
      "group": "Testing & automation",
      "items": [
        "Playwright",
        "Vitest",
        "Jest",
        "Selenium"
      ]
    },
    {
      "group": "Infra & tooling",
      "items": [
        "Docker",
        "Git",
        "GitHub Actions",
        "GitLab CI",
        "Vercel",
        "AWS (Lambda, S3)",
        "Auth0",
        "Azure DevOps"
      ]
    }
  ]
}