Stripe CTF3: level3
git grep is nice and convenient for finding code in a single repository on your current disk. Google Code Search, and now GitHub Code Search, have shown how great it is to be able to search across all of your code at once.
But what if you want to search across all of your on-disk code? Ideally, there’d be a tool which indexes all of it for you, allowing you to perform instant search. For very low latency (which would allow cool things like typeahead search), you might distribute that work across multiple machines.
Any guesses where this is going? :)
For this level, you’ll be building a distributed instant code search. We’ve provided a skeleton of a code search system written in Scala for you; it’s too slow for anyone to be happy calling it instant code search though. Your job is to get queries to complete with much lower latency.
One solution is to implement a path-sharded in-memory scan.
Other write-ups or solutions
- Gibybo’s write-up
- Jon Eisen’s write-up
- Evan Priestley’s write-up
- Samuel Walker’s write-up
- Solution in Node.js
- Burst trie implementation in Scala, used as part of the top-scoring solution
- 2nd place solution
- Original problems including a modified test harness that works locally