dopomecana

dopomecana

The title of this topic may sound silly at the first glance. But why I trying to ask you guys is how to go to the next level?
I am currently working for 3 years and a half at company and I don’t know how to evolve more.
When I started elixir I was working with 2 teammates but there was not much guidance from them and since last year I am alone on the elixir project and I feel like I cannot surpass a certain level.
I had a few interviews but I managed to fail almost all of them.
I like learning, in general but without guidance related to what a interviewer wants from you at the interview and then later on the job it’s hard to go to the next level.
I would love to go to a new company were I can level up my knowledge while keeping at least the same salary.

The elixir community it’s great, and I hope I will get some good answers from you guys that will help me go forward in assessing my level and formulate a plan for the next step.
Also this may be helpful for others like me.

Thank you,
Michael

Showing Posts 1 to 10

dmitrykleymenov

dmitrykleymenov

Head up, man, you are not alone in that situation. I feel exact the same, but with ruby. What i’m doing: just “doing”, learning and trying. And what will help you(i’m just sure) is this one - https://www.algoexpert.io. Check it out. There are no elixir tests, but no one can stop you from building your solutions outside their platform. After a couple of months you WILL be skilled enough to find a job. Just come back in a couple of months and tell :slight_smile:

dopomecana

dopomecana OP

thank you for your answer!

jonas_h

jonas_h

I’m not proficient enough in Elixir to give you specifics, but how about some general advice?

It sounds like you’ve hit a plateau, and the solution is the same be it weight lifting, programming or your career. The important thing is to switch things up. Don’t create the same kind of solutions to the same kinds of problems over and over, but challenge yourself by exploring new domains or new styles. For instance, if you’re not comfortable with OTP now’s a good time to time to work on that. Or if you’re only creating web backends, try out some AI problems.

And don’t take interview results as a sign of anything. Interviewing often has nothing to do with the work you’ll do, and in many cases it’s just rolling dice or having to spend a lot of time on developing skills that have no relevance to the work you’ll be doing later. Getting good at interviewing is a different thing than getting good at Elixir or getting good at software development.

Oh and some practical advice for you: start to read code that others write and go through some books that might give you a different perspective. Try to put it in practice, and always ask yourself if there’s a way you could’ve made it even better.

18
Post #3
dopomecana

dopomecana OP

very helpful, thanks a lot

dimitarvp

dimitarvp

I am completely with @jonas_h here – failing an interview means almost nothing. At 41 y/o and being a programming polyglot with a very successful career, I still failed at least 5 Elixir and 3 Rust interviews in the last two-three years and all except one I “failed” simply because people expected and wanted another kind of human character as a colleague and not mine (the so-called blanket statement of “a cultural fit”), or, very often, they were not thrilled that I am not super-duper enthusiastic about their company – this you will likely go against, a lot. There was only one interview I actually failed on technical merits and I still slept quite well that evening because it was an algorithmic problem that I haven’t stumbled upon in like 10 years and because yeah, should I sleep with the “How to beat the coding interview” book under my blanket for my entire life?

Still, your situation gives you two potential vectors for improvement:

  • Diligently write down all the technical assignments you were given and chase them to perfection on your own time, post factum. If the assignments were confidential (they almost always are) and you can’t just post them on your GitHub then break them apart on smaller tasks and ask the community (ElixirForum, Slack, Discord) whether your code can be improved. Pretty sure that alone will get you quite far.

  • Get better at interviewing. First step: understand that people usually don’t care about what you can offer. They say they do but they are looking for certain keywords while you are chatting (plus trying to evaluate your character and/or look if you are excited). Instead of playing a guessing game, try to extract the following piece of information and to project the following message: “you guys tell me what you need and I’ll give you an honest answer if it excites me”. Mind you, don’t say that directly. :003:


Here’s a cliche: do many interviews. A lot of companies will waste your time and never even give you a single word of feedback (“ghosting”) so, you know, don’t lose your sleep over the fact that you could waste a few companies’ time. Open that camera, put those headphones, put a nice shirt, be well-fed (being grumpy because of hunger is real), and do that interview! You’ll learn a lot.

As for Elixir coding in particular… well, I am one of the people around here who absolutely loves helping people improve their code. Post a small GitHub project and ask for feedback. You can mention or DM me directly as well.

But if you need an entirely new set of problems to work on, I might not be the right guy. Hopefully others can chime in on that.

32
Post #5
dopomecana

dopomecana OP

Thank you for your reply, your detailed answer it helps me a lot actually and I think I’m not the only one here. You gave me some good pieces of advice that I’ll try to follow. Thanks again for building such a good community.

davearonson

davearonson

Getting more Elixir experience with feedback will help immensely with your confidence, credibility, and ability to answer interview questions. A few ways to do that:

  • Find an open-source project, in Elixir, that gives decently thorough feedback on pull requests – that last bit will be difficult and tedious to check, but at least narrowing it down first to Elixir projects will help, and maybe some people (not me) can make recommendations.

  • Do the exercises on Exercism.io – and ideally also ask for mentoring there. Specifically ask your mentor on each exercise to be thorough – rather than a cursory “looks okay to me”, ask them to tell you what’s not quite “standard” idiomatic Elixir, what could be improved, what might be a more appropriate Elixir (or for that matter Erlang) function to use in various places, etc. If your mentor is very patient, perhaps even go “above and beyond”, extend the program into other related functionality, including writing tests for that, and ask your mentor for feedback on your additions.

  • On a related note, to get better at testing if you think you need that, when you download an Exercism exercise, don’t look at their test suite yet, just the README containing the “requirements”. Write your own test suite first, then “compare and contrast” with theirs, and try to make the code pass both yours and theirs.

  • Penultimately, the advice Bryan Liles gave me when I was trying to break into Ruby: blog! Yes you may be fairly new to it but there are others even newer, plus you may happen to stumble across, or even think up on your own, something particularly interesting.

  • Lastly, take that “educate the public” idea to the next level and speak at conferences. Again, you don’t have to be some big expert, you just have to know a little bit more than the audience, enough to make the talk worth their time, and then be able to convey that extra bit of knowledge to them. This has extra benefits of name recognition, cachet, and you might even get free (or at least tax-deductible, if you’re a freelancer) trips to interesting places. If you aren’t already confident of your public speaking skills, I recommend first Toastmasters International, and then specifically for conference-type talks (which are much longer and usually involve more visual aids than a typical Toastmasters talk), “TED Talks: The Official TED Guide to Public Speaking”.

dmitrykleymenov

dmitrykleymenov

I’m completely agree wih all of you, guys. Preparing just for interviews without knowing the core things is absolutely stupid. But this isn’t “I know not enough” case, this is “I think that i know not enough”, at least it was my case. It’s not easy to know “not enough for any interview” after a couple of years production experience with a language, especially with such an attitude to learning as dopomecana has. What he is really need is to structure all the knowledge and to understand that he knows more than enough, because holistic picture is what is really checking on interview(at least on adequate ones, in my opinion). Getting that holistic picture helps me a lot to understand why Elixir/Phoenix and their parts in particular made the way they are made. And it was extremely useful for my level as a programmer and for my confidence as well . This is just my expierence :slight_smile: But I think it is pretty close to dopomecana case.

hauleth

hauleth

2 ways:

  • get old
  • move to Spanish speaking country

:wink:


Jokes aside - senior is someone who knows language well (so is mid) as well as they are able to do architectural decision.

For me senior is someone whom mids will ask if they will have a problem with code.

dopomecana

dopomecana OP

That’s precisely what I need. I didn’t meant to say that I’m only need to know more in order to get a new job aka succeeding in a interview, but I meant to say that I want to learn more, to have that holistic picture for me, because I like learning, but I cannot do that since I’m all alone working on a project and the rest of my teammates are doing imperative programming.
So maybe because I work in an environment with an imperative programming mindset where processes are not that used as we do in Elixir makes me finding solutions that are not so Elixirish.
At my last interview I had to design an zapier clone, not implement it, just casually talk about how I can think about it. And both during and after our talk I got the feeling that what I described can definitely work but it’s not how an Elixir programmer would do it. The feedback was that I’m a likeable person but despite that my technical level it’s a little bit under what they are looking for.
And again it’s not only about the interview, if I could learn more by myself without needing to change my job I wouldn’t be unsatisfied with the money I currently make.
What motivates me it’s growing as a developer. Because I feel I reached a plateau like @jonas_h said earlier. And I’m not just posting here and complain about it. Right after the last interview I started reading more, I finished Adopting Elixir(I can’t believe I didn’t read this before) and now I just started reading Mastering Elixir. And not just reading, I’m watching more and more videos presentations about how other people are handling applications design in Elixir. And the reason I posted here is that I felt in the same time that is not enough and I need to interact with you guys and see how you would handle this if you were in my shoes. And I got some pretty good suggestions from you guys and there’s for sure value in both your technical advices and in your general developer/life advices that I couldn’t find in any book I read. thank you!
I created a new topic to see what I missed over that zapier design if any of you could drop a few lines I would be grateful: How would you build a zapier clone in Elixir?.
And again thank you for your advices, @davearonson listed some good ideas which I can follow next.

Where Next? Top

Trending in Chat/Questions Top

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews