Hello #dearAlchemist!!! Welcome to #elxpro

Here we discuss strategies and tips for your Elixir learning journey, from scratch to a hero Elixir developer. =D

Why is it essential to set up your machine to use Elixir?

Having the tools on time will help you be more productive and performant.

And in addition to letting you perform faster, it will be simple and fast when you have everything you need to develop with Elixir.

Do you remember when it was necessary for your career?

For most of the projects I worked on, I noticed how arduous it was to set up my local machine to work with the right tools. When I decided to work with Elixir, I mapped all essential tools to work in multiple scenarios. I got lucky because this setup was always a success. Why do I want to share it with you? To make your life as an Elixir engineer easier.

Let`s start

Tools

Zsh

Zsh is a nice tool to use in your terminal

brew install zsh zsh-completions

Curl

Sometimes to, test HTTP requests is very useful - Install Curl

Firacode

After installing, I highly recommend setting up your terminal with this font.

This font is easier to read for a developer - Install Firacode

OhMyZsh

Nice tool to make your terminal awesome for a developer - Install

Elixir

The most important tool. Elixir lang - Install

Phoenix

The most important framework. Phoenix to create Web Elixir projects. - Install

GIT

Essential to control version code - Install

Docker

This is one of the most essential tools for a new-age developer. Docker makes our life easier to simulate environments, build our own image projects, and install databases and tools for the developers without dirtying our computers. - Install Docker

Redis - When I need to use Redis in a project, I install it using docker.

Mongo - When I need to use Mongo in a project, I install it using docker.

Kafka - When I need to use Kafka in a project, I install it using docker. I always use the script below, and it work really well - My script to run Kafka

Postgres - Postgres is an essential Database for those who work with Elixir. And The script below that I provided for you is a way to install the Postgres database easily and fast to start without your need to make any extra configurations in your local machine.

Create the network: docker network create pg --driver bridge

Create the docker image: docker run --name pg --network=pg -e "POSTGRES_PASSWORD=postgres" -p 5432:5432 -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data -d postgres:13.4

Gigalixir - A very nice tool to deploy Elixir application and cheap.

Fly.io - A very nice tool to deploy Elixir application and cheap as well.

Insomnia - For me, is one the best HTTP tool, also easier to create a good APIs with REST/GraphQL documentation.

DBeaver - Access SQL databases

Optional Tools

Kubernetes - Most of the time, when you install Docker, the tool gives you kubernetes

K9s - Kubernetes CLI To Manage Your Clusters In Style!

kubectx - Tool to change kubernetes clusters easily

kubernetes-cli - Tool to execute commands in kubernetes.

Helm - Helm helps you manage Kubernetes applications — Helm Charts help you define, install, and upgrade even the most complex Kubernetes application

Conduktor - We take the complexity out of Kafka. We give you the tools you need to troubleshoot, develop, test, and collaborate with confidence.

Cloud SDKs

Most of companies use one of them. I prefer google cloud :D

Google Cloud SDK - Tool to access Google Cloud Services

Aws-Cli - Tool to access Aws Services

Eks-ctl - Tool to manage Aws kubernetes

VsCode

Install VsCode

My settings.json to VSCode

  • Color Highlight
  • ElixirLS
  • ENV
  • Git Graph
  • Live Share
  • Markdown All in One
  • Material Icon Theme
  • Phoenix Framework
  • PostCSS Language Support
  • Tailwind CSS IntelliSense
  • Tools for Apache Kafka

ShortCuts and Zsh

Install Z-init - bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/zdharma-continuum/zinit/HEAD/scripts/install.sh)"

Plugins Zinit:

zinit light zdharma/fast-syntax-highlighting
zinit light zsh-users/zsh-autosuggestions
zinit light zsh-users/zsh-completions

My Zshrc config -https://gist.github.com/theguuholi/d5da8b11d100f04290f8ba203f991767

:D