The Time a FB Recruiter Called

It began with a nice email. Is it embarrassing to say my heart actually started racing? We chatted briefly and set up a time to talk.

The first question I was asked was about CSS specification and different element weights. “Like, describing the algorithm css engines use to compute which style across the mess-which-is-css is applied?” I asked. “Because, to be honest, I don’t really care or worry about this. Tags, classes, and ids have various weights, but a few years ago, after being a frustrated css newb trying to memorize this and appease the specifications, I started employing css methodologies that severely limit the cascade and makes this a non-issue (eg, BEM, SUITCSS, CSS in JS, etc).” “Hm”, he said, “well to start, the correct weighted order is …” I honestly don’t remember, because I honestly don’t care.

The second question was about event delegation practices in javascript. I wasn’t exactly sure what this meant. I was thinking of observer patterns and pub/sub. “I’m not exactly sure what you mean” I said, looking for more direction on what he wanted me to talk to. “Oh”, he said condescendingly, “well users trigger events in the browser and they bubble up. Rather than attaching a listener each to 100 timers, you just attach one at the parent.” Oh I know that, I thought, wishing he just gave me a nudge that he was talking about event propagation in the dom.

The third question was about the difference in when you would use apply vs call. I haven’t used apply/call since the dawn of arrow functions. I searched my brain as to what would be a compelling difference today. “Well, with bind you could curry arguments to the function, whereas with call the function is invoked immediately.” Feeling the pressure to salvage the quiz, I had mistaken the question to be about bind vs call. “No. Apply is used with an array; call is used with individual parameters.”

The last question, “what is the big O of a balanced dom tree.” “I’m not sure the big O of a balanced tree.” Hint, always say log(n), even if its wrong it sounds smart. Because, lets be serious, that is what this type of question is about — how well did you engrain your notes from the academy — and not, “How have you solved perf a issue”, or “How do you evaluate data structures at work?” Or, “When is keeping a tree balanced a performant decision? Or, when is it not.”

“Well, I think we can both agree you’re not ready to move on. Maybe in a few years an occasion will arise.” And so was my experience with FB’s screening — old trivia questions and me tripping over my feet. Given the prominence of FB, I expected a screening that assessed more than rote trivia — can he/she solve problems, think critically, add value, bring out the better in others, be a team member, fail, succeed, overcome obstacles, write performant/modular/stable/testable code, take direction, subscribe to others’ best practices/architectural paradigms, know how/when to question them, etc. But here’s the thing — FB probably doesn’t care about this in the screening. So what if it has a high false negative, as long as it moves through *some* of the top of the crop (As an aside: And, wow, does it! I am blown away by some of the folks at FB!).

This isn’t to say I consider myself “top of the crop” — or anywhere near it. This isn’t the post of first tier developer who was the victim of a false negative. This is the post of someone who mistook FB for being a company that in hiring processes saw developers as persons on a path, not simply outside-of-time troves of trivia — to indicate success.

Here’s my experience, the experience of a person (who indeed had has a large warehouse of academic trivia, but not in this industry) — To a fault, I am relentless in learning and growing, and mercilessly compare myself with the best in the industry in solving problems. A few years ago I was working for a church fresh with a masters in theology graduating near the top of my class, a year early both from undergrad and grad programs, keen on exploring the big questions in life. With a baby on the way, and an understanding that ministry is rightly far more than theological discourses (and that I am pretty miserable at all the other stuff) — a developer position opened at a former classmate’s company, and he convinced them to take a chance on me. This first interview three years ago featured me thinking that `$` was an awesome native javascript feature, and `jQuery` an exposed keyword for an odd library that replicated most of the `$` native features. In the past few years, I have evolved and grown and failed and unrelented — all to the end of solving real problems and adding value — as a vital engineer at various companies. “A few years from now”? No thanks, FB. I carry a chip on my shoulder, and you will never be the one to witness the growth of this person.