"Escolhe um trabalho de que gostes e não terás que trabalhar nem um dia na tua vida."
Confúcio
Full Stack Developer | Pós-graduando em Arquitetura de Software | MBA Gestão de Projetos | C++ C# .Net MVC Java Python | Apache Nginx NodeJS React Linux CLI | Rest/RestFull PHP VueJS Golang
O desenvolvedor full stack é capaz de trabalhar com toda a pilha de desenvolvimento de um projeto. Além de conseguir atuar com o font-end e o back-end, esse profissional também pode contribuir em todas as etapas e partes de um sistema, como o servidor e o banco de dados.
Um dos principais diferenciais para os desenvolvedores full stack é conseguir trabalhar também com desenvolvimento mobile, já que essa área está cada vez mais presente nas empresas — principalmente em startups. Em muitos casos, esse conhecimento é uma vantagem competitiva expressiva para o profissional.
A principal habilidade do full stack developer é possuir interesse ou facilidade de trabalhar com as tecnologias listadas abaixo:
Front-end : é a parte da aplicação que o usuário utiliza para interagir com o sistema, como as interfaces gráficas e comunicação. As principais tecnologias de front-end atuais são as bibliotecas e frameworks Angular, React e Vue.js , todas elas baseadas nas linguagens JavaScript e/ou TypeScript .
Back-end : refere-se à infraestrutura interna de software, autenticação e persistência de dados. Atualmente, a grande maioria das tecnologias para back-end se comunicam com o front-end através de API’s (Application Programming Interfaces) por meio do padrão REST ou GraphQL . Os dados são trafegados em sua grande maioria no formato JSON (JavaScript Object Notation) . As principais linguagens de programação utilizadas no back-end são Java, C#, PHP e JavaScript (Node.js) .
Bancos de dados : são os sistemas especializados em coletar e recuperar os dados utilizados em um ou mais projetos. Atualmente, existem as vertentes SQL e NoSQL Databases. A partir dos Bancos de Dados, podem ser gerados relatórios com informações estratégicas sobre o andamento e evolução do sistema em produção.
Devops : é o processo para manter o sistema em produção de forma estável e com alta performance e disponibilidade. O monitoramento e os testes para novas versões fazem parte dessa rotina. Há também a integração contínua – que realiza todas as etapas necessárias para que o sistema seja atualizado em produção com o mínimo de impacto possível e adoção de microsserviços – que quebram funcionalidades em pedaços menores, aumentando a coesão e diminuindo o acoplamento do sistema.
Mobile : refere-se à criação de apps para dispositivos móveis em grande parte dos sistemas atuais, de forma nativa ou híbrida. A tecnologia mobile pode ser definida como uma alternativa ou complemento ao front-end.
A minha jornada de aprendizagem e inovação do conhecimento começou no ano de 1996, no curso técnico em São José dos Campos - SP, na ETEP - Escola Técnica Professor Everardo Passos, inscrito no curso de Informática Industrial. Quatro anos se passaram, em 2000 fui convidado para fazer estágio na FUNCATE - Fundação de Ciências, Aplicações e Tecnologias Espaciais, onde entrei como estagiário e fiquei por sete anos até chegar a Programador Sênior. Em 2008 tive a oportunidade de mudar de ares, entrei na Aerocarta Engenharia de Aerolevantamentos SA, onde me encontro desde então, se passaram 14 anos e a cada dia um novo aprendizado, cada trabalho um conhecimento adquirido e não para por ai, a evolução nos surpreende dia após dia e temos que estar sempre preparados e abertos para aprender um pouco mais.