<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Amanda Souza</title>
    <description>The latest articles on DEV Community by Amanda Souza (@aminueza).</description>
    <link>https://dev.to/aminueza</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F344333%2F5b31b89e-27e5-4e91-9371-202ca87fa910.jpeg</url>
      <title>DEV Community: Amanda Souza</title>
      <link>https://dev.to/aminueza</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aminueza"/>
    <language>en</language>
    <item>
      <title>Recrutando na Microsoft: Minha experiência como entrevistadora técnica</title>
      <dc:creator>Amanda Souza</dc:creator>
      <pubDate>Sat, 07 Nov 2020 20:29:35 +0000</pubDate>
      <link>https://dev.to/aminueza/recrutando-na-microsoft-minha-experiencia-como-entrevistadora-tecnica-3cpe</link>
      <guid>https://dev.to/aminueza/recrutando-na-microsoft-minha-experiencia-como-entrevistadora-tecnica-3cpe</guid>
      <description>&lt;p&gt;Recentemente eu aceitei o desafio de realizar entrevistas técnicas na Microsoft. Como eu sempre gostei de resolver desafios no Hackerrank e Codility, achei que seria uma experiência interessante para poder entender e absorver mais a cultura da empresa. Um fato que admiro na cultura da Microsoft é observar o candidato/candidata como uma pessoa que possui sonhos e planos e não apenas como mais um candidato/candidata. Diferentemente de outras entrevistas técnicas, eu percebi que na Microsoft o principal objetivo é ajudar o candidato/candidata a ser aprovado com sucesso, algo que não observei em outras entrevistas que realizei para &lt;strong&gt;big techs&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Para ser entrevistador/entrevistadora, você deve realizar um treinamento para entender os principais conceitos de inclusão e &lt;strong&gt;bias&lt;/strong&gt;. A finalidade desse treinamento é diminuir o nosso &lt;strong&gt;bias&lt;/strong&gt; inconsciente e analisar o candidato de forma justa, baseado nos seus conhecimentos. Muitas vezes o nosso inconsciente não nos permite analisar alguém pelo que ela/ele sabe e o pre-conceito que temos, baseado nas nossa experiência de vida, muitas vezes impede uma análise justa das &lt;em&gt;skills&lt;/em&gt; de um candidato/candidata. Como por exemplo, eu evito fazer entrevistas técnicas de amigos e pessoas de mesma nacionalidade que a minha. Assim eu evito o &lt;strong&gt;bias&lt;/strong&gt; de beneficiar alguém só porque eu o conheço ou me sinto confortável por ter a mesma cultura que a minha.&lt;/p&gt;

&lt;p&gt;Um entrevistador &lt;em&gt;padawan&lt;/em&gt; começa acompanhando outros entrevistadores seniors para adquirir experiência. No meu caso foi o oposto, fui enviada diretamente a realizar a minha primeira entrevista técnica sem realizar nenhum &lt;em&gt;shadowing&lt;/em&gt; com outros entrevistadores. Confesso que foi assustador e demandou uma preparação antecipada de 3 dias. A preparação consiste em escolher questões compatíveis com o tempo e nível da entrevista e resolvê-las com o objetivo de adquirir entendimento aprofundado no desafio. Embora tenha sido desafiante, tudo ocorreu como esperado.&lt;/p&gt;

&lt;p&gt;Conforme as minhas experiências em entrevistas técnicas na Microsoft, eu gostaria de compartilhar como funciona todo o processo. Primeiramente, um/uma entrevistador/entrevistadora irá contactar você por vídeo chamada e ele/ela analisará suas &lt;em&gt;skills&lt;/em&gt; para entender se os conhecimentos são suficientes para os requerimentos da vaga. Essa entrevista é chamada de &lt;em&gt;phone screen&lt;/em&gt;. Em seguida, você deverá resolver três problemas de code challenge. Para treinamento, sugiro criar uma conta no Codility como desenvolvedor e resolver os principais problemas do site. Dessa forma, você ficará familiarizado com a ferramenta e como são os desafios.&lt;/p&gt;

&lt;p&gt;A entrevista técnica chamada de &lt;em&gt;onsite&lt;/em&gt; consiste em quatro etapas: entrevista de codificação realizada por engenheiros da Microsoft, design e arquitetura de sistemas realizada por engenheiros de nível senior, design de software feita provavelmente pelo seu futuro manager e entrevista comportamental realizada pelo manager do manager da vaga.&lt;/p&gt;

&lt;p&gt;Na entrevista de codificação ou &lt;em&gt;code interview&lt;/em&gt; o candidato/candidata é desafiado a resolver alguns desafios que envolvem algoritmos e estrutura de dados. O principal objetivo dessa entrevista é analisar o candidato/candidata baseado nos conceitos básicos de ciências da computação e verificar suas habilidade de cooperação em time quando são desafiados com problemas do dia a dia. Espera-se também que o candidato/candidata saiba notação Big O e os principais algoritmos de otimização computacional como o algoritmo de Floyd-Warshall, programação dinâmica, algoritmo guloso, divisão e conquista, etc. Eu indico realizar treinamentos no Codility, Hackerrank e principalmente no Leetcode. Este último (Leetcode) possui um fórum com os principais desafios e perguntas requeridas pelas &lt;strong&gt;big tech companies&lt;/strong&gt;, incluindo Microsoft.&lt;/p&gt;

&lt;p&gt;A entrevista de design de sistemas vai muito além de modelar um software. Conceitos de computação em nuvem, DevOps, microserviços e escalabilidade, &lt;em&gt;serveless&lt;/em&gt;, arquitetura orientada a eventos, padrão publisher-subscriber, proxies, algoritmos de load balancing e caching são apenas alguns dos requerimentos que os entrevistadores esperam de um/uma candidato/candidata. Espere também perguntas básicas de redes de computadores, banco de dados e sistemas Linux.&lt;/p&gt;

&lt;p&gt;Os requerimentos de design de software abrangem conhecimentos de princípios SOLID, clean code, injeção de dependência, design patterns e refatoração. &lt;/p&gt;

&lt;p&gt;A última entrevista é baseada na análise comportamental do candidato/candidata. São esperados que o candidato pense fora da caixa, demonstre a capacidade de aprender e saiba lidar e aprender com as falhas. Os projetos pessoais também são bastantes cobrados, assim um GitHub com alguns projetos de relevância, como contribuições em projetos open source aumentarão as suas chances de receber um &lt;strong&gt;hire&lt;/strong&gt; nessa etapa da entrevista. &lt;/p&gt;

&lt;p&gt;Em todas as entrevistas são esperados do candidato/candidata espírito de liderança, boa comunicação principalmente em inglês, facilidade de trabalhar em time, objetivos de carreira bem definidos e principalmente a habilidade de aprender. Essa última eu considero a mais importante, pois raramente alguém será 100% compatível com os requerimentos de uma vaga.&lt;/p&gt;

&lt;p&gt;Finalizando, posso dizer que a oportunidade de colaborar com o processo de recrutamento da Microsoft proporcionou-me um conhecimento que até então eu não tinha vivenciado. A cada candidato/candidata entrevistado, eu aprendo mais um pouco sobre novas tecnologias e novos pensamentos, conforme absorvo suas experiências e conhecimentos. Uma vantagem única que me faz crescer não apenas tecnicamente mas também como pessoa. Como diz um amigo: é sempre um prazer conversar com pessoas inteligentes.&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>microsoft</category>
      <category>recrutamento</category>
    </item>
    <item>
      <title>Mastering MinIO: Using Terraform to manage IAM Users and S3 buckets</title>
      <dc:creator>Amanda Souza</dc:creator>
      <pubDate>Sun, 01 Mar 2020 23:46:18 +0000</pubDate>
      <link>https://dev.to/aminueza/mastering-minio-using-terraform-to-manage-iam-users-and-s3-buckets-4kkp</link>
      <guid>https://dev.to/aminueza/mastering-minio-using-terraform-to-manage-iam-users-and-s3-buckets-4kkp</guid>
      <description>&lt;p&gt;In the middle-age of Internet Era, an ancient IT professional, widely known as &lt;em&gt;sysadmin&lt;/em&gt;, fearful used to deploy and manage infrastructure manually. The darkest time would be worst when Darth Vader decides to take a time off from the Death Star (aka vacation) and leaves the control under the Stormtroopers team with no documentation. One mistake and the Death Star was destroyed: server misconfigured, slow deployments and recurring downtimes. It would be almost funny if it weren't so sad. However, thanks to the DevOps Revolution, it has been changing.&lt;/p&gt;

&lt;p&gt;Besides a new &lt;strong&gt;cloudish era&lt;/strong&gt; has begun, building production-ready environments are hard, stressful and require time. Even though your company is cutting-edge modern solutions - Docker, Kubernetes, S3 buckets, microservices, machine learning, etc. - mastering high scalability is quite complicated. To save DevOps/Developers teams from the dark side,  &lt;a href="https://www.hashicorp.com/resources/what-is-infrastructure-as-code"&gt;Infrastructure as Code (IaC)&lt;/a&gt;  has emerged alongside the DevOps workflow, pledging itself for managing and provisioning IT infrastructure through script files in an easy way.&lt;/p&gt;

&lt;p&gt;There are many tools that perform infrastructure automation capabilities and use IaC. In this case study, we are going to manage  &lt;a href="https://min.io/"&gt;MinIO buckets and IAM Users&lt;/a&gt;  using  &lt;a href="https://www.terraform.io/"&gt;Terraform&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://play.minio.io:9000/"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8XcLoweo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://media-exp1.licdn.com/dms/image/C4E12AQGS2z5Hl6Oteg/article-inline_image-shrink_1500_2232/0%3Fe%3D1588809600%26v%3Dbeta%26t%3Dhx_XjDA5aww5OjFJ9o9CwOBxuLPznkpUyZ4gRrA5hn4" alt="An example of MinIO server"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MinIO Simple Storage Service (S3) is high-performance Kubernetes-friendly object storage, compatible with Amazon S3 and 100% open source. MinIO can run in on-premise servers or even better; you can run it locally using  &lt;a href="https://hub.docker.com/r/minio/minio/"&gt;Docker&lt;/a&gt;. It means MinIO is free of charge and you don't have to sign up for anything. MinIO is a key for those companies which have dedicated servers and want to start migrating functionality of their legacy systems to cloud environments.&lt;/p&gt;

&lt;p&gt;Although all pros, there is a con in MinIO buckets regards provisioning the Identity and Access Management (IAM): you have to perform users, policies and groups as the darkish way through a client. The  &lt;a href="https://docs.min.io/docs/minio-client-complete-guide.html"&gt;MinIO mc&lt;/a&gt;  provides a solution for managing MinIO by UNIX commands like ls, cat, cp, mirror, diff, find etc. It's the hard way, but it gets the job done. Now, you might be asking yourself: What about the benefits of IaC in MinIO buckets? I'm thrilled to announce a new  &lt;a href="https://github.com/aminueza/terraform-provider-minio"&gt;Terraform provider for MinIO&lt;/a&gt;  to manage not only S3 buckets but also IAM Users, groups and policies. You no longer need to provisioning, compiling and distributing MinIO resources on your own!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GuOR5XXD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://media-exp1.licdn.com/dms/image/C4E12AQHkGf5h4m3VTQ/article-inline_image-shrink_1000_1488/0%3Fe%3D1588809600%26v%3Dbeta%26t%3D4vZjgyny0bBGPhWlAzLH2iR1ksZ0fGfIMPXVen1N7a0" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GuOR5XXD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://media-exp1.licdn.com/dms/image/C4E12AQHkGf5h4m3VTQ/article-inline_image-shrink_1000_1488/0%3Fe%3D1588809600%26v%3Dbeta%26t%3D4vZjgyny0bBGPhWlAzLH2iR1ksZ0fGfIMPXVen1N7a0" alt="Não foi fornecido texto alternativo para esta imagem"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Terraform provider MinIO is an open-source tool written in Golang, responsible for understanding Minio API interactions for the lifecycle of a resource: create, read, update, delete. MinIO provider gives you a visible way for monitoring resources as code and provides similar benefits like automation, visibility, and collaboration.&lt;/p&gt;

&lt;p&gt;The full source code of this MinIO provider is available on &lt;a href="https://github.com/aminueza/terraform-provider-minio"&gt;GitHub&lt;/a&gt;. Everyone is welcome to use and collaborate. We have invested a lot of time and effort into MinIO provider for covering the most of resources and making it friendly to use. However, there are few resources which are under development.  &lt;em&gt;Plus:&lt;/em&gt;  If you are not familiar with HCL language, HashiCorp has &lt;a href="https://learn.hashicorp.com/terraform/"&gt;excellent tutorial resources&lt;/a&gt; you can look into to get the basics of Terraform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;May the force be with you!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>go</category>
      <category>terraform</category>
      <category>minio</category>
    </item>
  </channel>
</rss>
