I have been a backend elixir developer for about 3 years now. I have been mainly working on simple CRUD applications.
As of last year I have been applying for elixir backend position; however, I have been unsuccessful in landing a job. After having been interviewed, I think I realize what I am missing: making architectural decisions in a complex system.
Its best if I provide a couple of interview questions to showcase what I mean in my above statement:
- When should one use sql vs nosql? What are the pitfalls of each technologies? Are there any performance difference between the two?
- You are tasked with creating a elevators as a service. Each elevator can go up, down or stop. Now how would you design this system using OTP? What are the pitfalls of the decision?
Those were some of the architectural questions I came across. Having a solid understanding of OTP I was able to provide a single high level implementation detail for the #2. But I was stumped when it came to determining the pitfalls of my decision. Furthermore, when pushed to answer similar questions I didn’t know how to answer it.
What should a junior backend elixir developer do in order to gain experience to be able make architectural decisions in a complex system?
- One thought that came to mind was, I should try to implement the system asked in #2 interview question. Even then I am not sure what I should put my focus on in order to gain the experience I need to land a job.
I apologize for the rant but I am stuck in my growth to become an experience backend elixir developer!