DEV Community

net programhelp
net programhelp

Posted on

Persona OA Ultimate Guide! Codesignal 90-Minute 4-Question Full Breakdown (OOD + System Design Practical Version)

Just finished Persona’s OA — and it’s truly different from traditional LeetCode-style algorithm rounds.

The entire assessment is 90 minutes with 4 questions, following a level-unlocking system (you must finish one level to unlock the next).

It heavily focuses on Object-Oriented Design (OOD) + practical system design implementation.

A lot of code, but very passable once you structure your thinking clearly.

This guide fully breaks down real question patterns, key concepts, and step-by-step solving strategies you can use as your exact prep template.


I. Persona OA Core Information

  • Platform: Codesignal
  • Duration: 90 minutes
  • Format: 4 questions, divided across 4 sequentially unlocked levels
  • Style: Scenario-based OOD + simplified system design (not pure algorithms)
  • Similar To: Meta, Circle, Coinbase OOD-style OAs
  • Key Assessments:
    • Requirement clarification
    • API design
    • Data structure organization
    • Edge-case handling
    • Incremental system extension abilities

II. The 4 Levels — Real Question Patterns + Key Ideas + Critical Points


Level 1 — Basic File Operations

Core Requirements

Implement an in-memory cloud storage system with 3 basic interfaces:

  • add_file(name: str, size: int) -> bool
  • copy_file(name_from: str, name_to: str) -> bool
  • get_file_size(name: str) -> Optional[int]

How to Solve

  • Use a dict as the core file store.
  • Store file attributes as values—this allows extension in later levels.
  • Handle duplicates, missing files, and retrieval gracefully.

Key Points

  • Clean, consistent API design
  • Hash table (dict) fundamentals
  • Must cover duplicate and non-existent file scenarios

Level 2 — File Search by Prefix and Suffix

Core Requirements

Add two search functions:

  • find_by_prefix(prefix: str) -> List[str]
  • find_by_suffix(suffix: str) -> List[str]

How to Solve

  • Iterate over all file names.
  • Use startswith and endswith.
  • Handle empty prefix/suffix and return all files if needed.

Key Points

  • Straightforward string matching
  • No need for optimization (trie, indexing, etc.)
  • Maintain compatibility with Level 1

Level 3 — User Management + Quotas (Hardest Section!)

Core Requirements

Introduce user accounts + quota limits:

  • add_user(user_id: str, capacity: int) -> bool
  • add_file_by(user_id: str, name: str, size: int) -> Optional[int]
  • update_capacity(user_id: str, capacity: int) -> Optional[int]

How to Solve

Two new structures:

  1. User dictionary: stores quota, used capacity, and owned files
  2. Extended file dictionary: store size + owner

Critical Logic

  • Validate all failure scenarios for uploads
  • Enforce quotas
  • Implement a deterministic deletion policy:
    • Delete largest files first
    • If same size → delete lexicographically larger names first

Key Points

  • Linked data structures (file ↔ user)
  • Complex business logic
  • Must maintain consistency across all dictionaries
  • Most time-consuming level → plan accordingly

Level 4 — Compression & Decompression

Core Requirements

Extend files to support:

  • compress_file(name: str) -> bool
  • decompress_file(name: str) -> bool

How to Solve

Extend file metadata further:

  • Add is_compressed
  • Add original_size

Compression: halve size, mark as compressed

Decompression: restore original size

Also:

  • Update user’s used storage whenever size changes
  • Validate missing files or repeated compression

Key Points

  • Status flag management
  • Data synchronization across file + user structures
  • Incremental system extension

III. Critical Tips to Succeed (Battle-Tested)

1. Decompose requirements before coding

List:

  • What data structures are needed
  • Success conditions
  • Failure conditions
  • Edge cases

2. Design data structures for extensibility

Store file data as objects/dicts early — saves massive refactoring later.

3. Don’t over-optimize

  • Prefix/suffix search using simple iteration is enough.
  • Time should be reserved for Level 3.

4. Cover every edge case

Especially Level 3 failure scenarios:

  • User not found
  • Duplicate file name
  • Not enough quota

5. Practice OOD-style OA beforehand

Meta, Circle, Coinbase OAs are very similar.


IV. Preparation Resources & Pitfalls

Recommended Prep

  • Codesignal familiarity
  • Practice OOD/OA patterns
  • Rehearse dictionary-based data modeling

Common Pitfalls

  • Wrong deletion sort order in Level 3
  • Forgetting to update user storage when compressing/decompressing
  • Not tracking original file size

Persona’s OA tests your ability to iteratively build a system, not solve algorithm puzzles.

If you understand each level’s real intent and keep your structures clean, you can absolutely pass.


Need Extra Help?

Still struggling with OOD-based online assessments from top companies like Persona, Meta, Circle, Coinbase?

Programhelp is here to help:

  • Remote, seamless OA support (ensuring all test cases pass)
  • Real-time voice guidance during coding
  • Step-by-step reasoning assistance
  • Targeted edge-case reminders
  • Complete OA → Interview prep coverage

We help you break down complex OOD/system design questions, avoid hidden pitfalls, and breeze through your OA — bringing you one step closer to your offer.

Good luck!

Top comments (0)