TL;DR is that I’m back in the job market, contract or full-time. Hit me up if interested.
A little over a year ago, I moved to Facebook to work again on mesh networks, among other things. This has mostly been a great experience: we have built some very large networks in parts of the world that were sorely lacking infrastructure, and we did it all on relatively low budget. The project continues and has been a great success in my book.
What has followed since then has been one of the more bizarre  encounters with big company bureaucracy of my career. Due to annoying residency details, all this time I have been working on a contract basis (“Contingent Worker” in Facebook parlance). My contract term, after a couple of extensions, was due for another renewal a few months ago. My manager suggested that I could transition to full time and do the same work with more benefits, get off the contract renewal treadmill, etc., and so I studied up and traveled to California for a six hour interview, and passed at level E6 , which came with a salary multiplier several times my going rate.
Then came news that, after being told I would need to take 2 weeks of on-site “bootcamp,” it would instead be 3. And then 5. And then 6 weeks, but I can fly back on weekends (this, the week before I was all set to leave, flights already booked). Then came news that, because I live in Canada, oh whoops, I cannot actually transition to full-time (but feel free to move to California!). So flights canceled and back on the contract I go, which gets extended another few months with hints that it would probably be extended again. 
Then came news that, after being told that the next contract extension was fully approved (with a rate increase!), that I have been here too long according to Facebook policy, and no, I cannot actually extend my contract, without waiting a year. The timing for this is pretty terrible; just a week ago I turned down a competitive offer from Amazon , having understood that my extension was a done deal.
There’s no malevolence here as far as I know. Things are always a bit weird working as an American, remote from Canada. There are two labor (labour) systems to deal with, twice as many laws and twice as many tax headaches. Yet, until now I have been able to mostly work inside these systems, or at least have been politely told “no thanks” up front. It’s hard to make plans when the story is “probably.” Things are still in flux; who knows, it might all still work out, but I am tired of hitting that wall.
 I use this word carefully, having used up most of the swears already.
 Let me state for the record that I hate the current state of technical interviews. Leetcode problems can be fun, sure, but working them out on a whiteboard under ridiculous time constraints seems completely unrelated to day-to-day work. Can we just stop this practice? It’s more a test of how many leetcode problems you did in the preceding weeks — which in my case was a lot. Also, my whiteboard code winds up being much more academic than normal: every loop somehow becomes a recursive call. And I don’t even like functional programming. I just can’t help it, sorry.
 This state of affairs has caused no end of confusion for Facebook systems that still think I’m joining the company. At some point every internal account of mine got deleted with no warning and I had to physically go downtown to unbreak things. I just got an email _today_ welcoming me as an employee to Facebook, a bit of a slap in the face since I also just learned that I’ll be out of here within the month.
 The day I got locked out of all the systems was the day I sent my resume around.