Project and delivery leadership for applied AI/ML engineering, grounded in seven years of TD Insurance experience.
This repository contains Neil Mitchell's personal career portfolio. It presents his current Project Manager II role in Applied AI/ML Engineering, his TD career path, delivery approach, technical capabilities, selected impact measures, and current résumé.
The portfolio is personal and unofficial. It is not a TD Bank Group or TD Insurance website.
| Area | Purpose |
|---|---|
| Hero | Photographic introduction, current role, experience and résumé access |
| Career | Featured current role and four native disclosures retaining the complete career |
| Approach | Six stages from business objective through learning and improvement |
| Expertise | Delivery strengths, platform experience, and hands-on technical practice |
| Impact | Career measures with count-up animation and supporting context |
| Works | Independent technical case studies with clear evidence and attribution boundaries |
| Contact | Direct contact options and a clear personal-site disclaimer |
- Next.js 16 App Router with static export
- React 19 with the TypeScript 7 compiler and TypeScript 6 compatibility API
- Purpose-built CSS for normalization, design tokens, and responsive layouts
- Native React and browser APIs for theme preference, navigation, progress, and metric animation
- Vercel for production hosting
No UI, icon, or animation library is required.
The locally hosted Manrope variable font, photographic hero, and responsive presentation are documented in DESIGN.md. The audience and content principles are in PRODUCT.md.
TypeScript 7 supplies the native compiler invoked by npm run typecheck. The standard TypeScript 6
package remains installed for the compiler API required by Next.js and typescript-eslint during
the TypeScript 7.0 transition.
flowchart LR
Career["career data"] --> Sections["home-page sections"]
Projects["data/projects.ts"] --> Sections
Projects --> Works["/works + static case studies"]
Components["shared components"] --> Sections
Components --> Works
Tokens["design tokens and layouts"] --> Sections
Tokens --> Works
Sections --> Build["Next.js static export"]
Works --> Build
Build --> Out["out/"]
Out --> Vercel["Vercel production"]
Content is kept separate from presentation so career updates can be made in data/ without
rewriting component markup. See Architecture and
Content Guide for details.
Requirements:
- Node.js 24.x
- npm 11 or newer
git clone https://github.com/CRSD-Lau/Personal-Site.git
cd Personal-Site
npm ci
npm run devOpen http://localhost:3000.
| Command | Purpose |
|---|---|
npm run dev |
Start the Next.js development server |
npm run build |
Create the static export in out/ |
npm run preview |
Serve the exported site at http://localhost:4174 |
npm run format |
Format source, documentation, and repository files |
npm run lint |
Run ESLint with warnings treated as failures |
npm run typecheck |
Run the TypeScript compiler without emitting files |
npm test |
Validate career facts, project evidence, links, licences, and assets |
npm run validate |
Run every release gate, including a production build |
| Path | Responsibility |
|---|---|
data/profile.ts |
Identity, current role, hero copy, links, and contact content |
data/experience.ts |
Career chronology, role summaries, and responsibilities |
data/approach.ts |
Delivery stages and working principles |
data/skills.ts |
Capability groups and platform knowledge |
data/impact.ts |
Impact metrics and supporting stories |
data/projects.ts |
Independent project records, evidence snapshots, and links |
app/icon.png |
Round headshot favicon |
public/opengraph-image.png |
Social preview image for root-page link embeds |
public/works/deep-live-cam/social-preview.png |
Reviewed Deep Live Cam Studio repository artwork |
app/manifest.ts |
Install metadata and app icon declaration |
app/robots.ts |
Search crawler policy and sitemap discovery |
app/sitemap.ts |
Canonical production URL for search indexing |
public/profile.webp |
Hero portrait |
public/logo.png |
Official TD employer marker used beside TD roles |
public/resume.pdf |
Public résumé downloaded from the site |
Follow the evidence and wording rules in the Content Guide before changing career claims, impact figures, or independent-project records. The project preview's separate source terms and provenance are recorded in LICENSE.md.
The editable résumé source is
documents/Neil-Mitchell-Resume.docx. The published
copy is public/resume.pdf.
The build helper creates the DOCX and finalizes PDF metadata:
python scripts/build-resume.py
python scripts/build-resume.py --pdf-input path/to/converted.pdfMicrosoft Word or another compatible renderer is used between those commands to convert DOCX to
PDF. The final PDF and DOCX must list Neil Mitchell as author and modifier.
Every push and pull request to main runs the same npm run validate gate used locally.
Dependabot checks npm and GitHub Actions dependencies on a weekly schedule.
Release history is recorded in CHANGELOG.md. The full publishing and rollback workflow is documented in Deployment and Release Process.
- Read CONTRIBUTING.md before proposing a change.
- Report vulnerabilities through GitHub private vulnerability reporting.
- Use the project wiki for operating guidance.
Copyright © 2026 Neil Mitchell. All rights reserved. See LICENSE.md.
TD, TD Bank Group, TD Insurance, and related marks belong to their respective owners. Their names and logo appear only to describe employment history. This repository and website are personal and unofficial.
