As per title, what sort of skills or experience do you need to be considered a senior at Elixir?
There are much longer answers but to me it mostly boils down to:
- Produce readable code that other people can easily pick and maintain.
- Use your tools the way they are meant to (e.g. abusing OTP just because you fell in love with the idea of Erlang/Elixir processes is a huge no-no).
- Make boring code and don’t try to be too fancy.
- Don’t get caught up on minor details or some perceived perfection. Never forget you are paid to solve problems, not to become academically excellent. If you stumble upon a problem that seems that it cannot be solved without making a little bit of “dirty” or “ugly” code, don’t lose your sleep over it. Solve the problem, make a note to maybe fix the ugliness one day, and move on.
- Document your stuff in a terse and understandable manner. Being a good human-language writer is essential for a senior dev.
- Go out of your way and ask “why are we building this?” and not just “what’s my next ticket to resolve?”. That way you can produce extra tooling that solves the bigger problem. Don’t be a wage lemming; take the initiative and actively seek what are your customers’ actual pain points, and try to cure them.
I’ve written more detailed thoughts here: Idiomatic, real-world Elixir resources?
When I was in charge of a team we didn’t have any distinction between senior and mid in terms of technical skills. The seniors probably had more, but that didn’t matter as it wasn’t what really brought value.
For us the different between senior and mid is the “soft” skills. A senior should be autonomous, understand business value, and be able to mentor + help other team members.
A mid can write code well, a senior can help the whole team write code well.
Exactly this. ‘Senior’ is mostly mentality- the person you trust on a team to guide others both technically (design, implementation) and culturally. To me the most important aspect of a senior team member is to spread calmness and certainty- the kind of ‘as long as they’re on our team we can push through any sh*t business/3rd parties/life throw at us’
I guess most of what @dimitarvp pointed out goes beyond any stack.
Like @lpil, I believe that “soft” skills are the way to draw the line.
For me is also very important to discern technical excellence from professional seniority and my rationale is much like knowledge vs wisdom (as in accumulated information vs how to use acquired information).
I prefer to team up with a hardworking person with strong “soft” skills than any “tech-ninja” any day of the week. By default, I believe those kinds of people bring more to the team/ project in the long run since most of the time as developers (and problem solvers) we are dealing with people and not code itself.
Thanks everyone for sharing your feedback’s. The reason I ask this question is because I’m currently looking for a job in Elixir. However most if not all of the job posted said that they want a Senior Elixir developer. Unfortunately I only have working background experience in React. Have you guys ever made the jump from frontend to backend in a working environment? any tips?
I’ve changed languages etc professionally quite a few times and generally I’ve not found it a problem so long as I’ve got a good grip on the basics. So long as you feel comfortable writing Elixir I would say go for it. Worse case scenario you don’t get through the interview process and you get some feedback on what to improve.