Hiring people is hard work. Trust me, I get that. I've interviewed and hired over 50 people over the course of the years. From adminstrative assistants, general or skilled labor to incredibly talented developers, I've seen all ends of the spectrum.
Often companies will use some sort of test project to determine a candidate's skillset. I ran across this test on ycombinator and thought, what the heck, I'll give it a shot.
The test starts with the instructions, curl http://challenge.shopcurbside.com
Which returns:
On the right track. You can start here: "/start"Simple enough, let's get that response:
{ "error": "\"Session\" header is missing. \"/get-session\" to get a session id." }Okay, we need a session...kinda strange to throw an error when doing as directed.
d1490eb234964ec5bd20fb36f073066
I'll skip ahead here a bit, but each token is good for 10 requests. Re-requesting /start
returns:
{ "depth": 0, "id": "start", "message": "There is something we want to tell you, let's see if you can figure this out by finding all of our secrets", "next": [ "34ffe00db65f4576b5add43dda39ff99", "ebdf4d2f11514626a1b07d745d4a0fc6", "64bbc0003e824075ad59fb5cfaaac4cd" ] }
Aha, given the depth
remark and the next
key I can guess that this is going
to be a list of URL's, each with it's own list of URL's ( node tree ).
So I wrote a quick recursive node iterator to visit all the URL nodes. At the depth of 4 each node looked like this: (the class I used to do this parses the json to an array)
[depth] => 4 [id] => d9f9a7c4ac0a48959f0de596c91ee90b [secret] => A
For the curious, here's an output of the entire node map.
{{ nodes | json }}
So, the secrets are 4 nodes deep. If we only care about the secrets we get:
Apply systemd@shopcrbside.m with r code
So there you go, send an email to systemd@shopcrbside.m to apply for their sneaky job.
Below you can view the PHP model's dump with the raw data. Alternatively F12 will open
developer's tools in Chrome and you can access the data through the NodeMap.nodes
Vue object
Scraper {#268 #fillable: array:14 [ 0 => "title" 1 => "createdOn" 2 => "type" 3 => "description" 4 => "skills" 5 => "duration" 6 => "engagement" 7 => "amount" 8 => "client" 9 => "category2" 10 => "relevance" 11 => "subcategory2" 12 => "tierText" 13 => "recno" ] +headers: array:1 [ "headers" => array:1 [ "session" => "80688e00f8c1471e837804dcb11c299b" ] ] +prefix: "http://challenge.shopcurbside.com/" +counter: 83 +message: "" +bag: array:3 [ "34ffe00db65f4576b5add43dda39ff99" => array:3 [ "81dd32039f2f4bfea3ab35f40c994a0e" => array:4 [ "a2b07e1917cd4d03aa8557f0ee982e80" => array:4 [ "d9f9a7c4ac0a48959f0de596c91ee90b" => array:3 [ "depth" => 4 "id" => "d9f9a7c4ac0a48959f0de596c91ee90b" "secret" => "A" ] "849e7b590222402ca8a3610c7d389b19" => array:3 [ "depth" => 4 "id" => "849e7b590222402ca8a3610c7d389b19" "secret" => "p" ] "4d1ff41945684f4e876b3635ab8ecb04" => array:3 [ "depth" => 4 "id" => "4d1ff41945684f4e876b3635ab8ecb04" "secret" => "" ] "c872e3bad7d34c83b5754dc8e045b99a" => array:3 [ "depth" => 4 "id" => "c872e3bad7d34c83b5754dc8e045b99a" "secret" => "p" ] ] "998e40abd4c14993b3a06880e03a5106" => array:3 [ "ca8c4f6a85f54e83a1ca4e5856648bb9" => array:3 [ "depth" => 4 "id" => "ca8c4f6a85f54e83a1ca4e5856648bb9" "secret" => "l" ] "3ad41bc973fe41b7985df00f2e1a3fb9" => array:3 [ "depth" => 4 "id" => "3ad41bc973fe41b7985df00f2e1a3fb9" "secret" => "y" ] "246773871efb453f82ba67a43f0881ae" => array:3 [ "depth" => 4 "id" => "246773871efb453f82ba67a43f0881ae" "secret" => " " ] ] "d587883b577046bcbba08841bbf5aae0" => [] "2a5a561f61854a16a9bd2cd08ed13106" => [] ] "adad9a3a96464d2ba2977d9863e33794" => array:4 [ "64875d1faca6400ab593bcedac2d7636" => array:4 [ "fe7da41bd34a4e98b2e47f854c8602ed" => array:3 [ "depth" => 4 "id" => "fe7da41bd34a4e98b2e47f854c8602ed" "secret" => " " ] "99da76a408b74c1ab2db215f489728e7" => array:3 [ "depth" => 4 "id" => "99da76a408b74c1ab2db215f489728e7" "secret" => "" ] "18b4ff58700147ce90be34984f4468a6" => array:3 [ "depth" => 4 "id" => "18b4ff58700147ce90be34984f4468a6" "secret" => "s" ] "a64f53cbea064fa691865b39a462d8ba" => array:3 [ "depth" => 4 "id" => "a64f53cbea064fa691865b39a462d8ba" "secret" => "y" ] ] "7a9d86a02ae24e14ac5fefc1ced2c4b0" => array:4 [ "d924f17494de4176a6eae2d785b4e219" => array:3 [ "depth" => 4 "id" => "d924f17494de4176a6eae2d785b4e219" "secret" => "s" ] "a042f712b01748fe8041445ba6b82536" => array:3 [ "depth" => 4 "id" => "a042f712b01748fe8041445ba6b82536" "secret" => "t" ] "895aff50f2fa4187a9896051e2d0c2f4" => array:3 [ "depth" => 4 "id" => "895aff50f2fa4187a9896051e2d0c2f4" "secret" => "e" ] "5ba29b3fe5b146e0a92f315a3f3504bf" => array:3 [ "depth" => 4 "id" => "5ba29b3fe5b146e0a92f315a3f3504bf" "secret" => "m" ] ] "0645cee3345f4d40846f2ba7dc88ba64" => array:4 [ "ae5ba4ef07c94a399ceb02ee761ddedb" => array:3 [ "depth" => 4 "id" => "ae5ba4ef07c94a399ceb02ee761ddedb" "secret" => "" ] "8f65c959320a47feae0d0063344c76fe" => array:3 [ "depth" => 4 "id" => "8f65c959320a47feae0d0063344c76fe" "secret" => "d" ] "94dbc3233c334b0b8266a7ba0f19e42c" => array:3 [ "depth" => 4 "id" => "94dbc3233c334b0b8266a7ba0f19e42c" "secret" => "@" ] "01ee7ebdf55b4fc0b2ee3910108c793e" => array:3 [ "depth" => 4 "id" => "01ee7ebdf55b4fc0b2ee3910108c793e" "secret" => "s" ] ] "64773235a47646f5b5ab4de50496785e" => array:4 [ "292831e230e54ba8926f090f2f0ad0a9" => array:3 [ "depth" => 4 "id" => "292831e230e54ba8926f090f2f0ad0a9" "secret" => "h" ] "8b4ce51ef5694d3ea5c71ec46375365c" => array:3 [ "depth" => 4 "id" => "8b4ce51ef5694d3ea5c71ec46375365c" "secret" => "o" ] "2aa640e7474b4205a929657f663a6852" => array:3 [ "depth" => 4 "id" => "2aa640e7474b4205a929657f663a6852" "secret" => "p" ] "67814ca017fa4079ba5a7d213352993d" => array:3 [ "depth" => 4 "id" => "67814ca017fa4079ba5a7d213352993d" "secret" => "c" ] ] ] "33aaccd7d4fe40019160c49b689c7358" => array:4 [ "89b5a1b82e294744a032bfdd29eadf5d" => [] "8b0c3c74ea0044988351a75453578780" => array:3 [ "2ef84fd95ac94208b4fb14cab480ea11" => array:3 [ "depth" => 4 "id" => "2ef84fd95ac94208b4fb14cab480ea11" "secret" => "r" ] "0b2b36fe3a3e4af682e3acb392fdb8a0" => array:3 [ "depth" => 4 "id" => "0b2b36fe3a3e4af682e3acb392fdb8a0" "secret" => "b" ] "8b2888c1c53343769b4cc1da92b1fcf3" => array:3 [ "depth" => 4 "id" => "8b2888c1c53343769b4cc1da92b1fcf3" "secret" => "s" ] ] "cc6be866bd1d437cbd36cb4ba1c1b382" => array:4 [ "ae5b91529bd948c98ecd69b15dc555b3" => array:3 [ "depth" => 4 "id" => "ae5b91529bd948c98ecd69b15dc555b3" "secret" => "" ] "74979f3769814910bf36922a40308892" => array:3 [ "depth" => 4 "id" => "74979f3769814910bf36922a40308892" "secret" => "i" ] "789b7463fe3544b28ca0b3da19cc34f1" => array:3 [ "depth" => 4 "id" => "789b7463fe3544b28ca0b3da19cc34f1" "secret" => "d" ] "f896bfdb57ff4db7981415ef871e36a8" => array:3 [ "depth" => 4 "id" => "f896bfdb57ff4db7981415ef871e36a8" "secret" => "" ] ] "38e2cc79462e4a049f3eaf0a9ad75b32" => array:2 [ "29fe5c573b164f688130c6503d99b7b1" => array:3 [ "depth" => 4 "id" => "29fe5c573b164f688130c6503d99b7b1" "secret" => "e" ] "37f52604954147c19bb58e1285bb39e2" => array:3 [ "depth" => 4 "id" => "37f52604954147c19bb58e1285bb39e2" "secret" => "." ] ] ] ] "ebdf4d2f11514626a1b07d745d4a0fc6" => array:4 [ "5adce37592d8468fa379173d75ef59c1" => [] "7b3cff269d804f8e9f549eefca62e5aa" => [] "15c7fbdec5d64551aa6ef61c819f4589" => array:2 [ "d4ef21679b7343ed80c79e401a76bd62" => array:3 [ "c6ea1e9e32b347a2afb9eb022b2d6915" => array:3 [ "depth" => 4 "id" => "c6ea1e9e32b347a2afb9eb022b2d6915" "secret" => "m" ] "2cf86c6905fb418093eeb98d127bf75e" => array:3 [ "depth" => 4 "id" => "2cf86c6905fb418093eeb98d127bf75e" "secret" => " " ] "8f039a062cfe463db289c8028e43c1aa" => array:3 [ "depth" => 4 "id" => "8f039a062cfe463db289c8028e43c1aa" "secret" => "w" ] ] "eaae672a574b45c89332dbf3e95c3f70" => array:3 [ "453d14a1da3644378e68e767ffff8565" => array:3 [ "depth" => 4 "id" => "453d14a1da3644378e68e767ffff8565" "secret" => "i" ] "974f5e7694334040ab3406623ac17efa" => array:3 [ "depth" => 4 "id" => "974f5e7694334040ab3406623ac17efa" "secret" => "t" ] "81f49b81ebf947bda317b870a822ea83" => array:3 [ "depth" => 4 "id" => "81f49b81ebf947bda317b870a822ea83" "secret" => "h" ] ] ] "65230e87d62c44fba70709d78a679e7e" => array:2 [ "c25ef4bcb14c4bff99d2439f84565ee1" => array:3 [ "1f55182edfb542079aaadf0d5aac4dae" => array:3 [ "depth" => 4 "id" => "1f55182edfb542079aaadf0d5aac4dae" "secret" => "" ] "f3a58eeecfb640719d130689bb9187d8" => array:3 [ "depth" => 4 "id" => "f3a58eeecfb640719d130689bb9187d8" "secret" => "" ] "6460a7c813f64d0384bafdec1e703d9b" => array:3 [ "depth" => 4 "id" => "6460a7c813f64d0384bafdec1e703d9b" "secret" => " " ] ] "98502735911c439980d93555668f75ee" => [] ] ] "64bbc0003e824075ad59fb5cfaaac4cd" => array:2 [ "abbca2c365f54160a9ba4c9061081f3c" => array:3 [ "27fec2bc9ac445b49841d391dc2e5fea" => [] "c76634700826400090dac3cb299e03fb" => [] "59066beb05e24c8d87e7aba29e3a6bad" => array:2 [ "028fefb27d864f6f8bc45e1ba1ec7dfd" => array:3 [ "depth" => 4 "id" => "028fefb27d864f6f8bc45e1ba1ec7dfd" "secret" => "r" ] "051e1d0fe23f4585b9d11ce33e04e110" => array:3 [ "depth" => 4 "id" => "051e1d0fe23f4585b9d11ce33e04e110" "secret" => " " ] ] ] "b177d7118b564153822bc7b59a0faf0e" => array:2 [ "358b6c639b4f41cdbc6238f7c2c286cc" => array:3 [ "11dce9a3160d4059bcfc042befabbd8a" => array:3 [ "depth" => 4 "id" => "11dce9a3160d4059bcfc042befabbd8a" "secret" => "c" ] "9eb1e429c4e24b92ab1450e47a19fbca" => array:3 [ "depth" => 4 "id" => "9eb1e429c4e24b92ab1450e47a19fbca" "secret" => "" ] "9b17cf45b3e241c78ef25a737ff0b03a" => array:3 [ "depth" => 4 "id" => "9b17cf45b3e241c78ef25a737ff0b03a" "secret" => "" ] ] "e0c3b332ae5647e283884ad7368fb33b" => array:3 [ "cd700a6084fd4071a21c1ad70101352a" => array:3 [ "depth" => 4 "id" => "cd700a6084fd4071a21c1ad70101352a" "secret" => "o" ] "075c365611f149c9991dd01e06b9a39b" => array:3 [ "depth" => 4 "id" => "075c365611f149c9991dd01e06b9a39b" "secret" => "d" ] "997fc05d588b4f1da8f6d1948a78a41e" => array:3 [ "depth" => 4 "id" => "997fc05d588b4f1da8f6d1948a78a41e" "secret" => "e" ] ] ] ] ] +results: null #connection: null #table: null #primaryKey: "id" #perPage: 15 +incrementing: true +timestamps: true #attributes: [] #original: [] #relations: [] #hidden: [] #visible: [] #appends: [] #guarded: array:1 [ 0 => "*" ] #dates: [] #dateFormat: null #casts: [] #touches: [] #observables: [] #with: [] #morphClass: null +exists: false +wasRecentlyCreated: false }