I understand this point of view. Unfortunately, for those who entered computing out of a passion for it, it’s difficult to work for employers or managers where computing isn’t a passion. This leads to all sorts of practices that suck the joy out of programming (e.g., Leetcode, meetings, KPIs, PIPs, certain design decisions, etc.), reducing it to a corporate “monkey dance.” Maybe I have rose-colored glasses, or maybe I’m simply expecting too much from employment, but it seems to me that back in the 80s and 90s there was a lot more passion in the field compared to today. The pressure and the constraints are enough to make me want to change occupations at times away from computing and treat it as solely a hobby or as a side venture, except I can’t think of any other occupation that pays enough to live in America’s expensive cities that doesn’t require returning to graduate school and getting into five or six more figures of debt for a professional degree.
You can work with passionate people. You can work for a large corporate, for a huge paycheck and stock options. Pick one.
I work for a small company, and I make a great living, but it's a fraction of a fang salary, and there is no stock to option.
On the upside I'm responsible for my code base, I work on whatever I like, (which largely overlaps with customer needs since I like getting paid.) I rarely have a zoom meeting [1], I have in-person catch-up with colleagues once a month, usually at a restaurant over a meal.
The rest of the time we gave informal chat, we push the boundaries of the possible, we experiment, try out big ideas,and generally it's still enough fun to get me out I bed in the morning.
[1] I have a few corporate customers. They exist to remind me why I don't work for a corporate. We have a weekly zoom catchup meeting. Their two lead programmers go from meeting to meeting. Its hilarious and I mock them ceaselessly for it.
But they get paid a lot more than I do, and frankly they're welcome to it.
I hear you and share the sentiment (for the most part). I don't understand what's with leetcode. Granted it's not the best for way to judge the capabilities of a programmer, but then what is? A design round can be gamed as much as an algorithmic round can be. At least with leetcode, people become aware of different ways of thinking. By different ways, I don't mean different algorithms. I mean, given a base set of capabilities (algos), how to use them effectively to solve a much more diverse set of problems. This kind of pattern almost always exists in my day to day job. The constraints are limited, and I need to figure out an effective way forward.
It’s not Leetcode in of itself that I hate; in fact, I enjoy programming challenges such as Project Euler and Advent of Code, and I occasionally read my Knuth volumes for fun. It’s the interview process that sucks the fun out of it, where you have to compete against those who just seem to eat, sleep, and drink Leetcode. It reminds me of my high school days when I stressed out over grades and SAT scores. I understand that for highly-desirable companies there needs to be some mechanism for culling the mass number of applications they receive, but when just about every company seemingly asks difficult Leetcode questions even if the job doesn’t require sophisticated algorithms, it’s very demoralizing. I’m getting tired of monkey dancing and I’m researching alternative ways of making a living.
Unfortunately that's true. I think he companies can ask interesting questions that are not in leetcode, but it's basically a game where the companies make up new questions and they get added to leetcode. I don't think any company wants to spend their employees fighting a battle that's not worth it.
Leetcode is actually one of the things that makes me feel energized about programming... it's just the pure problem-solving part without logging, legacy software constraints, tedious debates about code styling, and the other lame parts of the job.