oliveiragahenrique

oliveiragahenrique

Experienced developers migrating to elixir - How make it a step up instead a restart

As a senior developer, I’ve already have a good salary and perks that come with time and experience. But I’m really looking forward to work with elixir, but how to justify keep the high salary of a senior developer if I never used elixir in real professional projects? I feel resistance and discredit of many potential employers when I say: “I never used it professionally, but I have studying and practice it a lot”

I’m pretty comfortable solving any practical test the companies could gave me, but I’m struggle even reach this stage, because I’m rejected earlier due to “no professional elixir experience”

I think open source contributions and personal projects are the way to go here, but to build a good portfolio would take time too, maybe at least 2 years of serious studying and practice. Maybe it is the cost? (:

How were your experiences? Did you have to give away something in order to start to build your elixir career? How did it feels? How are you now?

Most Liked

dimitarvp

dimitarvp

Controversial and potentially unethical advice follows.

For me the answer was straightforward – I never did admit to the first 1-2 companies where I worked with Elixir that I had no extensive professional experience with it; I used it at my jobs before my first Elixir job to rewrite several services and to gain confidence in my practical skills (and that was behind my manager’s back).

After that I just answered vaguely “yep, I used it a few times to great success when rewriting parts of a legacy Rails system, and I am looking forward to use it more” and boom, I had my first Elixir job.

People are skeptical about lack of previous professional experience in any area but the senior programmers know that after you gain a certain amount of practice you can then become good at anything in a very short time. Which is what I did with Elixir.

So again, some people might find this advice unethical but as the Americans say: “don’t hate the player, hate the game”. Which means: after I found out what didn’t work and what worked I was able to bluff my way to Elixir jobs and do a pretty awesome job there.

Put your foot at the door by any means necessary. Then prove yourself. As long as you’re not scamming people and are actually pulling your weight and bring value to your employer / customer then both sides have won.

10
Post #3
vfsoraki

vfsoraki

I think I got lucky :smiley:
I was hired in a company to re-implement their core system. At the time I was researching Go and Elixir, before going there. This company was about online advertisement (banners and such).
I spent a month or two on R&D, including Go and Elixir.
Finally, we settled down on Elixir, due to being able to handle concurrent large number of connections ,with small data transfer in each, more easily. Also it provided better soft real-time guarantees.

jukvalim

jukvalim

I’m a freelancer, and got my first paid Elixir gig through a consulting shop I often work through. I’d made quite a bit of noise about my enthusiasm for Elixir with them, and even organized a meetup in my city. So when there was a sudden need for an experienced developer to work in a client project, I was asked to help out. I was able to hit the ground running, no trouble, and charging my usual rate.

I suggest looking into networking as a way to help out with migration to professional elixir work. Attend (or organize) meetups, maybe give a talk or two, get to know other Elixir enthusiasts in the area. That way, when their company needs new developers, it’s very likely they’ll give you a call.

As for why they should pay you the senior developer rates even though you haven’t worked professionally with Elixir before? Elixir is only one part of the tech stack. Let’s take a web development project that is working with Elixir, Phoenix, PostgreSQL, Docker, Nginx, JavaScript ecosystem and so on. Of course, they also use ubiquitous technologies that are usually not even mentioned when looking for developers: HTTP, TCP/IP, DNS, HTML, CSS and so on. Odds are, if you’ve been working with web development before, you already have experience with a lot of that.

In addition, you have experience in aspects of work that are as important as programming skill itself, such as the ability to communicate clearly, clarify requirements, and confidence to push back and suggest alternatives when you can think of a better way. All this experience, both technological and “soft skills”, is worth a lot in terms of development speed and quality, and is therefore a good reason to pay you well. Lacking professional experience in some parts of the stack is not that important, especially when you have the personal enthusiasm to study and practice just those parts on your own. As developers, we have to learn new technologies for new projects all the time anyway.

For interviews, I believe it’s important to internalize the way of thinking I outlined above, and not sell yourself short. It’s easier to convince others of your value if you’re convinced of it yourself.

Where Next?

Popular in Discussions Top

vans163
So useless benchmarks aside, Its possible to write a webserver that can serve 300k requests per second (perhaps more with optimizations)....
New
Rustixir
Hi everyone, im working on find best language/framework/system for high concurrency, high performance and stable performance after wor...
New
cvkmohan
The upcoming Phoenix 1.6 release looks very interesting. Became a habit to watch the commits - and - what they are bringing in. phx.gen...
New
jeramyRR
This is an interesting article to read. Elixir’s performance, like usual, is excellent. However, it seems like the high CPU usage is co...
New
mmmrrr
Just saw that dhh announced https://hotwire.dev/ Is it just me or is this essentially live view? :smiley: Although I like the “iFrame-e...
New
pillaiindu
I want to convert a Phoenix LiveView CRUD website to a CRUD mobile app. What do you think is the easiest way to do so?
New
CharlesO
Erlang :list.nth simple, but 1 - based nth(1, [H|_]) -> H; nth(N, [_|T]) when N > 1 -> nth(N - 1, T). Elixir Enum.at … coo...
New
und0ck3d
Hello everyone! A few days ago I’ve created a topic here about how people were creating CMSs with Elixir and Phoenix. I’ve been studying...
New
ben-pr-p
In general I’ve been sticking to this community style guide GitHub - christopheradams/elixir_style_guide: A community driven style guide ...
New
acrolink
How does the two languages compare when it comes to server side application development? Any experiences or ideas? Thank you.
New

Other popular topics Top

TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 41539 114
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 30877 112
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 43622 214
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New

We're in Beta

About us Mission Statement