Red Flags In The Hiring Process
When you are looking for a new job, it’s easy to take the first job that comes along. And it might even turn out ok. However, it’s also possible that you’ll end up in a job that is absolutely miserable, burning you out and making you hate software development.
Worse still, when you finally get to the point where you are exhausted enough with your job that you end up quitting (or worse, getting fired), the damage has been done. A bad enough job can completely ruin software development for you, to the point where you dread working on code at all. This has happened several times to Will over the course of his career and it’s really hard to recover from.
A new job can make huge changes in your career, for good or ill. You want to make sure that any new job you take is going to help you improve your career, without burning you out. While not every bad job gives obvious warning signs before you start, most of the worst ones will at least give you some warning of what to expect.
Verbiage that indicates that the company over-estimates themselves, and you’ve never heard of them.
“We only hire the top 5% of developers”. Is your payscale in the top 5%, are you deliberately ripping off the top 5% of devs and hoping they won’t catch you, or are you full of crap? This tends to mean that they have a byzantine, awful interview process of which they are very proud, that probably is designed to help them hire yes men who feel lucky to be there.
We are looking for a very specific type of developer and have a thorough set of interviews to find them. Sometimes this is true. Sometimes they need a developer with a very specific set of skills. However, most of the time, what they are looking for is a “yes man” or someone who is compliant. If you can’t tell why your specific set of skills are exactly what they need, then one of you will be disappointed.
Lack of clarity about what you’ll be doing.
Some companies hire before they have a clue what they are doing. This can often mean that you have to pivot repeatedly during your tenure at an organization. If you don’t know what you want out of your career, this can be a wonderful opportunity to try new things. If you do know what you want, this can be an unbelievable waste of time.
If they are being especially vague, it can indicate something even worse. For instance, they may be doing something that is borderline illegal, immoral, or just sketchy in general. Companies running low-budget pornographic operations, or quasi-legal investment schemes may approach you in this way. You would be surprised how many people are involved in extremely sketchy ventures who will approach you if you know the right people.
Asking for too much experience for what they are willing to pay.
If they are paying a junior developer salary, but expecting five years of experience, there is a reason for it. This could be anything from not having a clue about the market value of a developer, to simply making the job posting so that they are free to outsource. Sometimes companies will post an oddly specific set of criteria for a developer position not because they are looking for someone, but because they’ve found someone they want to hire and are otherwise constrained. This is a common trick some sketchy companies used to hire H1Bs at a lower price, whom they usually later mistreat.
Can’t pin them down on a time for initial contact, or the time changes repeatedly.
Some companies have really messed up, slow, or confusing hiring processes. Remember that this process is the first impression they are offering to potential new hires. It’s unlikely that anything else in their organization is any better. Unless you plan to hide out within unintelligible byzantine corporate processes, you probably won’t be happy here.
If they are taking too long to make a decision, or are you can’t get a clear answer, it indicates another problem. This tends to mean that developers are very low on the totem pole. This generally tends to be an artifact of a lack of respect at best. This can also occur when they have too many people interviewing for a single position and are trying to narrow it down considerably before proceeding. If everyone fits, no one fits well.
They don’t know what you do or why they are talking to you.
You might also end up talking to people who simply have no clue why you are being hired. This can indicate a lack of organization within the organization itself. This can also occur when a company has absolutely stifling internal processes. You’ll be fighting these when you get hired. In general, you can take this as a sign that you aren’t very important.
If it’s the dev team instead of random HR people, it’s even worse. This means that internal communications are broken down, badly. It can also be an indication that one of the people interviewing you is about to be fired and doesn’t know it yet. If the company can’t express to team members why they are hiring a new team member, you probably shouldn’t expect it to be any better after you get hired. This can also indicate that the IT department is heavily outsourced and there is so much churn that the IT team can’t keep it all straight in their minds.
They seem rushed.
They are in a hurry to move you through the hiring process. This could simply mean that you are an extraordinarily good fit or that you really impressed them (hopefully you can tell). It can also mean that they need to get someone, anyone to fill a position because they are badly overloaded. A lot of shops treat developers as if they are interchangeable, which results in them being burnt out and interchanged often. This can also mean that they are hiring to meet a client demand over a short time frame and plan on cutting you loose once the pressure is off of them. This is especially true in contracting situations.
They are in a hurry to get done talking to you when you are on phone calls with them. Besides expressing contempt, this tends to show a lack of appreciation for what you bring to the table. It can also be indicative of the current team being extremely overworked. If someone is too busy to even make sure they get help, they are probably too busy to be helped. This can often mean that you won’t be kept at the current position for very long, or your need to work your way up the learning curve will not be respected.
The interviewers haven’t reviewed your resume.
This is a huge red flag, because it indicates that the current employees are not engaged. If they haven’t reviewed your resume, it is going to be very difficult to evaluate your suitability for a particular job. This could be because you aren’t getting the job anyway, or because they don’t care whether you get it or not. Sometimes management will send their underlings in completely unprepared, because they don’t care either. This can also occur if the department is completely overloaded and can be a leading indicator that you will be overloaded if you get the job.
In general, if you can’t figure out why your interviewers are there, then the job is unlikely to be a good fit. This can mean that the company itself is completely disorganized. It can also mean that the expectations on employees are completely different than you would have expected and that you might find them surprising when you get hired.
They try to convince you that you would be happy using crappy tech
They might also be apologetic about their use of ancient technology. You have to decide whether you are interested in the older technology. Make sure you do this because of the opportunities that the older technology offers you and not because you are desperate. Remember that older technology is not necessarily bad, but may not be the best choice if you are early in your career, or want to work with newer technology. Whatever you do, don’t let anyone push you into a set of technology that is not a good fit for you or your career goals. It’s hard to recover from this.
They seem distracted, dismissive, or disengaged.
In general, you can expect that the bearing of the interviewers is as positive and nice as you can expect during your tenure at a position. If they are a pain in the butt when you meet them across the interview table, it’s not going to be better. The only possible exception to this is the case when you are interviewing with the “cranky old guy” to whom you have to prove yourself. Prove yourself and you’ve got an ally you can trust for life, especially if they have strong skills and are cranky because they’ve had to deal with too many crappy devs. However, if the interviewer doesn’t have any noticeable useful skill, it’s a good bet that you’ll be dealing with that attitude in less favorable situations later.
Disengagement can also mean that the interviewer is on their way out. While this is an exceptional opportunity to replace the interviewer if you play your cards right, it can end in disaster if they have a good reason to leave. You might have to ask some questions to figure this out. Sometimes the interviewer has gotten a great opportunity and this is the perfect place for you to step in. However, if they are disengaged, it’s more likely that they are simply over the job, and over interviewing. When they leave, whomever replaces them (not you) will be suspicious of any choices they made, including hiring you.
They take too long to contact you back.
Some companies are really quick to interview you, but then you don’t hear back from them for weeks. If they haven’t told you it will be a while, we strongly suggest that you don’t take the position. This tends to indicate that they have multiple potential hires and you aren’t first in the list. Think about it this way. If you were dating and the person you were interested in did this to you, how would you interpret it? Now imagine your mortgage is riding on your correct interpretation of the situation…
This also applies for any other communication with the company, for the entire hiring pipeline. While it’s inevitable in a longer hiring process that some steps will take time, it’s also reasonable that your interviewer will inform you about how long things usually take. Remember that you could be between jobs when this is occurring. Can you waste six weeks waiting on a response that lets you make a living again? If they don’t have the respect for you at a level that makes them respect your need for an income in a reasonable period of time, how do you think they will treat you when you get hired.
There are too many rounds of interviews before interest is expressed.
Some companies are completely paralyzed by the prospect of making a wrong decision, or have too many people involved in decisions to be decisive. This tends to manifest as the company having three or more interviews before making an offer. While this can also be a good thing if you want to make sure your future coworkers can pass the same gauntlet that you did. However, if the interviews are fairly basic, then the only thing they are testing for is your ability to withstand bullcrap. You might not want to work somewhere where tolerance of junk like this is considered a positive trait….
Some companies have a very messed up command structures and this manifests as having a large number of interviews during the hiring process. Developers are expensive, both when being hired and when being let go, so sometimes companies are overly cautious about hiring. While this caution is good (you don’t want to work somewhere where it is too easy to get hired, trust us), too much of it indicates dysfunction in many cases. Be especially careful of situations where you thought you were done interviewing, only to be thrown a curveball and told that another interview is coming. This means that either they deceived you, they were confused about their own process, or they were surprised themselves. None of those are good signs.
Onsite or First week of work
There are too many newcomers in the company.
When most of the development staff have been at the company for only a short while, you need to find out why. It could be that the company has recently gone through a growth spurt. The risk here is that the company has grown too fast and the job might go away through no fault of your own. It could also be that the company has extremely high turnover. If this is the case, there is a reason for it and you need to figure out what that is before you get hit by it.
Basically, if you can tell that the environment has recently undergone major changes, there are liable to be delayed reactions to those changes. You should have a good idea within a few hours as to what caused such an influx of new developers. Sometimes it could be because management changed and the new management hired a bunch of new people. This may be a good thing. Changes in funding, such as raising a series A round can also cause a lot of developers to be hired. If you see a large change has happened to an organization, you need to find out why.
In this chapter, Will discusses what you need to be able to work effectively in a remote environment. While you can certainly skimp on your environment, doing so can be risky. If you really want to be able to work from home for an extended period of time, you really need to spend the time to make your home office environment as stable and effective as possible. Doing so makes it easier for you to remain productive while working remotely and reduces the risk that a minor problem will be used to force you back into the office.
Tricks of the Trade
I saw some code recently where an older developer unfamiliar with the ORM that was being used, instead of asking someone or learning how the code connected to the database wrote their own data access layer for one call. Not that this was a microservice and that call was line of business specific so should have been in the business API, not the service…Don’t be that guy. We talked about red flags when looking at a new job. This is a coworker red flag. It’s a sign that this person doesn’t have the ability to learn newer tech, or more likely doesn’t have the desire. It’s all to easy to get into a routine especially with tech we know well. But you can’t let your solution be the only one especially in web development. So go out there, learn and grow, and don’t be that guy…