Abstract-Interpretation-Based Configuration Validator for a SaaS Platform
Overview
What this challenge is about.
Define an abstract domain capturing relations between configuration fields (e.g. 'if billing.plan = enterprise then features.audit_log = true'). Implement an abstract-interpretation engine in Rust or OCaml that propagates value sets through the config-load logic. Encode 12 semantic invariants drawn from the 3 historical incidents (provided post-mortems). Validate against 200 customer configs (anonymized): the validator must flag all 3 incident-causing configs and produce under 5 false positives. Deliver source, the invariant catalog, validation results, and a 6-page design document covering the abstract domain choice and where the validator currently misses (e.g. invariants spanning more than 4 fields).
The Brief
What you'll do, and what you'll demonstrate.
Build an abstract-interpretation-based config validator that catches semantic invariants across 800 fields with under 5 false positives on 200 real customer configs.
Earning criteria — what you'll demonstrate
- Apply abstract interpretation to a real configuration-validation problem
- Design an abstract domain that captures the relations that matter
- Encode semantic invariants in a way the engine can propagate
- Communicate abstract-interpretation tradeoffs to a non-PL audience
Program Fit
Where this fits in your program.
Sharpens the same skills your degree expects you to demonstrate.
Skills
Skills you'll demonstrate.
Each one shows up on your verified credential.
Careers
Roles this prepares you for.
Real titles. Real skill bridges. Pick the one closest to your trajectory.
Career mappings coming soon.