I work currently as a "senior" swe and my duties cover a wide range of technologies and non-tech related stuff: Elixir, Go, nginx, mysql, Docker, debezium, Kafka, Terraform, Ansible, HTTP APIs, a bit of Angular, mentoring, hiring (tech interviews), product discovery, design docs drafts, etc., etc.
When it comes to hiring senior software engineers, my company and peers seems to put a lot of focus on the following topics:
- does the candidate know about performance, scalability, and high availability topics?
- does they know about infra topics like: K8s, monitoring, CI/CD
- does they know about GCP or AWS?
- are they available to be part of our on-call rotation schemes?
- can they mentor more junior engineers?
Not to mention of course the more classic requirements for senior software engineers like: actual working experience on the field, solid knowledge of the fundamentals of comp sci/soft. eng., good practices, problem solving skills, good communication skills, etc.
When I interview candidates, I try to focus on the second group of requirements. I want to see if the candidates are able to communicate effectively while working on a technical solution. I could care less about details like GCP, Ansible, the programming language they master the most, or whether they use K8s or not. These technologies can be learned, if required. My company, though, doesn't like my approach and they insist on me asking very specific tech questions.
What do you think? We currently are hiring "Go senior software engineers" (that's the actual job title in Linkedin), but I couldn't care less if you know Go or not when you come to work with me. I want to know if you are good at solving problems.
If a company’s requirements are so strict that they can’t get anyone hired, they either need to loosen the requirements or raise the compensation.
Loosening requirements can open the company up to a wider range of candidates, but it also opens them up to more bad hires. If the company isn’t good at PIPing people out or the managers don’t have the stomach for letting people go, this is disastrous. Your good employees will resent it and leave.
> We currently are hiring "Go senior software engineers" (that's the actual job title in Linkedin), but I couldn't care less if you know Go or not when you come to work with me. I want to know if you are good at solving problems
It’s possible to hire good engineers who don’t already know your programming language, but it will add significant ramp-up time. Even the best engineers don’t pick up a new language and associated libraries, idioms, practices, and quirks overnight.
You can open hiring requirements to people who don’t already know the language, but practically speaking you’re subtracting 6-12 months of productivity once you account for ramp-up time and mentoring requirements from the team. You may not mind, but the company probably isn’t interested in paying $200K or more in combined salary, benefits, and ancillaries when they could pick a little more picky and hire someone who already knows Go.