Unicorns and Where to Find Them: Corporate Edition

Sherief Shahin
Jan 15 · 9 min read
Image for post
Image for post


Unicorns are fictional characters that where once created by stories, but continue to live on through job postings

Once Upon A Time

First off, if you believed in unicorns, I am sorry to burst your bubble, but they don’t exist. So at this point, you have an answer to the title and you could honestly just click out, but I think you will enjoy what I have to talk about. Especially if you are a developer.

Today’s topic will be the market of software engineers when it comes to job requirements. Whether you are hunting for a job, working as a consultant where you switch projects often, or even just checking out of curiosity, we have all seen some absurd job requirements and someone has to talk about it. So, I will take one for the team!

Having said that, buckle up, get ready, and let's go!

My Angry Friend

Now, for those of you who are unfamiliar with the term unicorn in the software development industry, let me elaborate. A unicorn developer was once a term that was actually meaningful and can be easily fulfilled. A developer, preferably full-stack, that can both design the application and code it, was known as a unicorn developer. However, this term has been taken and has mutated into something that most of the developers I know absolutely despise. Nowadays, a unicorn developer (according to job postings) is someone that can do everything. No matter what the position you are applying for actually is, companies still want you to know everything else that is completely not related to the position. Also, keep in mind, I am not talking about “knowing things” as in having knowledge, I am talking about “knowing things” as in having hands-on experience. So, you can only imagine my friends' frustration when he was required to have JavaScript experience for the Java Backend Software Engineer position he wanted to apply to.

Now, let’s dig a little deeper into the two main points in which the term unicorn has been used in the wrong context, completely stripping away any useful meaning the term once had.

The Endless [Tech] Stack

  • Needs to know Java, C++, C#, Python
  • Hands-on experience with AWS and Azure
  • Professional experience with front-end frameworks such as Vue.js, React.js, and Angular
  • Fluent in two languages.
  • One Basic Understanding of a different language

See, you might take a look at this and say, well, this is not too ridiculous. I agree. It’s wouldn’t be if my friend was applying for a DevOps Full Stack Engineer. That would be completely understandable. But the position he was applying for was a Java backend engineer. Having such requirements for such a position means that the job was not described correctly or it means that this is actually what a company would expect from a java backend engineer, which is equally disastrous, for reasons I will explain in just a little bit.

Now, on to, what has to be, my favorite part of this blog.

Time Is Money

Image for post
Image for post

I will be honest, I had half a mind not to finish this part of the blog at all and just let you marvel at this monstrosity of expectations. What kind of entry-level is this? What does this company expect from someone, for example, who had just graduated from college? Or, better yet, do they actually expect that someone with that much experience to accept an entry-level job with an entry-level salary? No explanation has ever made sense to me. I have had sleepless nights having nightmares about this job posting. Let me put things into perspective even more. This job is requiring:

  • Testing experience: 3 years
  • General Development Experience: Five. Years.
  • Analysis, design, coding (whatever that vagueness is supposed to be): SEVEN. YEARS.

Let that sink in. They want someone with an average of five years of experience to say:

Non-existent person: You know what? For the next step of my career, I would like to to take an entry level job.

Non-existent person’s logical friend: Um, you are a senior developer, on track to becoming a team lead in a couple of years. What?!

Non-existent person: I just want to go back to when I first graduated. Less respobnosbilities, less work, and everything will be very easy for me to do. I am applying to that job!

That is the only scenario I would imagine that this job posting would make any sense.

Of course, there are unfortunate, experienced, people who have been down on their luck lately with their job searching, and this might be one of the last few options they have left, which is completely understandable. But, if these are the people that this job posting is targeting, if they were targeting vulnerable people and lowballing them even though they are evidently experienced enough, that takes us to an entirely different dilemma, a moral dilemma. Another issue, for another blog.

ALSO, and I will quote this in the blog just like I did in my previous one

Years of experience does not directly map to how good you are as a developer

Yes, it is more likely that a person with 10 years of experience is probably a better developer than a person who just graduated. But, let’s not be pedantic. We all know what I am referring to. I am referring to a person with 4 years of experience who gets rejected for a job that requires 5 years of experience. These are the examples that grind my gears.

I have personally worked with people with 10+ years of experience that are clueless, and I have worked with fresh college graduates who teach me things that I did not know. It goes both ways. With the internet having all the knowledge that we could ever hope to learn, “years of experience” has become an obsolete way to weed out developers. I know people who have not even come close to working a “traditional job”, yet, I consider them to be some of the best developers I know.

In short:

Image for post
Image for post
It’s time to stop (Sorry, I had to)


Setting Unrealistic Expectations

The Generalist Standard

No matter how in-depth a generalist knows in a specific technology, a specialist should be there to lend a hand for the fine-tuning and very specific details, and the generalist would ideally be able to act as a bridge between specialists of different technologies. A great example could be a full-stack developer narrowing the knowledge gap between a backend and a frontend developer and inversely, those backend and frontend developers use their specialties to consolidate the quality of the application.

Market at an Increasingly High Standard

Causes Low Morale

Maximizing Profit, Minimizing Expenses,

It’s also a fallacy that by hiring fewer engineers you would be minimizing expenses thus increasing profits because productivity is a vital part of that equation. Reaching optimal productivity should be the main goal. Now, for some companies that might be through hiring one generalist engineer, for others it might be hiring two specialists, but at the end of the day, it should be done for the right reasons and not to benefit at the expense of people


Reality Check

  • How often these postings are published. I am not convinced that every job requires to know all these skills.
  • Differentiating between someone that is, in fact, knowledgable or is, in fact, a generalist and between just throwing every technology under the sun into one job posting.
  • Knowing the market and knowing that even though one requirement is missing, a compromise on it to get a top-level engineer is definitely worth it.

Look, developers will grow technically because that’s what we do. We want to learn more about the things we enjoy doing the most, technology. But expecting that everyone is a copy+paste template, or expecting that everyone follows the same generalist growth path, or just expecting people to know things that are not required or enjoyable for them will only result in us going backward and also result in missing out on some great talent out there.

I lied, unicorns do exist, but not with the definition we have nowadays. So let’s give that word its meaning back and let’s be realistic.

That’s all I got for you, see you next time!

The Startup

Medium's largest active publication, followed by +771K people. Follow to join our community.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store