What kinds of ways could I contribute to the Phoenix code base? I have a pretty good understanding of OTP and Phoenix considering I have zero production experience.
My goal is to start a career as a Elixir developer and so what I lack in experience, i make up in availability and enthusiasm.
I’d suggest there are two simple ways to get involved with any project, including Phoenix.
Improve the documentation. I know this isn’t what you’re immediately asking but José and Chris really foster the idea of documentation as a first class citizen. So documentation improvements are alway well received and its a way for you to get involved in the project community.
Work on open issues. This is the most direct way to get involved in the code itself and get familiar with the how the maintainers manage the project.
I’d give the community here a chance to give you feedback on areas where documentation could be added or improved. But you don’t need to wait for anything. If you see an opportunity for improvement, submit a PR. Start small so you get a feel for how the project runs - but I’ve no doubt you’ll find the maintainers appreciative of well-intentioned contributions.
While it is very nice that you want to get involved, I would suggest to start with another project. The reason I’m saying this is the fact that phoenix uses almost for everything metaprogramming and the last time I looked at some source code it was borderline unreadable, of course if you are interested in exclusively doing metaprogramming then go for it!
Macros, code generation/injection, AST manipulation all the magic you see in the framework. While the basic concepts are not that hard, creating and debugging macros is very big pain in the ass.
If you are an experienced programmer I would say pick an issue from the tracker and get lost in the code. Breaking something and fixing it is a very useful learning experience. But IMO, don’t submit a PR too early asking for help getting unstuck. Force yourself to get unstuck.
Also just my IMO, but I highly discourage people advertising themselves this way. Particularly when looking for jobs. I have only seen it lead to being abused/taken advantage of. In my experience it leads to your “value” being seen as your willingness to sacrifice your health/personal life for the benefit of someone else. Whatever skills you have accumulated that make you a fit for learning Elixir is your value.