Plaid Software Engineer Interview Experience — A New Rule-Chain Validation Question in the Screen

Plaid·Software Engineer·Aug 2026
Technical Screenmedium

Unfortunately I ran into a question that wasn't posted here before. This was a few weeks ago, and the interviewer was a woman.

Question: Chain Validation

The system has a set of validation rules. Each rule has two fields:

[rule name, result]

The result can be one of three things:
"pass" — the rule passes
"fail" — the rule fails
the name of another rule — meaning the final result of the current rule depends on that other rule

For example:

rules = [ ["rule_A", "pass"], ["rule_B", "rule_C"], ["rule_C", "fail"] ]

Here:
rule_B -> rule_C -> fail
so rule_B's final result is also fail.

You need to implement two functions.

  1. isValid
    Check whether the input is valid.
    isValid(rules) -> boolean
    For each rule [name, result], result must be:
    "pass", "fail", or the name of another rule that exists in the input.
    Return true if every rule satisfies this; otherwise return false.

For example:

[ ["rule_A", "pass"], ["rule_B", "rule_C"], ["rule_C", "fail"] ]

returns:
true

While:

[ ["rule_A", "rule_X"] ]

returns false, since rule_X doesn't exist.

  1. isEligible
    Check whether the entire input ultimately resolves to all pass.
    isEligible(rules) -> boolean
    If a rule's result is another rule, you need to keep following the reference until you get either:
    pass or fail.
    Only return true if every rule ultimately resolves to pass.

For example:

[ ["rule_A", "pass"], ["rule_B", "rule_C"], ["rule_C", "pass"] ]

Resolves to:
rule_A -> pass
rule_B -> rule_C -> pass
rule_C -> pass
So: isValid -> true, isEligible -> true

If instead:

[ ["rule_A", "pass"], ["rule_B", "rule_C"], ["rule_C", "fail"] ]

then:
rule_B -> rule_C -> fail
so: isValid -> true, isEligible -> false

Addendum (2026-08-20 01:21 +08:00): I interviewed for the mid-level role. The first two rounds were coding, and another round was a question that's already been posted here before.

Published

Curated and edited by PracHub

Practice the questions from this interview

Discussion

Sign in to join the discussion. The author is notified of every comment.

Loading comments…

Interview at a glance

Company
Plaid
Role
Software Engineer
Rounds
Technical Screen
Difficulty
medium
Interview date
Aug 2026
Questions from this interview
1 question

Real Plaid interview experiences

First-hand reports from Plaid candidates — the rounds, the questions they were asked, and how it went.

All 13 Plaid interview experiences