I sometimes get requests from LinkedIn contacts about help deciding between job offers. I can't provide personalize advice, but here are my thoughts in general.
You must accept personal ownership for choosing what you want to do with at least the next few years of your life. Nobody can do this for you. Some luck is always involved, but fortune favors the prepared. It is up to you to set your own course.Years of your working career are a scarce, non-renewable resource, so spend care in deciding. On the other hand, it is difficult to make a choice because, as they say, it is difficult to make predictions -- especially if they're about the future. It's even harder to foresee consequences, especially on your first couple jobs when you are learning how everything works. And there are always surprises, even for the most experienced of us. But if you end up making a choice that works out poorly, then figure out the lesson to learn and switch to something else.
Take a look at how the job fulfills or supports your needs on Maslow's Hierarchy (https://en.wikipedia.org/wiki/Maslow%27s_hierarchy_of_needs). Some of us live to work; some work to live. There is no one right answer, but at least this gives you a simple checklist of what you want to be provided by the job -- and what you don't. If you're signing up for a 12 hour x 7 day type job, it had better go a long way to filling up that pyramid in an acceptable, non-destructive way while you're at work, because you'll always be at work. (And that might be OK for some people in some phases of their career. But not for others.)
All organizations have dysfunction. Figure out if this organization's dysfunctions are going to be irritating to you or get in the way of satisfying your hierarchy of needs. Most people can stand an irritating environment less well than they think they can over long stretches of time.
When you're young, there is a lot to be said for working in a structured, mature organization. You can learn a lot by watching how experienced folks work rather than by making rookie mistakes (if you are paying attention). Later on you might want less structure. Skipping right to an unstructured job at an immature company will teach you a lot of bad habits that it can take a lifetime to unlearn, and leave many holes in your practical education. (Some jump right to a startup company with no "graybeards." Some skip college. Some get rich by winning the lottery. Some don't. I can only tell you how to stack the odds in your favor.) Consider the availability of mentors in your new position. Even the smallest, newest of startups can work for this if the mentorship is there.
Ask if the level of responsibility & authority is a fit both in terms of scope and structure. My experience has ranged from military officer (highly structured) to consultant (freedom but few safety nets unless you've already built up a big cushion toward retirement). Where you want to be will likely change as your career progresses.
Read the general job hunting advice books/web sites for things such as the realities of accepting a low paying first job and trying to get raises later. The classic book is "what color is your parachute," but no doubt there are others, keeping in mind that highly skilled workers are a bit different than the general work force. It helps to have a realistic understanding of what you are worth, and to get some objective advice from someone you trust on whether you're getting taken advantage of in a job offer.
After you've considered the above, IMHO only then should you worry about the more common philosophical areas you see mentioned on this topic. (And really, most of them end up on the upper levels of Maslow's Hierarchy.) My personal preferences are:
- Surround yourself with the smartest, most capable people you can. But stop short of jerks. Note that any company with a "no jerks" policy is making a relative statement to their existing staff, rather than an absolute measurement. Pay attention during the interview to this.
- Work for good leaders that support and empower those who work with them.
- Take advantage of any opportunity you can get to improve your communication skills and soft skills.
- If you're taking a job purely for the money, go into that situation with an exit plan and target exit date. Make sure that is really how you want to spend a part of your life -- but in some circumstances this can be the right move.
- If you're stressed out, it's time to find a new job. (Or re-invent your job from within.)
- If you're stressed out about your career, it's time to reinvent yourself and find a new career.
- I personally think the whole LeetCode interview process is nothing more than ritualized hazing. More than a two-round interview process is another caution sign unless you are signing up for an extremely senior position. Anyone with a strong GRE score (or top-tier SAT score) has already sacrificed at the altar of preparing for a required hoop sufficiently, and that probably taught them more generalized skills. But apparently others disagree on this point.
- If you strive to be the absolute best at what you do, opportunities will find you. (Being visible helps: speak at conferences, write something that people might see somewhere.)
- If most days you wake up and are eager to get to work, reflect on how fortunate you are to have that.