Ok so let's count out the big software companies. As an employer it's always hard to find great talent in software development. And so I'd like to...
For further actions, you may consider blocking this person and/or reporting abuse
The remote environment is great (for responsible people). Culture always reflects the leaders of the company, in fact, it's the leaders responsibility for the environment.
Mutual respect and professionalism is mandatory. Favoring the individual over process is paramount.
Processes get in the way of respecting staff when the deadlines (always wrongly determined) drive the environment.
All companies reach the point where 80% of all work is maintenance work. New code and projects only arrive in small chunks, and often; the companies will bring in outsiders to do the work. This is a slap in the face to those that have been around for a while.
Check this post out from 2014
Pay is an indicator of respect for the individual. For example can a developer easily cover living costs in your area? Are you paying them for $17.00 a day parking ramp fees, or is parking free? Proper pay is very much related to the area your programmers live. People that work in London or NYC or the Silicon Valley must be paid higher.
The flexibility of the environment must include Flex hours. People get sick, they don't always feel great, the children need doctor's visits, as well as the Pets need to see the veterinarian. We need time to take care of our own health, not in the form of payment, rather in the form of flex-time.
I have found that working for small employers does impose financial concerns. In the U.S. our Health Care costs are super high now. Large companies try to help out there by pooling all their employees into a large pool of monies to help defer costs to those that are required to pay high premiums. Small companies usually don't have these funds, so an extra $10.00 USD per hour is required just for health insurance.
Career prospects; are interesting, because in my opinion, those who attempt to transfer the responsibility of learning new things (via opening slots etc) on the company or company sponsored (expensive training), are not responsible people. We should use our free time to learn new skills, employ them in our current position and let the offers arrive. Big companies are innately unable to focus on individual careers. So it's up to us, and our own job seeking to "get there"
Large and super large companies have a tendency to lose focus on the person. This is because, the super highly paid leaders and major corporate policies must show something in return. This means due dates never slide regardless of the trench work. This is due to corporate mentalities which say "If we don't get this done tomorrow, Amazon is going to put us out of business".
Large companies are inflexible elephants. For example "No corporate Security policy can be violated, the one rule fits all is paramount" I once lost 6 weeks trying to prove a server side issue behind a firewall just because the company wouldn't let me run network traces to prove the origin of the failures. I also watched Microsoft topple IBM.
Architecture of software being worked on is a snake in the grass event. Companies will vet new hires based on their extreme (list of lists) of skills. Once the person gets in and sees the mess for the first time, that person is in danger of not fitting in. The reason is that old-timers really believe what they have is already the best, and any attempt to change it (even in small bits) is a cross current to them. They can become very snide in code reviews, ask questions in a unprofessional way, and ultimately demean the new comer for even thinking about violating all of their unwritten standards and concepts.
Finally, I heard an argument once concerning JavaScript.
ISOMORPHISM
Yes there's a major movement happening right under our noses. The isomorphic front-end and back-end in same language movement. With the power of NPM and the opensource Javascript movement, all other frameworks appear to be doomed; including one of my favs. .Net. It hasn't happened yet, but it is happening.
I worked as a contractor for a huge Consumer Electronics Company, where their public facing Web Site is already isomorphic. I'm sure the same is true with Google. Perhaps even Amazon is there.
Perfect Environment for me
Windows server (I grew up on Windows)
A leadership team that are true collaborators and take proper responsibilities.
No arrogance allowed no matter how freaking smart you are.
Longer Scrum iterations 3 to 4 weeks.
VSTS
GitHub
Woops, forgot the cloud.
John, wow thanks for such a detailed response! I may add more later. But I do think the whole - how much you get paid based on where you live and what your cost of living is a very important debate, especially right now.
I have always found that it's worth paying more for great people, a great developer can often be dramatically more productive.
This is a great post. What stood out for me was the "architecture snobbery" and no arrogance allowed. Toxic is toxic, and leaders who tolerate it are not real leaders. I am up close with that at the moment, ready to leave.
Also the longer scrum iterations part is the truth. I see people trying to do a week, it never works. Two at a stretch.
If you know a company like that, I would be happy to apply there. Personally, in 10 years, I never saw that.
Yes for me, the mission is important. Not the linting standards, but the building of a product to support a purpose. I spent many years building systems that were very successful at doing things I didn't much care about - selling Pizza, working out the right loan to offer someone, targeting the right time of day for an email.
2 years ago I gave it up for a role that has a noble purpose (to save lives and reduce long term workplace caused illnesses) and for me that is important. I'd say I'm trying to make the organisation you describe to some extent - for instance I'm the CTO but don't have a degree (self taught, ex game programmer) I hire based on attitude and ability in any language/system. HOWEVER, the business is pivoting from a highly successful services company with profits of nearly £20m per annum - to a software lead business. So it has other problems lol. Lots of them! Probably down to the fact that the business model is evolving and we are making it up as we go along - with a very big prize down the line, but a less clear path for attaining it.
Wow! Nice! It sounds really interesting!
I did the same: going from company to company doing stuffs which didn't really improve anything, at least in my opinion. Whatever the tech stack, the colleagues, or the benefits, it will never really replace a strong purpose to go out working every morning. Now, I take my time to find something which is really interesting for me.
Good luck for your pivoting. Without risk, no rewards (and it's less boring :D)
My current top priority in potential dev jobs is flexibility for remote work. Of course, I'd want to work at a company with some stability and one that would provide good benefits, but I'm kind of over having to go into the office every day, and I like the idea of being able to travel and take my work wherever I need to be.
Other things I'll look for when I get to the job-seeking stage: high-trust company culture, advancement opportunities
Couldn't agree more. Although not having seen my team in months is longer than I'd like to go, this period has been very productive for all of us.
This is a very interesting topic.
Thanks Mike for starting it !
I've been working on IT for 20 years now. All the way from IT Helpdesk jr analyst up to Servicedesk Regional manager supporting a software solution deployed in 9 countries reaching around 10 million end customers.
Along the road I've been a Java (backend) dev, and before I did frontend(HMTL + JS) and covered the Sr. IT Business Analyst role for quite some years.
With all of that in mind, it's not easy to describe the best mix when looking for the next company to work for. I think that varies over time.
And last but not least:
There is no enthusiasm out of surfing each release by just patching app's features.
Creating interesting software in a passionate way should be a win-win deal for both Devs and the Businesses.
Thaks for reading!
Yeah I'm fascinated to get all the opinions. Thanks for writing so much.
I know what you mean about learning - but I think it is vital. Personal growth is an employers responsibility too. But yep, hard with deadlines, but necessary I think.
From an employment perspective for me it boils down to two things.
1.)Will I get paid at the end of the month as promised
2.)Do I have a good rapport with my manager/superior or can I build a rapport with him/her.
Agreed, rapport is vital - yep and trust in that pay packet!
If I were to chose from the list you provided, I would say:
I think any technology can be learned if you really want to (as long is not something completely different from what you already know, then yes, you might have a hard time).
I would like for an employer to understand that I know the job I am doing, and does not pressurize me into decisions, like forcing me to believe his/her solution is the best, or getting angry over the fact that a particular work should have taken less time than it actually did.
I do hate the entire principle of "I'm your boss so I know best", you are right that is always a challenge. Trust is very important I think, has to be earned, has to go both ways...
1, 7 and 9 for me.
My ideal place to work is somewhere with relative autonomy and no micromanaging, career prospects and a decent compensation package, using reasonably modern technologies and a flexible remote working policy
2,8,9
I look for an employer that pays well average (or well) and provides me the flexibility to work on my time and who provides opportunity to learn new coding practices and technologies
That's always been one of my key drivers. If we stand still, we grow moss quickly in our business...