Skip to content
Role Atlas

Portfolio lab 02 / 2 min read

Build an integration that survives a bad day

Sync a mock CRM and ticketing system. Make retries, duplicates, and human review visible.

The short version

The interesting demo is not the first successful sync. It is what happens when delivery fails halfway through.

Original Role Atlas portfolio exercise

At a glance

Time to build
10-16 focused hours (estimate)
What you need
Python or TypeScript, a small database, and basic API testing. Two local mock services are enough.

What to ship

  • Two mock APIs, a connector, and a small operations dashboard
  • A repeatable failure-injection test suite
  • A runbook covering recovery, ownership, and safe replay

The customer brief

An account manager wants support tickets linked to the correct customer account. The fictional CRM and ticketing tool disagree on IDs, records arrive late, and deliveries may repeat. Build a connector that makes the sync explainable.

Add an AI step that suggests a category and summarizes each ticket for a reviewer. The model must not decide identity matches or silently overwrite account data. This is an original portfolio exercise, not a real customer engagement.

Separate the reliable core from the AI suggestion

Give each synthetic event a stable ID. Store whether it has been processed, the target record, and any error. Use deterministic rules for account matching; ambiguous matches belong in a review queue.

Stripe's webhook documentation is a useful real-world reference for duplicate delivery, signature verification, and retry behavior. Your mock integration need not connect to Stripe or process payments.

  • Validate incoming events and reject invalid signatures in the test service.
  • Simulate duplicate events, rate limits, timeouts, and out-of-order updates.
  • Retry transient errors with a bounded policy; surface permanent failures for review.
  • Attach the AI summary as a suggestion with the original ticket available for comparison.

Source / Stripe: Webhook delivery and handling (opens in a new tab)

Make recovery part of the demo

Replay the same event twice and show that only one ticket link is created. Interrupt the target service, restore it, and demonstrate safe recovery. Measure delivery lag and the proportion of events needing manual review.

For the AI step, score category accuracy and invented facts on a small labeled set. Include at least one incorrect suggestion and how a reviewer corrects it. Explain why a simpler rule-based baseline might be preferable for some categories.

How to describe it on your resume

Developed a CRM-to-support integration prototype with idempotent processing and audited AI triage; tested [N] replay and failure scenarios, achieving [measured result].

Use only after completing the work. Replace brackets with your own evidence. Label independent, prototype, and synthetic-data work accurately; do not invent customers or business impact.

Make it useful

Your next step

Record a three-minute demo that deliberately breaks a dependency. Include the failure, the recovery, and the audit record, not only the final green status.

Explore FDE roles