DevPortfolio — Hardening Checklist

1. Functional correctness

  • Resume parsing works on 5 different real resumes (PDF + image)
  • Classifier accuracy ≥ 80% on held-out test set
  • Manual label editing persists
  • Sharing flow generates a valid QR + universal link
  • AR mode detects a plane within 5 s and places 3+ cards
  • AR mode degrades gracefully on devices without AR (shows alert + non-AR project list)
  • Universal link opens the app or web fallback correctly

2. ML / privacy

  • CoreML model is bundled, not downloaded
  • Resume PDF never leaves the device
  • No telemetry on user resume content
  • Privacy Nutrition Label: User Content (Linked, Not used for tracking)
  • PrivacyInfo.xcprivacy declares Required Reason APIs (file timestamp for PDF, user defaults)

3. ARKit

  • NSCameraUsageDescription is specific: “Used for AR mode to place your portfolio cards in the room.”
  • AR session is paused when the app backgrounds
  • AR mode is gated on ARWorldTrackingConfiguration.isSupported
  • No crashes when AR mode is entered then exited rapidly
  • Memory peak in AR mode < 200 MB
  • Thermal state monitored; AR mode dims rendering if .serious or .critical

4. Architecture

  • TCA store mutations are deterministic — same actions produce same state
  • Effects are cancellable on view dismissal
  • _printChanges() removed from Release builds
  • No circular dependencies between features

5. Performance

  • Cold launch < 1.5 s
  • Resume parsing < 3 s for 1-page PDF
  • AR mode ≥ 30 FPS sustained
  • App size including model < 50 MB

6. Accessibility

  • VoiceOver describes each portfolio section
  • Dynamic Type accessibility5 doesn’t break layout
  • AR mode includes a “list mode” toggle for users who can’t use AR
  • All actionable elements have .accessibilityLabel

7. App Store Review

  • App Review Notes include: sample resume PDF link, AR demo instructions, how to test sharing
  • Screenshots show ML classification result and AR mode
  • App Preview video (highly recommended for AR apps — increases approval rate)
  • Privacy policy URL live
  • No mention of “AI” without backing model description (some reviewers are skeptical)

8. Documentation

  • README with screenshots + AR demo GIF
  • ML training script committed (so reviewers can reproduce)
  • TCA architecture diagram
  • App Review journey documented (rejection emails + responses)
  • Interview talking points rehearsed

Sign-off

Read interview-talking-points.md.