BLUF: You have to try. You cannot not just play the part and get a job.
Last post I talked about interviewing candidates with a simple, or what I thought, data structures problem. Since starting to be involved in the interviewing process I am noticing that there is becoming a staggering number of candidates who think that they can ask for high salaries and do minimal work to earn that salary. I have only hired 7 candidates in the 80+ phone interviews that I have performed over the last 2.5 years.
Should a candidate who asks for $120k a year in salary know the difference between static and instance fields? Yes! I get that some people think white boarding a problem is a waste of time, but a simple white boarding problem has a lot of information about a person. Can you communicate your code? Can you implement with minimal instruction and ask questions to get to the end? Can you even code at the foundation level?
The projected growth of software developer jobs, on average, is 17% in 10 years. The industry is not being over saturated with qualified or over qualified candidates, so the need is rising but the candidate pool is being diluted with unqualified candidates for the needs of a most companies. What’s my take away? Sometimes you have to compromise on candidates that are not going to be the best fit because you have to deal with the delicate balance of needing the people to get the work done and the skills of a candidate.
My criteria for a candidate in all situations that I have interviewed is the need for a “full stack” developer. My “full stack” definition is a candidate that has strong skills in one of the 3 main pillars. These pillars are front-end, back-end, and database. Those candidates need to possess enough understanding in the other 2 pillars to make them a compatible candidate. I have never been looking for a subject matter expert in T-SQL or Linux, so my opinion might be skewed compared to a larger software development firm that is building a product backed by a team of 50 front-end, back-end, data, big data, UI, UX, QA, QC, testers, technical writers, scrum masters, and product owners.
I perform at least one task for all those positions in a week’s worth of work. As I have always said though, this causes me to be dangerous enough to get me in trouble. There is a balance in my work that keeps me up to date with what is going on in the industry, but i try to stay focused on one piece and that is web development. I have pet projects in mobile development but my 40+ hours a week are dedicated to the former. I have also mentioned that I always try to do an interview or two for a well known software or product company each year.
If you have been in the industry for a while and cannot write a NodeJS application, then you might be out of touch with what is going on. I am not saying you need to be an expert, but do the “hello world” example to get an idea. Out of the need for NodeJS we are now seeing WebAssembly coming on with full force. I’ll counter this with that there is always a need for legacy coders that need to upkeep an old code base.
https://www.captaincodeman.com/2014/07/01/top-10-ways-fake-software-developer. Yes, they exist. I think this list points to all of the most common things that a faker will do, but they only need to exert one of these characteristics for you to realize that it is a problem.