I started writing a long post but think it can be summarised in a couple paragraphs…
Work life matters. Hence I think it’s important to find a company that aligns with your personal ethics and one where you’ll be working on something you already have a passion for or have a keen interest in. And then… find one where you and your potential colleagues are on ‘the same page’. Are they the sort of people you’d spend time with if you had the choice? The sort that would drive you insane or depress you? Aim high.
Just like in life, sometimes that mutual attraction will be there (they’ll want you to work for them as much as you want to work for them!) and sometimes it won’t. Don’t take it to heart if the feeling isn’t mutual - in those cases just remember that at that time in your life it wasn’t the right job for you… while at the same time use the experience to reflect and evolve, are you the sort of person you’d want to work with? Would you hire you? If not, what can you do to change that?
Some personal experience..
On the last bit, here are some things I have done which I believe has been the primary reason I have had a number of job offers from some really nice companies - even when I thought they massively over-estimated my skill level (one of the job offers was just months after I started learning Ruby and from one of the top Ruby shops in the US )…
Passion - do you have an insatiable desire for the topic? Have you read all the books you can get your hands on or cram into your schedule? The culture of learning is, I think, very attractive to companies, managers and co-workers. It makes them feel confident in you and the future version of you.
Share that passion. Blog, make screencasts, make cool things, organise meets, be active. Don’t be passive - want to get noticed? Be visible!
I’m not sure if the above helps, but I just wanted to share it because I can’t see any other reason why I would have been offered those jobs. (Did I take them? Unfortunately not - for various other reasons.) I also want to add that I wasn’t doing any of those things in the hope of job offers either just mentioning them because I think that’s what led to them and what might potentially help others. Do you agree they might? Disagree? Please say! (Actually, one of the CEO’s that contacted me specifically said they loved my passion and enthusiasm for the topic - so in my experience it definitely helped! But was it a fluke? Would it help more generally? The jury is definitely out on that one!)
Culture fit and company ethics are so fuzzy terms that they might as well be called metaphysics at this point. They are usually catch-all phrases that usually mean “you have to be, on a personal level, very much like the interviewers”. ¯_(ツ)_/¯
Pay is in top 3 priorities. I’d suspect that, given the choice, most people wouldn’t work at all (at least the first 2-3 years, then you get really bored and want to do something, paid or not). Pay is there to trigger our greed and tempt us to work hard. It’s also a widely accepted fact that people can accept pay cuts if they very much like other factors of the job proposition.
Zero interest. To me it even became a negative sign because I’ve seen perks being used as a negotiative leverage to argue against paying you your normal market rate. It’s one of the ways of subpar paying companies to try and stay competitive. I appreciate that some people find their approach tempting but I definitely don’t.
One of the most important things! So many claim they are “agile” yet you have to attend a daily standup. Whatever happened to “people over processes”?
In my eyes at least, if you are focused on (a) building trust and then (b) treat the person as an adult who is schedule-aware and scope-aware then you will attract top talent. It’s my observation that as tech specialists become older they value the way you treat them above everything else (me included). Treat people with distrust and you’ll end up with a bunch of 9-to-5 employees who won’t care if you go bankrupt tomorrow. But if you treat them with trust and respect then they will go the extra mile to help you, including work extra hours / weekends, temporarily taking extra responsibilities etc.
Trust trumps all.
To me remote is mandatory. I rarely if ever seen a truly compelling case for programmers to be on-site. There are areas where on-site is the only sensible option and I respect that. But it’s touted as a much more universal and widely needed work format than it actually is.
That you need to talk face to face to get things done quickly is a very persistent myth. In my previous Elixir job, I synced with my superior for 15 minutes twice a month. When inevitable questions arose here and there we were both very quick to respond in the company chat.
Only interested in terms of if their business looks sustainable and stably profitable to me. For example, “blockchain startup” or “we revolutionize team management” are a sure way to make me run away screaming.
Companies – do not use generalist slogans. People are flexible and will adapt to you.
Obviously many of us are positively biased in favor of Elixir here but even with that – tech is not crucial. If the employers and the colleagues are receptive to criticism then the tech can be modified at any point. And even if the company cannot afford to migrate to anything new right now, saying why this is the case can go a very long way.
Liking the people you work with > the tech you work with.