An Elixir developer's career roadmap
Looking for an Elixir developer's job? Need a career roadmap? This article will guide you step by step! From entry-level jobs, mid developer positions, to senior Elixir engineer and beyond! Have fun!
No matter whether you are unhappy with your current programming language, or you heard some hype over the Elixir ecosystem; whether you are a recent college grad, or maybe still studying, you finally found out that functional programming is a thing.
You have nothing to lose but your chains! You type “elixir developer's career path” in the search bar, hit the enter button, only to find a couple of generic articles with no real value. Is it time to go back to object-oriented programming? Hell no!
This article will do away with your frustration, fill an information void and give you a roadmap of an Elixir developer's potential career.
Table of Content
- Switching to Elixir feels hard? It doesn't have to!
- Starting your Elixir career
- Intern/junior Elixir developer
- Mid Elixir developer
- Transitioning into Elixir from other languages
- Senior Elixir developer
- What comes next
- Wrapping up
Switching to Elixir feels hard? It doesn't have to!
Switching to Elixir can be overwhelming. Seeking Elixir jobs also. There are much fewer resources out there about Elixir than about other languages. But there is even less information about career development as an Elixir engineer. I want to tackle that subject and show you what crucial skills we value at Prograils.
Starting your Elixir career
Whether you already have a professional programming background or you want to land your first job in software development, one of the best starting points is the official Elixir website. The “Getting started” guide will help you get to a point where you can write simple applications in Elixir.
You can check out our free Elixir guide as well. Learning the language syntax is only the beginning of your thrilling adventure.
Intern/junior Elixir developer
Many great companies, while hiring entry-level developers, decide based on your potential. The decisive factor is “who you will be in X months”, much more than “who you are now”.
At Prograils, we also believe that potential matters - so if you want to start your career in software development, feel free to get in touch with us.
Elixir developers at that point should have a solid grasp of syntax and recursion, as well as know about the existence of OTP tools in Elixir. Elixir is commonly used paired with the Phoenix framework.
The Phoenix Hexdoc package has a decent guide section that can make you familiar with it. You should try to create a simple project, whether it's a task list, chat using sockets, or something unique. It’s always good to have something small that works and what you can show to your recruiter. Remember to write tests, as these are essential to portfolio projects.
Mid Elixir developer
As a mid developer, you should be independent and able to perform most of the tasks alone, bring value to the product (e.g. share ideas that can benefit its business side or improve development processes), as well as be a crucial part of the team. You may need some help in more complex tasks or while asking about architecture decisions.
Discussing solutions and being able to dive into certain subjects deeper, possibly with some guidance, should be essential to your everyday work. I noticed that mid Elixir devs get there in 2 ways: either organically, by starting as junior Elixir devs and getting experience, as well as getting a grasp on the people side of the business, or transitioning from a mid/senior position in another language.
Transitioning to Elixir from other languages
Transitioning can be hard, but there are few options to make it smoother:
- Learn basics (All skills that Junior developer has),
- Try out popular OTP functionalities (genservers, ets, messages, supervision tree,
- Understand Phoenix specific abstractions (e.g. plugs, endpoints, pipelines),
- Focus on bringing value in your new position (e.g. participate in discussions, share ideas, or give feedback)
- Find out what tools the company uses and focus on strengthening your skills in them.
When your transition period ends, you should already be a valuable asset to your team. It’s good to talk with senior/lead developers or managers about the next steps to becoming a senior developer.
Senior Elixir developer
A senior Elixir developer is someone who has a deep understanding of OTP and how to leverage it in software. Knowledge of functional design patterns and using popular Elixir libraries swiftly. CQRS, RPC, event sourcing are concepts you are familiar with and know their pros & cons.
DDD (domain-driven design) should be a crucial part of the code you create, bound with a deep understanding of the client’s business model and his expectations and needs. Senior developers usually have some subjects they specialize in, be it architecture, databases, etc.
What comes next?
Becoming an expert in your field feels great and can be a good place to be, however, there is a possibility to become burnt out. But worry not, this can become just the beginning of your career beyond Elixir development. Whether you are more technical or people-oriented, there are some places you can go:
- from Architect towards Principal Architect,
- from Tech Leader to Principal Engineer,
- from Team Leader to Director of Engineering,
- or starting your own business.
These paths vary from company to company, so when you will be looking for a new opportunity as a senior developer or talking about your future within the company it is essential to ask questions about how you can keep progressing and where, if everything goes the way you anticipate, you can get in the next few years.
Stay ambitious and know where you want to get in the next couple of years. Good companies should support your growth instead of hindering your progress, so coming open about your ambitions, although tough, is valuable.
Career development in the Elixir language is not so different from the one in other languages. You focus on skills crucial to the platform as well as other engineering abilities.
While progressing, you will start to understand the value of the human side of the software business and face many challenges that are not related to the language you are using. Understanding that language is just a tool, as well as getting knowledge of software systems can change your approach towards more engineering-oriented. Being a software developer is different from being a software engineer, but that is not the subject of that article.
At Prograils, we value individuals and believe that everyone should have an environment to grow. No matter if you are just starting or you are a seasoned developer, you can get in touch with us.
Great individuals who are team players are the exact people we are looking for.