NxtRoof - busca colaborativa de propriedades (europa, stack e curiosidades)
Olá
Sou um dev daqueles cheio de ideias, que planeja e bota a mão na massa fora do horario do day job, mas cujos projetos até então nunca tinham visto a luz do dia.
No inicio do ano me mudei, tive uma oportunidade de vir pra europa trabalhar e agarrei. Tem sido uma aventura mas o primeiro perrengue sem duvidas foi em relação à moradia. Minha esposa e eu mandando links por mensagem, aquela clássica conversa que vira uma bagunça e as informações se perdem.
Resolvi criar uma ferramenta colaborativa pra centralizar nossos esforços de pesquisa com todos os dados organizados, comentários e opiniões sobre cada opção cogitada em uma plataforma colaborativa em tempo real.
Beleza, apresentada a proposta do NxtRoof vamos voltar um pouco no tempo.
A primeira decisão: a stack
A ideia estava lá, eu estava enfrentando um problema que me frustrava pessoalmente e portanto conhecia as caracteristicas do que queria na ferramenta. O objetivo principal era que fosse colaborativa e em real time.
Pra toda pessoa técnica tomando essa decisão pesam muito as experiencias anteriores. Eu sou um dev backend. Trabalhei a maior parte da carreira com ruby, mas também tive 1 ano de experiencia em golang antes de voltar a trabalhar com ruby aqui na europa (que por sinal ainda é forte aqui, viu?). Eram portanto duas fortes candidatas. No entanto tinha uma stack que corria por fora. Eu trabalho em fintech fazem uns bons anos. Nesse meio acabei trabalhando com devs que estiveram em outras fintechs, com outras stacks. Apesar de golang estar presente na grande maioria delas, nunca ouvi devs falarem tão bem de outra linguagem quanto meus colegas que tiveram contato com elixir.
Não sei se tem garoto propaganda melhor pra uma linguagem do que um dev que trabalhou com elixir e acabou passando pra outra stack no day job kkkkk.
Além disso, queria conhecer o paradigma funcional. Elixir era a candidata perfeita, além do saudosismo dos colegas, a linguagem foi criada por um BR, José Valim. É construida em cima do erlang e da beam, tech usada por nada mais nada menos que whatsapp. Qual seria a melhor oportunidade pra aprender e colocar em prática do que resolvendo um problema com caracteristicas colaborativas e 'necessidade' de real time?
Bom, escolher uma stack que vc nunca escreveu 1 linha de codigo pra um projeto que vc quer concluir parece coisa de maluco né? Pelo menos se vc tiver com foco em mercado, produto, entregar o mais rapido possivel etc.
Bem, já dei o spoiler, foi meu primeiro projeto que toco até o 'fim' (claro, considerando como 'fim' uma v0 deployada kkkk, mas mesmo assim, chegando à um mvp digno de ver o mundo real).
Apesar de ser outro paradigma com grandes diferenças em relação ao OOP, elixir com framework phoenix bebeu muito da fonte do rails. Acredito ter tido inclusive uma curva de aprendizado mais rapida do que quando migrei pra golang, provavelmente devido ao meu background em ruby. A cada noite depois do trabalho que eu abria o projeto eu ia me sentindo mais em casa.
Hoje, depois dessa experiencia, se pudesse trabalharia full time com elixir. Com certeza ainda tenho muita coisa para me aprofundar e descobrir, mas é impressionante o que já ganhamos out of the box seja pela beam, pelo proprio elixir ou pelo framework. Pubsub de graça, pattern matching <3, liveview que é simplesmente o melhor server rendering que eu tive contato até hoje (tudo via sockets!). O sistema de notificação de grupos foi a feature mais prazerosa do projeto justamente por usar essas caracteristicas da linguagem.
Conclusão
A escolha da stack teve um certo risco mas que valeu muito à pena. Tanto no resultado do produto, era na minha opinião a melhor ferramenta de fato pro problema, quanto no desenvolvimento técnico pessoal na descoberta do paradigma funcional. Acabou sendo inclusive um fator motivador pra levar o projeto adiante mesmo depois de não ter mais a dor (consegui alugar uma casa felizmente!).
Foram diversos momentos onde a mente realmente abriu.
Recomendo demais!
Se vc chegou até aqui, dá uma fuçada: https://nxt-roof.com