Is it a red flag when companies search for [language] engineer?
I sometimes see job ads for positions such as Senior Python Engineer, Java Developer and so on. To me this signifies that whoever is hiring are focusing too much on the technology and less on the arguably more important skills such as system design, team work, architecture and so on.
What do you think?
19 comments
[ 0.23 ms ] story [ 525 ms ] threadAs usual read the rest of the ad, talk to the recruiter, read reviews and see if your worries are actually real.
Job ads are placed by HR people that are not always aware of how sensitive we are, they should be and ads should be reviewed by the actual hiring manager but that doesn't always happen.
Also, even if they do require you to be a Python-specific expert, I don't find this requirement any more abhorrent than a company that expects you to be an leetcode expert, especially for a position that is minimally algorithmic.
You could take it as a red flag that it's not a system design position and more of a maintenance role, but then again they're asking for a "developer" and not a "designer" or "architect".
So the hiring company is being pretty direct about what they want.
On the point of soft skills, idk I have never read and trusted what is in listings for those as much as I do technical details. It’s the human part, and humans are insane and complex and rarely ever work perfectly well together. Just probe it on your first call (and subsequent interviews) to get as good of an idea as you can, but it’s still a crap shoot.
It's pretty rare that managers care that much about a stack unless they need specific skills and aren't looking to or can't train at the given level of seniority.
Usually special skills do not imply language knowledge - but its not unusual for a job posting to look for [statically typed compiled language] and accept knowledge of any other [statically typed compiled language] as a substitute with the notable exception of anything matching [statically typed native language] or [dynamically typed scripting language].
C++ and C are complex enough and full of idiosyncrasies that you need experience.
Java is in the middle, you can do a lot with little knowledge, but it's still very comprehensive for large projects you want people with experience.
JS and Python are a little different - usually, the language is not being stressed to do anything, but for specific things, experience helps.
For any niche language however - they should be training. It's not wise to expect people to know Scala or Rust - on one hand, it's probably a very positive signal, and you may in some cases what 'very senior' people, but on the other hand you probably want to train some as well.
When I used to work for Heroku, they hired experts on specific languages for two reasons:
1) to maintain legacy systems written in esoteric languages (e.g. Erlang)
2) to maintain programming language runtimes for that language.
The first reason I was less happy with, but the second makes total sense. If part of the core product depends on a specific language (e.g. running others' code, performance consulting) I think it's actually better that you hire experts.
The only other reason that doesn't bother me is early stage companies or companies that operate in very specialized disciplines who know what their tech stack is and want people to be able to contribute as immediately as possible. In that case hiring a language/stack specialist makes sense, e.g. hiring a Unity engineer at a game studio or a Python/Typescript full stack engineer for a startup with four people whose stack is Python and Typescript.
On the other hand, if a mature company with a deep hiring pipeline is freaking out about you not knowing their exact stack, they can go fly a kite.
I am a C++ developer and I did some Java programming and C# programming. From my little experience both Java and C# look the same too me, I consider them like a different dialects of the same language.
When you step into their ecosystems, you notice the huge difference. Frameworks, build systems, CI systems, the way documentation is structured. Even the language that developers use to describe the same programming concepts is different.
Putting a name of the language in the ad is just a sign of the culture you will be expected to integrate into.
Anyone can start coding in a different language, but it just takes that much more time in implementation and code reviews when they lack knowledge of:
- Standard libraries
- Builds
- Debugging
- Etiquette
- Performance gotchas
BUT - if you're going to ask for language expertise you better evaluate it in the interview, because years of experience is a garbage metric.
Put someone in front of their IDE and watch them build and debug exercises. i.e. how do people troubleshoot issues with dependencies, tracing, optimizations, etc. I wish more places would have -relevant- interview sessions about "OK, how much do you know about the tools you use?" Obviously if you're a applying for a position where perf expertise isn't important, it's not fair to ask you about GC internals.
Some people really struggle when it comes to tools or languages outside of their expertise. While I personally don't love working with these types, that doesn't mean they don't have value.
You can be a die-hard JVM guru who refuses to work full-time in any other non-Java language because you're productive as hell and don't want to spend months re-learning how to do everything again. Honestly, I'd much rather work with a team of these types than a team of people owning 5 microservices written in 7 different languages...
(P.S. I love Java for all the hate it gets here.)