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.