← Perplexity AI Interview Insights

Perplexity AI·Software Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
May 2026

Summary

System design round at Perplexity AI for a software engineer role, centered entirely on building a Mint-like personal finance aggregator. It was one of the more sprawling design questions I've faced, touching everything from bank connectivity to PCI compliance to multi-currency support.

Questions Asked (1)

Q1

Design a personal finance aggregation platform like Mint. Walk through how you'd connect to banks and financial institutions, ingest transactions and balances, normalize and deduplicate data, handle categorization and budgeting, send alerts, manage reconciliation, secure user data, and support multi-currency and recurring bills at scale.

System DesignAPI & IntegrationsData Modeling
Author's notes

This question is basically five system design questions duct-taped together.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then design a high-level architecture that separates concerns: data ingestion, normalization, storage, and user-facing services. Walk through each component in depth, emphasizing trade-offs, security, and scalability, and tie back to how Perplexity AI could leverage AI for categorization and insights.

Pro tip: Show awareness of real-world constraints: bank APIs are unreliable and rate-limited, so design for idempotency, retries, and eventual consistency. Also, highlight how AI can enhance categorization and anomaly detection, aligning with Perplexity's focus.

1. Clarify Requirements and Scope

Ask about scale (users, transactions per day), supported regions/currencies, real-time vs batch processing, and compliance needs. This shows you think before designing.

2. High-Level Architecture

Outline main components: ingestion layer (bank connectors), data pipeline (normalization, deduplication), storage (transaction DB, user DB), services (categorization, budgeting, alerts), and security. Use a diagram if possible.

3. Deep Dive into Key Components

For each component, discuss design choices: e.g., for bank connections, use aggregators like Plaid or direct APIs; for ingestion, use message queues and workers; for normalization, define a canonical schema; for deduplication, use fuzzy matching and idempotent writes.

4. Address Cross-Cutting Concerns

Cover security (encryption at rest/in transit, tokenization), scalability (sharding, partitioning), multi-currency (store amounts with currency codes, handle FX rates), and reconciliation (matching transactions across sources).

5. Summarize and Discuss Trade-offs

Recap the design, highlight trade-offs (e.g., consistency vs availability), and suggest potential improvements or AI enhancements. Ask if the interviewer wants to dive deeper into any area.

Key Points to Mention

  • Use of aggregators (Plaid, Yodlee) vs direct bank integrations, and handling API rate limits and failures.
  • Data normalization: canonical transaction schema, handling different date formats, amounts, and descriptions.
  • Deduplication strategies: idempotent ingestion, fuzzy matching on amount/date/description, and using unique transaction IDs from banks.
  • Categorization: rule-based vs ML models, user feedback loops, and leveraging AI for improved accuracy.
  • Security: encryption (AES-256, TLS), tokenization of credentials, OAuth for bank connections, and compliance (PCI DSS, GDPR).
  • Scalability: partitioning by user, using Kafka for ingestion, and NoSQL for flexible schema; multi-currency support with FX rate services.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.