I guess this boils down to difficulties in building strong relationships remotely. I would definitely recommend traveling occasionally to build relationship with your remote folks.
Some stuff you can build to learn more about distributed systems (you can start simple, do research, and then iterate to build a more comprehensive solution): build a distributed file system, a distributed lock server, a consensus algorithm (paxos, raft, etc.), two/three phase commit protocol, distributed hash table, etc.
I haven't seen such bullshit for a long time. Lots of negative claims with no serious data backing up any of these claims looks totally bullshit and amateur.
I would always choose the company with smarter people, it will be better in the long run I think (learn from them, push your limits, grow your network with smart people and their network, etc.)
>> simply practiced interview questions for about three to four months, every day, from morning till night. I then had three phone interviews around November, which I passed.
It's interesting (& funny) to see both high schoolers and experienced people spend similar amount of time (~several months) practicing for these types of technical interviews.