How to Spot Toxic Software Jobs From Their Descriptions
You can infer a lot from what people write.
Disclaimer: All views expressed are my own.
When you’ve worked in industry long enough you get a feel for the tactics people use to sugarcoat things.
For example, “Own any and all parts of the Software Development Life Cycle” basically means, “We have no strong process here, and everything’s on fire so we need you wherever we can put you.”
That previous example especially hurts me because years ago when I was recruiting, I wrote that description believing it sounded awesome. Coincidentally, that was also when it dawned on me that we were constantly on fire and wanted more engineers who could do “everything.”
People put a lot of time into writing fancy job descriptions or playing mind games with you during interviews. My motivation in writing these stories is to help make sure you don’t fall for any of that garbage. Frankly, you deserve better. We all do.
The keys to a good job requisition include the following:
- A clear, concise summary of what the company does without excessive use of buzz words
- A clear, concise summary of what you would be doing in this job without excessive use of buzz words
- Clear, reasonable qualifications for the position / work
- Clear, reasonable responsibilities listed for the position
- No mentions of traits or qualifications that are not concrete (e.g. sense of humor, perseverance, determination…)
Let’s take a look at some job descriptions that do not meet the above criteria.
Bad Example 1: Yikes on the role(s).
Ok, let’s break this down.
Participate and own all aspects of the development life cycle starting from design, estimation, development, DevOps and testing of both service and web components
Yikes. You want me to be a software architect, a developer, a DevOps engineer, and a QA engineer at the same time?
Anybody who’s worked at a real company knows that the entire SDLC process is pretty intense. Startups would require individual engineers to own the entire process and wear multiple hats, but a NASDAQ-listed company is not a startup. There’s a reason “DevOps Engineer” is a separate position.
EDIT: People have been responding to the last line about DevOps, and I need to clarify my point.
Yes, I understand DevOps is a cultural movement to transform processes and break down silos between development and operations. Engineers are having to understand pretty much all parts of the cycle to do their jobs well. But it does not mean a single team/person should handle everything.
Any time your developers are not delivering features or fixing bugs is time that is wasted. This is why we have separate positions for doing work that falls outside of directly working on the product itself.
DevOps Engineer is a catch-all title, but you can easily replace that with more specific titles. Site Reliability, Developer Experience, Platform, Systems, etc. Whatever you want to call them, the point is that there are always other teams and people working on specific areas of your product’s ecosystem to speed up time to market and keep things reliable.
That way your product engineers aren’t wasting time e.g., configuring AWS services when they could be delivering features.
- Facilitate discussions with business partners to determine needs and appropriate solutions
- Collaborate and build strong relationships with the technology group, as well as external vendors and offshore partners, to assist in delivering greater value to our customers
Oh wait, now on top of the above, you also want me to be a product owner, partner manager, and do business development?
Possess the ability and desire to dive into an existing codebase and grasp the functionality, design, and refactoring opportunities in the code
Who desires to refactor someone else’s bad code?
Share past experiences and mentor fellow team members in improving the team’s implementation and development discipline
“Oh, and also, you get to be a team lead too.”
The latter skills are specifically DevOps. Those are full-time tasks, unless you’re a genius who just about understands everything and can just do it in an hour flat.
Benefits are fairly competitive, but they don’t make up for what sounds like a hellish job. There are other companies offering equally-competitive benefits that don’t ask candidates to be and do a million things.
Bad Example 2: We need COURAGEOUS engineers for our COURAGEOUS work!
*chuckle* Someone’s automated script didn’t work quite right.
Join us at ____, where your mission is ours. Our customers tackle the hardest missions. Those that demand extraordinary amounts of courage, resilience and precision. They’re dangerous. Critical. Sometimes they even provide an opportunity to change the world and save lives. Those are the missions we care about.
This reads like an infomercial. I can picture close up shots of Marines saluting and marching, training in heavy rain, breaching a building… wait, this is a software job description? Oh.
Seems like a great TV commercial—but terrible job posting.
There are no details about anything, anywhere. You have no idea what you’d be doing. You have no idea what the basic qualifications are.
Ever heard of bait-and-switch? People do this sometimes in industry where the job you applied to is not the job you actually start doing. This is totally possible here because there’s no specific thing you’re applying to. Be wary of job postings like this.
The person who wrote this seems to really believe in the company mission (or they have a commercial marketing department). But they’re just banking on potential applicants who feel the same way about their company.
Or ones desperate for a job.
NOTE: To be fair, the company that posted this is fairly well-known and a big name. But even if that explains the lack of company description, the job requisition still has plenty of room for improvement.
Bad Example 3: “Must have every ideal human trait ever.”
This one is just too much. I’m laughing while typing this.
Successful candidates are expected to have strong analytical skills, a thirst for knowledge, willingness to attempt any challenge, a desire to improve the quality of education, and a great sense of humor.
“Great sense of humor”? Why? The book is called Cracking the Coding Interview, not Cracking a Damn Good Joke.
Great sense of humor is something we all want in others. Our friends, our family, our coworkers, our dates… but that’s not something you ask for in a job description.
Specific tasks may include:
- Software Development
- System Administration
- Customer Support
- Quality Assurance
- Pre-Sales Support
I’d like you to explain to me how this would be an entry-level position.
You’re asking for a person who can be your developer, your SysAdmin, your technical documentation team, your customer support team, your QA team, and your sales engineer.
I’ve been working for years in industry, and I don’t even know if I could do half these jobs.
- Whatever else may come up…
…like what? This is supposed to be an application for a software engineering position, not a utility guy at a sports bar. Vague, open-ended bullets like this are no bueno because you always want to know exactly what you’re applying for.
- Entrepreneurial spirit
Ok, I’ve seen this a few times now, and... what does this actually mean?
One person might give one answer about questioning norms and being experimental. Another might give traits like perseverance and determination. Something about being open-minded and inventive…?
The problem with traits like this is they’re open-ended, vague, and useless. They don’t mean anything because they could mean anything. Everyone wants to think they’re “entrepreneurial” — just look at everyone who lists themselves as an “Entrepreneur” on LinkedIn.
What does this mean for you, the job applicant? It means the company has their own specific idea of who they’re looking for, and they don’t know how to clearly communicate that to you.
- High level of integrity and character
- High level of energy and motivation
- Desire to work really hard at a small company
- Commitment to excellence and willingness to do “whatever it takes” to get the job done
- Desire to learn everything about a software/Internet company
- Idealism in wanting to improve the quality of education
- Optimism in believing that you can make a difference
- Humility in recognizing that idealism/optimism may really be ignorance/arrogance
Oh good lord. Again, these traits are things you assess from the candidate during an interview — they’re not things you list on a job description.
Duh, of course everyone wants to hire motivated, energetic individuals with integrity. Does anybody look at this and say, “Oh, I’m actually a lazy asshole. I’d better not apply.”
How about you actually tell me something about this job?
“Whatever it takes” being in quotes really concerns me. How far am I expected to take things? Will I need to give up my first-born child? Do I need to sacrifice a goat?
The final two bullets also get me. You have to be optimistic, but not too optimistic because we don’t need that sh*t here.
Let me tell you — this kind of job description might sound fun and alluring to the right individual, but I’ve had enough experience where this now raises so many red flags.
Good Job Requisitions
To clear the air of criticism and negativity, let’s take a look at some really, really good job postings.
Good Example #1: Solid All Around
This is beautiful. The description about the company and team are intriguing while also giving adequate detail.
We build systems that take massive amounts of genomic data, combine it with the world’s scientific literature, add to it years of rigorously curated results, and package it all neatly for our scientists to consume.
This one sentence alone gives you an idea of the several things they might be doing:
- Big data
- Data processing and analytics
- Software development (obviously)
- Academic research or R&D
- Potentially machine learning for deriving insights from said data
The lists of “What you will do” and “What you bring” are both clear, concise, and reasonable.
A+. I would apply if I was interested in this field.
Good Example #2: Short and sweet.
Responsibilities are clear. The qualifications are not explicitly listed, but can be inferred from the given information about their stack and what they do:
- Node.js, Python, and Go
- Kubernetes + Docker, Linux
- Focus in the retail & commercial building space
There’s no waxing poetic here about wanting only the best humans to apply or finding someone who wants to CHANGE EVERYTHING ABOUT THE WORLD.
Good Example #3: Generic, but good.
Clear, concise description of what the company does, high-level expectations, and your responsibilities.
Like the previous good example, the stack is listed, and the list of qualifications is reasonable given the position and seniority level. This is a great job requisition.
Don’t settle for bad jobs.
As a candidate in an exploding industry, you have options. There are tons of great companies out there who not only offer fantastic jobs with fantastic benefits, but they also have fantastic upward growth and career growth.
Keep honing your skills while searching for jobs, and make sure to pay attention to the job listings and see what companies sound like bad news so you don’t waste your time on them.
Thanks for reading!
We’re not just a collection of courses — we’re a complete roadmap to securing the skills needed to become a fantastic software engineer.
Join our mailing list to receive the latest updates on our flagship course.