Avaliação do Candidato *Bento Cussei* === # A minha avaliação Com base na avaliação curricular do candidato Bento Cussei, fiquei com a interpretação que ele possui uma formação sólida em Engenharia de Ciências Informáticas, com destaque na Universidad de las Ciencias Informáticas, sita em Cuba, onde obteve a média final de 17/20 e participou como docente adjunto. O mesmo afirma possuir conhecimentos avançados em linguagens de programação, sistemas operacionais, banco de dados e inteligência artificial, e esta em fase de formação e posteriomente certificar-se em Análise de Dados com Power BI e Business Intelligence. O Bento possui experiência de trabalho como freelancer, onde apresenta ter desenvolvido projectos de software e modelos de aprendizagem de machine learning para diferentes sectores. Ele também trabalhou como engenheiro de software e cientista de dados, tendo participado na criação de aplicativos financeiros e na investigação de algoritmos de inteligência artificial para tradução de texto e imagem. :::warning **Alertas:** * Apresenta pouco tempo de experiência com um alto número de linguagens que diz dominar; * como freelancer, dificultando identificar o quanto foi a sua profundidade no projecto e as suas decisões. * Devido à sua formação e histórico académico existe o risco do candidato possuir um conhecimento teórico muito elevado, poderá dar-se o caso que possua baixa productividade e profundidade na aplicação em soluções reais e no desenvolvimento do dia a dia; * É um enorme alerta referente ao grande número de tecnologias que o Bento afirma possuir conhecimento versus a relação actual tempo de trabalho, por norma é um alerta de conhecimento superficial em muitas tecnologias mas sem dominio efectivo de nenhuma. ::: :::danger A ausência de experiência em trabalhar em uma empresa especializada no ramo de AI e Machine Learning pode ser interpretada como uma preocupação, indicando uma falta de experiência profissional em ambientes corporativos com requisitos e desafios complexos. Além disso, a falta de experiência em produtos reais pode ser um indicativo de que o Bento não teve a oportunidade de aplicar as suas habilidades e conhecimentos em projetos significativos e com elevado impacto. ::: # Script da Entrevista **Pode contar-nos um pouco sobre sua formação acadêmica?** R: *Uma resposta detalhada e objectiva sobre a sua formação acadêmica, incluindo a instituição de ensino, o curso e o período de estudo.* **Pode-nos falar um pouco sobre as suas habilidades técnicas, especialmente em linguagens de programação e sistemas operacionais?** R: *Uma resposta detalhada sobre as suas habilidades técnicas, incluindo as linguagens de programação e sistemas operacionais que ele domina além das tecnologias e ferramentas que ele tem conhecimento.* **Possuis experiência como freelancer e também como engenheiro de software e cientista de dados. Pode-nos dar um exemplo concreto de um projecto que desenvolveu nesses papéis?** R: *Um exemplo concreto de um projecto desenvolvido como freelancer ou engenheiro de software e cientista de dados, incluindo a descrição do projecto, as tecnologias utilizadas e os resultados alcançados.* **Mencionáste possuir conhecimentos avançados em inteligência artificial. Podes-nos explicar como aplicáste esses conhecimentos em um projecto específico?** R: *Uma explicação clara e objectiva de como ele aplicou os seus conhecimentos em inteligência artificial em um projeto específico, incluindo as tecnologias utilizadas, os desafios enfrentados e os resultados alcançados.* **Possuis formações em Data Science e Inteligência Artificial. Como aplicas esses conhecimentos na tua rotina de trabalho?** R: *Uma descrição clara e objectiva de como ele aplica os seus conhecimentos em data science e inteligência artificial na sua rotina de trabalho, incluindo exemplos de projectos e tecnologias utilizadas.* **Como você trabalha com Big Data?** R: *Para trabalhar com Big Data, eu usaria ferramentas como Apache Hadoop ou Apache Spark para processar grandes quantidades de dados. Eu também consideraria a utilização de técnicas de distribuição de dados, como o MapReduce, para optimizar o desempenho.* **Como você implementaria um modelo de aprendizagem de machine learning em um projecto real?** R: *Para implementar um modelo de machine learning em um projecto real, eu seguiria os seguintes passos: (1) coleta e pré-processamento de dados, (2) seleção de recursos, (3) formação do modelo, (4) avaliação do modelo, (5) optimização do modelo e (6) implementação do modelo.* **Como lidarias com um problema de overfitting em um modelo de machine learning?** R: *Para lidar com um problema de overfitting, eu consideraria técnicas como regulação, validação cruzada e simplificação do modelo. Eu também avaliaria se o conjunto de formação está representativo o suficiente para o conjunto de testes.* **Como conseguirias garantir a segurança de dados em um projecto envolvendo inteligência artificial?** R: *Para garantir a segurança de dados em um projeto envolvendo inteligência artificial, eu usaria técnicas de criptografia e anonimização de dados. Eu também consideraria a implementação de políticas de acesso restrito aos dados sensíveis.* **Trabalháste com alguma ferramenta de análise de dados? Podes-nos dar um exemplo concreto?** R: *Eu já trabalhei com a ferramenta Power BI para análise de dados. Em um projecto anterior, usei o Power BI para criar visualizações interactivas de dados financeiros que permitiam aos utilizadores explorar e analisar dados em tempo real.* **Como abordarias a solução de um problema de classificação multiclasse? Já trabalháste com técnicas de processamento de linguagem natural? Pode-nos dar um exemplo de aplicação?** R: *Para abordar a solução de um problema de classificação multiclasse, eu consideraria a implementação de um modelo de machine learning que tenha suporte para múltiplas saídas, como o modelo de classificação one-vs-all ou one-vs-one.* **Como optimizarias o desempenho de um modelo de machine learning? Já trabalhás-te com técnicas de visão computacional? Podes-nos dar um exemplo de uma aplicação?** R: *Sim, já trabalhei com técnicas de processamento de linguagem natural. Por exemplo, em um projeto anterior, usei o algoritmo de etiquetagem gramatical do spaCy para classificar palavras em suas respectivas classes gramaticais em um corpus de texto.* **Como lidarias com dados ausentes em uma base de dados?** R: *Para optimizar o desempenho de um modelo de machine learning, eu consideraria técnicas como validação cruzada, selecção de recursos, simplificação do modelo* **Já utilizáste algum padrão de projecto nos teus projectos anteriores? Se sim, pode nos dar um exemplo?** R:*Sim, já utilizei padrões de projecto em projectos anteriores. Por exemplo, em um projecto de sistema de gestão de pedidos, utilizei o padrão de projeto MVC (Model-View-Controller) para separar as camadas de modelo, visualização e controlo.* **Conheces o padrão de projecto Singleton? Se sim, pode-nos dar uma breve descrição de como ele funciona?** R:*Sim, conheço o padrão de projecto Singleton. Ele é utilizado para garantir que uma classe tenha apenas uma instância em todo o aplicativo e forneça um ponto de acesso único a essa instância. Isso é útil quando precisamos controlar o acesso a recursos compartilhados ou garantir que exista apenas uma única fonte de dados.* **Qual é a tua opinião sobre o uso de padrões de projecto no desenvolvimento de software?** R: *Eu acredito que o utilizaçãoes de padrões de projecto é fundamental no desenvolvimento de software, pois eles ajudam-nos a resolver problemas comuns de forma organizada e consistente, tornando o código mais legível, manutenível e escalável. Além disso, os padrões de projecto auxiliam a melhorar a qualidade do software e tornam mais fácil para outros desenvolvedores entenderem e continuarem o desenvolvimento.* **Pode-nos dar exemplos de três padrões de projecto baseados no padrão GoF e descrever a sua funcionalidade?** R: *Com certeza! Aqui estão três padrões de projecto baseados no padrão GoF e uma breve descrição sobre a sua funcionalidade: **Padrão Factory Method**: Este padrão é usado para criar objectos sem especificar a classe exacta do objecto a ser criado. Ele define uma interface para criar um objecto, mas permite que as subclasses decidam qual classe instanciar. Isso torna o código mais flexível e escalável, pois permite a adição de novos objectos sem afectar o código existente. **Padrão Observer**: Este padrão é usado para implementar uma relação de um para muitos entre objectos, de forma que quando um objecto muda de estado, todos os seus dependentes são notificados e actualizados automaticamente. É útil em situações em que precisamos monitorar o estado de vários objectos e actualizar outros objectos de acordo. **Padrão Decorator**: Este padrão permite adicionar comportamentos ou responsabilidades adicionais a um objeto dinamicamente, sem alterar a sua classe original. Isso é útil quando precisamos adicionar funcionalidades adicionais a um objecto sem afectar outros objectos da mesma classe ou sem precisar criar uma nova subclasse.* **O que é um ORM e quais são as suas vantagens e desvantagens?** R: *ORM significa Object Relational Mapping, que é uma técnica de programação que permite acessar dados de uma base de dados relacional usando objectos de programação. Em outras palavras, ele é uma camada de abstracção que traduz as operações de banco de dados em operações de objecto, permitindo que os desenvolvedores trabalhem com dados provenientes dos bancos de dados como objectos do programa, em vez de escrever código SQL manualmente.* *Vantagens:* *Abstração de código SQL: permite que os desenvolvedores trabalhem com dados de banco de dados como objectos, em vez de escrever código SQL manualmente. Facilidade de manutenção: o código fica mais claro e legível, o que facilita a manutenção e o desenvolvimento futuro. Portabilidade: o código é independente da base de dados, o que significa que ele pode ser facilmente transferido para outra base de dados sem alterações significativas. Proteção contra ataques SQL Injection: os ORMs fornecem protecção contra ataques SQL Injection, pois não permitem a inserção de comandos SQL directamente na consulta.* *Desvantagens:* *Performance: o uso de ORMs pode afectar negativamente o desempenho em aplicações de alta performance devido ao overhead adicional na camada de abstracção. Limitações: algumas operações complexas podem não ser suportadas pelo ORM, o que significa que os desenvolvedores precisam escrever código SQL manualmente. Curva de aprendizagem: os ORMs podem ser complexos de aprender e configurar, especialmente para desenvolvedores que não estão familiarizados com a tecnologia.* # Possivel área de integração Com base no currículo do candidato, ele parece ter habilidades e conhecimentos que o encaixariam em diferentes áreas relacionadas às tecnologia da informação, ciência de dados e inteligência artificial. Algumas áreas que ele pode ser considerado incluem: Engenharia de software: O candidato possui formação sólida em informática e ampla gama de habilidades técnicas, incluindo linguagens de programação, ferramentas de análise de dados e tecnologias de inteligência artificial. Além disso, a sua experiência como freelancer e em empresas indica a capacidade de aplicar os seus conhecimentos em projectos práticos. Ciência de dados: O candidato tem conhecimentos avançados em ferramentas de análise de dados, como Power BI, e habilidades técnicas, como Python, R, SQL e TensorFlow. Além disso, sua formação e experiência em inteligência artificial indicam que ele tem uma visão ampla e aplicável da área de ciência de dados. Inteligência artificial: O candidato possui formação e experiência em inteligência artificial, incluindo habilidades técnicas, como Python, TensorFlow e BERT, e participação em projectos interessantes e inovadores, como a criação de um sistema para tradução de texto a pictogramas. Em geral, o candidato parece ser uma boa opção para diferentes áreas relacionadas a tecnologia da informação, ciência de dados e inteligência artificial, dependendo das necessidades específicas do trabalho. É importante avaliar completamente as suas habilidades e conhecimentos antes de tomar uma decisão sobre em que área ele se encaixaria melhor. # Resultado da Primeira Entrevista O Bento, apresentou um elevado conhecimento teórico e actualmente está a efectuar uma formação e respectiva certifcação em Power BI e Machine Learning na Datasience Academy no Brasil. Os projectos relevantes mencionados no CV, foram efectuados como modelos na faculdade, incluindo o desenvolvimento do software para apoio em crianças com dificuldades de fala, com conversão de texto imagens e pictogramas, AI com processamento de linguagem natural. No que respeita ao Big Data, tem conhecimentos básicos / médios de apache spark - Big Data. Desenvolve APP´s em Flutter. Fortes conhecimentos em Linux e BD´s MariaDB, MongoDB, nomeadamente não é experiente e SQL. Foi honesto, frontal e verdadeiro na questão de descrição verbal, possui um mindset virado para a auto-aprendizagem e quer trabalhar e aprender com os melhores. Sugiro, que seja integrado com uma equipa de Seniores ou Seniores Experts, mas com a função de Júnior, com suporte, apoio e formação (acompnhamento permanente).