I have spent a lot of time talking about hiring, interviewing and vetting developers without really talking about how a developer should evaluate a potential employer. I have been with the same employer for over nine years now and so my expectations are generally met in a slow incremental march to my imagined developer nirvana. In recent weeks I have gained a new manager and, to his credit, he is making meaningful inquiries about our environments and culture and looking for opportunities to make our work experience more rewarding.
So when you have the opportunity to ask an existing or potential employer about improving your work life I think the following is good place to start.
This is obviously a moving target (Is Moore’s law still a thing?) and really depends on your specific technology stack but as a “nose to the grind stone” developer you should be requesting a machine that has maxed out RAM and an SSD. As of today I would say 8 GB would be your minimum and you should consider more if you are running VMs on a regular basis.
If you are being offered anything else, or your IS department does not differentiate between developer PCs and others, then it may be that your company or manager do not understand what you do. It may also be that the hardware budget is grossly underfunded (bad sign either way). Quick tip is ask the developer who has been at the company the longest when that the last hardware refresh happened for them (assuming the more tenured developers have the worst devices).
Software & Platforms
MSDN licenses should be a staple for your entire team! This is often assumed but you should ask and ensure that is the case. Developers today should also be asking about access to Mac and mobile devices as they are playing greater part in our software development and testing.
Do know what versions of the .NET your current software development is bound to? How does your team and your customer deal with upgrades? Will that limit the kinds of projects that you will work on in the future? Ask, your future viability may depend on it!
How many people on your team are involved in the craft of software outside of the 9-5? Are folks involved in open source projects or Stackoverflow? Are they involved in local developer groups? Being a part of an engaged team that is looking at ways to improve the products they work on as well as themselves is critical. This kind of collective mastery is self reinforcing and can provide an enriching and supportive environment.
I have not had to deal with “on-call” rotations in a direct way for many years, but you should understand the existing support structure and how the work your produce is related to it (directly or in some tangential Tier 3 rotation). It is always disconcerting to receive undesired calls from your work during well earned time off, so ask questions about this and ensure you have figured out what the worst case scenarios can look like and whether that is right for you.
Training & Conferences?
This is an important issue that I have found can easily turn into a shell game. The first step is to understand the training budget, not in a amorphous sense but in dollars and cents. Find out how much of that budget is applicable to you and if there is a rotation for going to conferences. Do Senior Developers get first bite? My advice is to ask early and ask often, provide ball park figures for paid conferences and throw in local events that might be free as an alternative.
My manager has been discussing the idea of paid leave that represents an organized opportunity to learn in more informal ways (like Pluralsight ). For those of us with the desire and discipline, it helps reduce costs and simultaneously provides the benefits of repeatability and accessibility.
I am not suggesting for a second that missing items from the above list should result in a mass revolt, or that somehow you work is less important or meaningful, but I do think you should spend time considering what ways your employer can show a firm commitment to you, your work, and your craft.
Have I missed anything? What would you add?