Thanks a lot for the article and sharing your experience.
2 comments on the code. It would be way more efficient to use a linked list instead of an array to implement a queue. The problem with an array in Swift is that when you do insert(at: 0) it will shift the memory of all the data following which makes the operation O(n). Though as you wrote it, maybe Facebook folks are not be interested in that, just felt like it was worth mentioning.
The other small comment is that you could return an optional in your dequeue method of Queue, by using popLast instead of removeLast. It would simplify your code afterwards and prevent you from crashing if you forget to check first that your queue is empty.