chalk·Software Engineer·Take-home Assignment
May 2026
Chalk gave me a take-home that was basically a mini metaprogramming framework in Python, three steps building on each other. Clever problem, felt more like a design exercise than a leetcode grind, which I appreciated. Took me longer than I expected to get the execution engine right.
- Implement a class decorator called `@features` that parses type-annotated class attributes into `Feature` objects, resolves forward references to actual types, and sets each annotated attribute to its corresponding `Feature` instance on the class.
- Implement a `@resolver` decorator that wraps a function in a `Resolver` dataclass, extracting its input `Feature` objects from parameter annotations and its output `Feature` from the return annotation.
- Implement an `execute` function that, given a dict of known feature values and a list of desired output features, chains together registered resolvers to compute the outputs.
“The forward reference part is where I stumbled.”