So I got laid off two days ago, well not only me but the entire startup went under, I have been professional full-stack dev for over 5 years, working remotely.
While it is depressing getting laid off for no fault of your own, I decided to take this opportunity to learn Elixir/Phoenix because, to be honest, I hate nodeJs.
I’m full stack but I spend most of my time working on the backend and to be frank, I hate nodejs with passion, with its own fragmented dev environment, broken and outdated packages and listing my grief with node would probably take several pages.
Anyway, I have been playing around with Elixir, and I like what I’m seeing so far.
So I decided to focus the next month on studying Elixir.
So I wanted to know What do companies look for when hiring for Elixir developer aside from CRUD/web sockets (Phoenix channels).
I have seen a couple of jobs with GraphQL and Absinthe as a requirement
I would say that most of the time, if the individual is not exceptional at something (in other words incredibly hard to find someone with those skills) they are looking for a people who fit in with their team, their culture and someone with a fantastic work ethic.
If I was looking for work as an Elixir dev I would do all/some of the following as a starting point…
Read all the Elixir books and go through the best courses
Build some things in Elixir
Ask myself what kind of person the company I want to work for is looking for (and what kind of company I want to work for)
If you want to go beyond that, and feel you can be at the top of your game…
Create a popular tool or framework such as Phoenix, Nerves, Lumen, etc
If you want to take a different approach, you could go through all the #community:elixir-jobs postings to see if a common theme is present… or even get in touch with a few and ask if there was anything in particular that would make any prospective candidates stand out. (Personally I think knowing OTP well would prove very beneficial.)
But ultimately I would say just be yourself and focus on what kind of developer you want to be, and what kind of company you would love to work for… everything else should just fall in to place
… and put them on github (or similar). Github is, in my opinion, the best CV for a developer. To me, having some Elixir experience would be great, but ability to think clearly and write some decent code in any language is more important - Elixir is very approachable to someone with the right aptitude and attitude.
(Personally I think knowing OTP well would prove very beneficial.)
Cool I will focus on that, I actually know the basics as I have gone through pragamtic studio elixir course, I liked how they go through learning about spawn and creating stateful server before learning about Task and Gen Server, though I never put them in practice yet.
But ultimately I would say just be yourself and focus on what kind of developer you want to be, and what kind of company you would love to work for… everything else should just fall in to place
Yeah, the problem is I’m boring person, I don’t have “Cool App Idea” .
all what comes to my mind is CRUD apps and probably add chatting capabilities to show that I know phoenix channels too
There ya go - your first killer app idea - create an app to randomly generate cool app ideas for others looking for a learning project let them post links to their code and app so that others can compare or get help/ideas
For as long as I was responsible for interviewing Elixir devs in my company I would look for people that exhibited in-depth knowledge in their current stack and general programming principles / architecture and design with respect to their level. Knowing Elixir would be great, but was almost never the case
Ps: I only talk about technical skills above because bad culture fit would have stopped the interview short- well before entering the technical questions part.
honestly its the same thing I look for in everyone I interview people for development jobs:
People side:
Works well with others
Communicates well, verbally and visually (bonus if they’re able to do sequence diagraming/state machines/etc for explaining concepts)
Not afraid to say they don’t know
Eager to learn things they don’t know
Enjoys problem solving
Technical side:
Solid understanding of networking
Solid understanding of data persistence (SQL most likely but things vary with position)
Can tell a good story about a project they’ve worked on, what the hard parts were, what the good parts were, what they’d do differently on a 2.0 version of same thing
Elixir/Erlang:
Understanding of the Actor model
Able to explain what a GenServer is, and sketch out the basics of one
Bonus:
Can explain how they’ve deployed/monitored any production system.
Thats it. Anyone with those things would be able to drop into an existing elixir/erlang codebase and contribute to it in a reasonably short amount of time. Interviewers getting into super detailed questions about libraries/syntax are just trying to mark their territory and it’s going to be a not-enjoyable place to work.
From my personal experience applying for a Elixir position, the companies I interviewed with were usually looking for people with professional experience in Elixir to either migrate existing Rails stack, or leading a team on a new service. People like me whose professional career has nothing to do with Elixir but hobby projects won’t make the cut. I don’t think those companies look at my GitHub either.