It's not healthy when an industry makes it extremely hard (grind for months) for staff+ candidates to switch companies and expects them to prove themselves every single time. Not sure if other professions have similar strategies. Again, I've accepted it but this needs to be said.
Also, you mention "a few relaxed months doing some closed-form problems". Sorry, they're not relaxed at all. You've to find time to do them after work when you're tired + need to ensure you can remember the patterns.
Interviewing gets discussed a lot here. Very little actually gets improved. If you want a (1) high paying job (2) and want to work on products that scale to millions, there's just no way you can escape leetcode style interviews. I've 2 decades of experience and have resisted it for sometime, but eventually gave in. These companies have way too many candidates to filter, so unless you're one of those inventors of popular frameworks like Tensorflow/Pytorch, you've to go through the grind. And with the popularity of blogs/tutorials/coaching classes the bar is only increasing. 2 medium problems in 30 mins is not a joke unless you've solved the same problems before or solved hundreds to quickly decipher the patterns. All this really breaks the back of staff/sr. staff level folks who rather choose to stay where they are even if that means lesser pay.
Not disagreeing with you. Just saying that this is what it is. Either we learn to play the game or we don’t. These endless articles about the state of interviews in our industry might provide some solace temporarily but don’t change the fact.
If you care about making more money put your head down and grind those leetcode problems. The investment is just a few months and the return is quite impressive. Others are either happy where they are or read about how interviews suck. As Bjarne Stroustroup said "There are only two kinds of languages: the ones people complain about and the ones nobody uses".
Agree. Todo lists are ephemeral. They're not meant to be stored and archived. Just write the list already, execute the items in the list and move on. Focus on getting things done rather than creating new formats for these ephemeral lists.
From the README, "This is no longer an active project at X" ==> (implies) ==> We don't care about it any more, so we're dumping it here. Do what you want :-)
Martin's writing and explanation style is truly awesome! I read his book DDIA (Designing data intensive applications) and listened to his distributed systems class lectures [1]. It was a joy learning. I wish I had him or someone like him in graduate school. I would've probably taken all his courses :-).
I'm a fan of text files. But many times you just want to capture the image and store it. For e.g. a bills/receipts. Secondly, the article doesn't talk about syncing - may be onedrive/dropbox? what are some good solutions here? Third, how do you do this (writing/editing notes) on a mobile phone?
* RVO has always confused me. It was much simpler in the C++03 days. Copying large objects by value was inefficient. So you always used references. Period.
* Don't fully agree with the commentary on exceptions; it's the same in most other languages if you want resources to be freed/given back.
You've to be a genius to solve a "hard" unseen leetcode problem in 15 mins correctly. Facebook is notorious at expecting candidates to regurgitate solutions to problems in 15 mins. Intelligence plays a lesser role than exhaustive and painful practice which involves solving the same problem multiple times. It's a full-fledged examination that expects you to excel while being constantly watched and judged.
Genuinely curious - why should I care about Nim? There are already a plethora of general purpose languages (both compiled and interpreted). Also, is anyone using Nim today? What's the adoption?
How many more articles do we need to drive this point home? First it was a fashion to develop using microservices. Now writing about not using them is in vogue :-).