Build a Shareable Immutable List for a Real-Time Document Editor
Overview
What this challenge is about.
Build a Shareable Immutable List for a Real-Time Document Editor. Advanced challenge in code. Writing production code that solves real engineering problems, ...
The Brief
What you'll do, and what you'll demonstrate.
Build a persistent immutable list whose every edit produces a new version cheaply by sharing structure, validated against the built-in list and benchmarked at three sizes.
This is not a coding exercise. It is the work a software engineer does between a Jira ticket and a merged PR. That distinction matters to every hiring manager who has seen candidates solve LeetCode problems and none who have shipped production code under real constraints.
When you finish, you will have something most graduates do not: a real-world deliverable, verified by Ewance, that you can show to a hiring manager and say "I did this. Here is the proof."
Earning criteria — what you'll demonstrate
- Design and implement a persistent immutable data structure using structural sharing rather than copy-on-write
- Express list operations recursively over a wide, shallow branching tree to keep per-operation cost proportional to depth
- Validate a data structure against a trusted reference using property-based and fuzz testing
- Benchmark and interpret time and memory behavior across multiple orders of magnitude of input size
- Communicate a non-trivial abstraction clearly to engineers without prior background
Program Fit
Where this fits in your program.
Sharpens the same skills your degree expects you to demonstrate.
Aligned coursework coming soon.
Skills
Skills you'll demonstrate.
Each one shows up on your verified credential.
- Data Abstraction
Apply data abstraction to solve real industry problems and demonstrate production-level capability.
- Recursion
Apply recursion to solve real industry problems and demonstrate production-level capability.
- Persistent Data Structures
Apply persistent data structures to solve real industry problems and demonstrate production-level capability.
- Python Programming
Apply python programming to solve real industry problems and demonstrate production-level capability.
- Benchmarking
Apply benchmarking to solve real industry problems and demonstrate production-level capability.
- Abstraction
Apply abstraction to solve real industry problems and demonstrate production-level capability.
Careers
Career paths this challenge builds toward
Completing this challenge demonstrates skills that transfer directly to these roles:
Backend Engineer
Shipping a versioned, immutable data structure under a collaborative editor is exactly the kind of correctness-critical infrastructure backend engineers own; you practice designing the abstraction, implementing it recursively, and proving it correct before it underpins production features.
This challenge sharpens
- persistent-data-structures
- recursion
- python-programming
Platform / Infrastructure Engineer
Platform teams build reusable primitives other engineers depend on. Here you design a clean list abstraction and benchmark it rigorously across scales, mirroring how infrastructure work balances a tidy interface against measured performance at real-world sizes.
This challenge sharpens
- data-abstraction
- abstraction
- benchmarking
Performance Engineer
Measuring time and memory across three orders of magnitude and explaining why structural sharing pays off is core performance-engineering work, turning intuition about cost into reproducible evidence and clear trade-off communication.
This challenge sharpens
- benchmarking
- persistent-data-structures
- python-programming