Evolução na profissão

Destacar os passos na vida do profissional até chegar onde está. Começando eventualmente por estágio ou curso técnico, explicando os cursos, certificações ou áreas de trabalho ao longo da carreira. As promoções de cargo até a atual função.

Descrição da atividade atual

Descrever o dia-a-dia do profissional. Funções, responsabilidades e atividades assumidas pelo profissional.

Requisitos mínimos para exercer a profissão

- curso técnico, superior ou habilidade necessária para a função que exerce - Conhecimentos básicos necessários para sua atuação, não só técnicos mas também comportamentais.

Ferramentas usadas no dia-a-dia

- Softwares ou recursos físicos obrigatórios ou necessários para que o profissional possa exercer sua atividade.

Tecnologias envolvidas

Conhecimento técnico e científico aplicado na atividade profissional utilizando ferramentas, processos e recursos físicos. Neste caso, escolher uma tecnologia e aprofundar a ponto de poder discutir em sala de aula Exemplos:

  • SO, Banco de Dados, Linguagens, Metodologia ágil para o Engenheiro de Software
  • Redes de Computadores, Roteamento, sistemas de comunicação e comutação para o Analista de Redes
  • Criptografia, Certificação Digital, Banco de Dados, Ambiente Web para Analistas de Segurança
  • Banco de Dados, Normalização, Tuning, redundância para o DBA
  • E assim por diante ....


Ética profissional

- Apontar qualquer situação em que é necessário ética. Seja alguma situação vivida pelo profissional ou que ele tenha tido conhecimento. Importante ressaltar o comportamento adequado do profissional dentro de uma empresa ou de um negócio. - Caso o profissional não sugira nada, a equipe deverá pesquisar e discutir algum caso - Os casos, tanto podem tratar de comportamentos éticos positivos quanto de situações onde a ética tenha sido desvirtuada.

Exemplo de resultado tangível

- Citar um exemplo de algum resultado real produzido pelo profissional. Aqui pode ser o exemplo de um equipamento, de um sistema embarcado, de um sistema web ou mobile, de um projeto ou documento que retrate a contribuição do convidado no negócio onde ele atua.

Upload da apresentação

- https://youtu.be/mROR0iLjkjU

Pesquisa


  • API

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. 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#.*