I’ll echo with others that my first stop is to see if any of my former colleagues are looking for work, and then if I see people on LinkedIn that are former colleagues of other former colleagues, I’ll check to see if they’re good and then maybe encourage them to apply.
I’d say that maybe 10% of the time that it works out that way.
The majority of the time it’s a job post, hopefully here on the forums or on slack. Maybe sometimes on one of the aggregating sites that are Elixir specific.
What makes people stand out in those first rounds is obviously experience, and yes, having experience with using OTP concepts is better than just Phoenix, but I’m generally looking for scenarios where it’s obvious that they know when to use a GenServer or Task and when to not use them without planning, since then you have to solve for consistency/distribution concerns.
Generally, I’m just looking for a signal in their resume that they’ve done something more complicated and done it well. If they’re a contributor on a well-known package that indicates they have some particular knowledge along those veins then that’s great. If not and they have side projects or something that they have done that illustrates they understand the nuances of OTP, or know how to model a very complex domain either at the operational layer or at the persistence layer.
If I had to choose between deep knowledge of OTP for deep SQL understanding and importantly when to NOT write a gigantic query or over normalize, hey julia, I think I would probably choose SQL/persistence.
If I’m hiring someone who’s a senior, I’m expecting decently deep knowledge on both sides and in that case I would probably defer to how complex the thing I’m building is.
If I’m building something with an integration engine and a generalized schema where most of the domain modelcomplexity is going to be in mapping so that the define their own level of complexity with the mapping, then I almost certainly want someone with a lot of OTP experience.
If I’m building a product company where there may be integration pieces but for the most part I am trying to make it easy to model the business domain, I’m going to go for SQL experience. Nowadays I would probably also go for Ash experience as a proxy for this, but I would want to make sure that they understood why Ash is a value-add in that space. This one’s important because I’ve seen too many companies get hamstrung by an early employee’s overeager and overnormalized modeling of concepts that leaves no room for easily migrating away and no abstraction layers. So everything becomes way too intertwined, and you end up with really complex Multis, or 300 line queries, or worst but sometimes easier to fix, no transactional integrity. And no good way to isolate the different parts.
So to stand out, I’m generally looking for evidence that you’ve solved a hard problem and you understand the different complexity trade-offs, and that you were able to preserve flexibility in whatever the solution was.
Just open-source for open-source’s sake is not something I would expect to see on someone going for a senior or higher role unless the open source they’re doing is an extremely high level library in something that they are very good at.