Evolução na profissão

Minha carreira profissional começou já no ensino médio onde tive meu primeiro contato com a programação.

No segundo ano, ja decidido a me aprofundar na programação, comecei meu primeiro estagio onde consegui absorver e aprender muita coisa.

Durante o estagio melhorei minha logica de programação e tive uma base de desenvolvimento web.

Descrição da atividade atual

Minhas atividades durante o dia são divididas em:

1- Ajudar e organizar minha equipe.

2- Ajudar o time como um todo.

3- Executar minhas tarefas de código.

Geralmente costumo organizar as tarefas da minha equipe, depois apoiar o time com algumas tarefas e por ultimo executo minhas tarefas individuais.

Durante o dia também tenho participação nas reuniões de definição de projetos e Sprints.

Requisitos mínimos para exercer a profissão

O principal para exercer a profissão é ter vontade de aprender pois essa é uma área muito vasta e que muda mundo e muito rápido.

Ter uma boa lógica de programação. No geral a base da programação é muito importante para trabalhar nessa área não só a logica mas também noções gerais da área.

Saber perguntar (Fazer perguntas boas e necessárias).

Ter uma boa comunicação. Por você normalmente trabalhar em equipes a comunicação é fundamental.

Ferramentas usadas no dia-a-dia

VSCode. Editor de código.

Planner. Para elaborar as sprints..

Zoom. Para reuniões.

Insomnia. Para fazer testes de requisições de API's

Typora. Para executar a documentação do software e do codigo.

AWS services. Servidor.

MySql. Banco de dados.

Tecnologias envolvidas

Linguagens: Lara(framework PHP). Atualmente está sendo a mais usada na parte de back na minha empresa.

Na parte do front: Java script, HTML, CSS, Bootstrap.

Na profissão e trabalho com gerenciamento de banco de dados, manutenção dos servidores, deploy para os servidores, programação para web, integração dos programas com as API's

A metodologia ágil que usamos na empresa é o agile que é uma derivada do Scrum.

Ética profissional

Essa é uma profissão que exige ética o tempo inteiro, principalmente por trabalhar muito com dados pessoais e muitas informações em geral.

Um caso que aconteceu recentemente foi uma pessoa que saiu da empresa, mas fez uma copia da planilha ,foi para uma outra empresa rival e mostrou para eles todos os dados de clientes, formas de calculo. Por isso que a empresa decidiu passar para plataforma para o funcionário não ter acesso tão fácil a esses dados.

Exemplo de resultado tangível

Plataformas:

Irriger connect. Por ser uma empresa multinacional essa plataforma tem 6 linguagens e é a plataforma principal da empresa. Trabalho principalmente na correção de bugs da plataforma.

Telo5(projeto que peguei do 0). Projeto que estou trabalhando atualmente e sua versão mobile.

Valley365. Trabalho mais na correção de bugs pois já estava pronto quando entrei na empresa.

Upload da apresentação

- https://youtu.be/mROR0iLjkjU

Pesquisa


API (application programing interface) é um conjunto de normas que permite a comunicação entre aplicativos/plataformas sem que seja necessário saber sobre a implementação do app que tem uma API.

Uma API permite que um software use certos recursos do software que tem a API com mais facilidade sem que seja necessária um conhecimento vasto sobre a implementação do mesmo.

O google maps por exemplo tem uma API muito usada por outros softwares, esta API permite que o software receba varias informações que existem no Maps(localizações, rotas e etc...) e use essas informações para melhorar a sua aplicação. Tudo isso sem ter que saber sobre a implementação em si do Google Maps, tudo isso por meio de uma API.

Um exemplo de integrações usando API's é o whatsapp que utiliza a lista de contatos do telefone. E outro exemplo comum é a integração do instagram com o facebook que permite por exemplo que uma foto seja postada nos dois app's simultaneamente.

Pode-se separar API's em 4 tipos:

-Publicas ou Abertas: Estão disponíveis para desenvolvedores e outros usuários de forma publica e tem poucas restrições.

-Privadas ou Internas: São ocultadas de usuários externos e usadas somente para sistemas internos de uma empresa. Elas são usadas internamente em uma empresa, entre equipes, para melhorar a produtividade.

-API's de parceiros: API's expostas para parceiros da empresa.

-API's compostas: API's que combinam vários dados de outras API's.

Em resumo uma API é como um garçom, ela recebe pedidos, vai até o programa, pega o que foi solicitado e entrega para quem pediu. Basicamente um facilitador que ajuda na comunicação entre aplicações.

Atualmente as API's são muito utilizadas e extremamente úteis para desenvolvedores, saber trabalhar com elas é muito útil e atualmente esta sendo necessário pois elas estão em todos os lugares.


Dúvidas


  • 01. [Luiz Cláudio] Trabalha com IoT ou GPS? Se sim, quais as integrações vc faz?
  • Sim. Ela se chama INS, ele consegue mapear as areas onde esta "setado", ele usa satélites que transmitem sinais com informações e o receptor desse sinais consegue computar a posição e a velocidade de algum "objeto", ela é muito usada em movimentações autônomas.*


  • 02. [Luiz Cláudio] Em que sentido o curso técnico te ajudou?
  • Me ajudou a ter um planejamento de carreira, ter uma base de metodologias ágeis e me inseriu no mundo da programação e me aprofundar nele.*


  • 03. [Luiz Cláudio] Vc pode dar as características e dificuldades de uma start-up (financeira, nro de pessoas, financiamento, ...)?
  • Um ambiente geralmente mais descontraído comparado com um ambiente corporativo, tem um numero reduzido de funcionários onde geralmente todos tem que fazer "tudo" ou seja são funcionários multifuncionais.*


  • 04. [Luiz Cláudio] Qual a atribuição do Tech Lead?
  • Monitorar e apoiar uma equipe, realizar uma organização e distribuição de tarefas e atuar no desenvolvimentos de correções e implementações de código em programação. São atribuições de cunho de gestão de projetos e desenvolvimento de software.*


  • 05. [Luiz Cláudio] Vc faz duas dailys por dia? É produtivo?
  • Sim. São duas dailys produtivas. uma geralmente de alinhamento de equipe e outra de definição.*


  • 06. [Luiz Cláudio] Projeto, configuração e manutenção de BD são suas atribuições? Vc responde bem nessa parte?
  • Sim. Tanto como Techlead e como Dev Backend, na quipe onde eu trabalho não tem um DBA(Desenvolvedor de banco de dados).Sim nunca tive problemas com desenvolvimento e administração de banco.*


  • 07. [Luiz Cláudio] Pode dar um exemplo de operação (uma função) no Git?
  • "git push -é uma função que realiza o envio de arquivos do meu repositório local para o repositório em nuvem-." *


  • 08. [Luiz Cláudio] Pode explicar melhor a utilização do Insommia?
  • Eu utilizo para realizar teste de desenvolvimento de API's.

Geralmente faço requisições para uma API (usando o protocolo http) e passo uma rota que eu crio para tratar o recebimento e o envio dos dados da API e de acordo com a requisição tenho uma resposta do software.*

  • 09. [Luiz Cláudio] Qual padrão vc usa para documentação dos programas?
  • É utilizado geralmente um diagrama de classes(diagrama UML) isso se tratando de documentações para o time de dev's.

Documentações para o usuário são geralmente mais informais com linguagens usadas mais no dia-a-dia visando um melhor entendimento do usuário final da aplicação.*

  • 10. [Luiz Cláudio] Como você interage com o Dev front-end?
  • Tento entender a logica do layout e como o desenvolvedor front espera receber os dados tratados no backend. Recebo essas informações através das reuniões, conversas do dia-a-dia e até mesmo de duvidas que são reportadas pra mim.*


  • 11. [Luiz Cláudio] Você participa do desenvolvimento de uma aplicação que pode ser manutenida por um dev em outro país?
  • Não. Pois usamos um stack's diferentes no Brasil e o que é desenvolvido por nos no Brasil apenas nos corrigimos e alteramos porem esta previsto a integração das equipes de desenvolvimento do Brasil e de fora.*


  • 12. [Luiz Cláudio] Vc trabalha numa equipe com horários flexíveis? Funciona bem?
  • Sim. Funciona muito bem pois deixa o funcionário mais tranquilo e mantem um nível de entrega da equipe e do funcionário individual. *


  • 13. [Luiz Cláudio] Qual a diferença entre tipagem forte e tipagem dinâmica?
  • Quando se tem uma tecnologia de tipagem forte ela não aceita que você substitua no processo de desenvolvimento o tipo de uma variável, ex: "variável x tipo int" ela não poderá receber valores de cunho diferente de int. A tipagem forte é boa pois ajuda e modulariza bem o código de uma aplicação, tudo fica bem separado diminuindo bem a chance de erro

A tipagem dinâmica ela aceita a substituição no processo de desenvolvimento porem também aceita que você informe o tipo daquela variável. Ex: "variável x=0(observando a variável x sabemos que ela é uma variável int porem ela não tem tipo definido, mas durante o desenvolvimento essa variável x poderá ser uma variável do tipo bool aceitando 0 ou 1). A tipagem dinâmica é um tipo de desenvolvimento que requer atenção e muito cuidado com as variáveis a começar pelo nome saber nomear uma variável de acordo com sua função é essencial, pois uma mesma variável poderá fazer mais de uma função, porem se você tem uma variável bem nomeada ela fara aquilo que esta descrito em seu nome." *

  • 14. [Maria Fernanda] o que seria interessante estudar pra poder atuar nessa área de correção de bugs?
  • TDD(Desenvolvimento orientado a testes), conceito de testes unitários e conhecer, de acordo com onde você trabalha, algum framework de teste referente a tecnologia que é desenvolvida na empresa, conceitos de engenharia de software e saber colher requisitos de projetos.*


  • 15. [Luiz Cláudio] Como funcionam as requisições assíncronas?
  • É tudo aquilo que é feito "por trás dos panos" sem que seja obrigatório recarregar uma pagina, Ex: em uma tela onde um botão tem a função de retornar uma soma, por padrão quando um botão é acionado, ele recarrega uma pagina, mas com uma função assíncrona é possível o carregamento da pagina realizar o calculo e já retorna-lo para o usuário sem que o mesmo perceba. É um tipo de requisição muito usada pelo fato de deixar o fluxo de uso do usuário bem fluido.*


  • 16. [Davy Bittencourt] Vi que vcs utilizam a AWS, consegue dizer pra gente algum cenário onde precisou usar a nuvem pra melhorar a escalabilidade da API?
  • Tem uma API que antes era tratada toda dentro de um banco de dados, como era um BD muito extenso as consultas demoravam muito, decidimos hospedar em nuvem esse banco e tratar com cron job os dados após transformarmos os dados em JSON, isso deixou as consultas mais rápidas e anulou a reclamação dos usuários finais de demora.*


  • 17. [Luiz Cláudio] Por que usar o Bitbucket ou Git?
  • Bitbucket assim como github é uma ferramenta de hospedagem de versionamento de projeto. O git é o software que versiona a minha aplicação que será hospedada, você deve usar pela facilidade e escalabilidade de código, pois você consegue voltar para qualquer versão anterior de sua aplicação e resgatar seja lá o que você quiser e também outros desenvolvedores consegue trabalhar junto com você em diferentes versões e deferentes pontos.*


  • 18. [Davi Lacerda] Como vc gerencia seu tempo para faculdade, trabalho e outras atividades?
  • Durante o dia eu priorizo as atividades do trabalho e durante a noite foco na faculdade e aos fins de semana descanso. E não deixo atividades acumularem.*


  • 19. [Davi Lacerda] Como um dev back-end pensa sobre um programa de bug bounty?
  • Infelizmente não existe o sistema perfeito, impenetrável e super seguro, pois tudo é feito por seres humanos, ou seja, bugs serão recorrentes. Programas de bug bounty são interessantes pois através deles se consegue informações sobre a qualidade do desenvolvimento e também relatórios de bugs recorrentes e onde esses bugs aparecem, pois o foco é literalmente buscar qualquer tipo de bug que possa aparecer na aplicação.*


  • 20. [Bruno Freitas] O dev. back-end trabalha necessariamente em projetos que utilizam a web, seja como armazenamento em nuvem, ou simplesmente como requisito necessário para o funcionamento do projeto?
  • O desenvolvedor backend atua em projetos onde os requisitos do projeto vão alem de requisitos de layout e design(o frontend ele pode acontecer sozinho pois é tudo aquilo que o usuário enxerga, ou seja aplicações que não tenham necessidade de armazenamento de informações ou dados. Já o backend precisa do front para acontecer e também precisa dos requisitos do front alinhados com os requisitos do back, Ex: "quando apertar um botão quero uma tela que me retorne as informações de venda do ultimo mês" esse é um tipo de requisito onde você tem o front que vai criar o bota e a tela e você tem o back que vai tratar os dados para o retorno da informação de venda do ultimo mês). *


  • 21. [Eduardo Alvares] Qual seria uma características ou formação que seria de grande destaque para um Dev Back-end?
  • Um dev Back-end não carece de uma formação especifica porem carece de uma boa logica de programação, saber criar e gerir banco de dados, realizar consultas ao banco de dados, saber receber tratar e enviar dados, ter conhecimento de API's, conhecer tipos de dados, protocolos de internet e saber trabalhar em equipe.*


  • 22. [Maria Fernanda Nunes] Qual a tarefa mais interessante ou desafiadora que você tenha feito recentemente?
  • Tarefa mais interessante: Gestão de projetos e pessoas.

Tarefa mais desafiadora: Desenvolvimento da plataforma TELO5. *

  • 23. [Yuri Christian Marques] Qual a linguagem mais produtiva no mercado atual para os Devs Back End?
  • Não existe linguagem melhor que a outra, existe aquela linguagem que você vai se dar melhor ou a que será requisitada pelo mercado.

Atualmente se tratando de produtividade, velocidade de tratamento das informações, existem diversas linguagens, Ex: Go lang, Framework, Node js, PHP, Python, Ruby e C#.*