<?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: Guillaume Falourd</title>
    <description>The latest articles on DEV Community by Guillaume Falourd (@guifalourd).</description>
    <link>https://dev.to/guifalourd</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%2F483969%2F84ae7df8-5129-4892-b9a7-c83551cb5648.jpeg</url>
      <title>DEV Community: Guillaume Falourd</title>
      <link>https://dev.to/guifalourd</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/guifalourd"/>
    <language>en</language>
    <item>
      <title>Tecnologia e redes sociais: como iniciar a criação de conteúdos?</title>
      <dc:creator>Guillaume Falourd</dc:creator>
      <pubDate>Mon, 08 Jan 2024 16:48:55 +0000</pubDate>
      <link>https://dev.to/guifalourd/tecnologia-e-redes-sociais-como-iniciar-a-criacao-de-conteudos-4oic</link>
      <guid>https://dev.to/guifalourd/tecnologia-e-redes-sociais-como-iniciar-a-criacao-de-conteudos-4oic</guid>
      <description>&lt;p&gt;Muita gente se pergunta como unir tecnologia e redes sociais visando a construção de autoridade na área de atuação. Neste artigo, vou buscar orientar como compartilhar conteúdos de qualidade de forma organizada e objetiva, mostrando que você é uma pessoa especialista no assunto que trabalha. &lt;/p&gt;

&lt;p&gt;A área de TI é um universo em constante evolução, devido a isso, a maioria das pessoas que trabalham na área gastam um tempo significativo consumindo conteúdos tech on-line, seja em blogs, documentações oficiais, redes sociais ou outras plataformas.&lt;/p&gt;

&lt;p&gt;Como base dessas orientações, vou compartilhar um pouco da minha experiência na época que atuei na área de Developer Relations, trazendo algumas práticas que segui e experimentei na época que me ajudaram a acompanhar a evolução da minha atuação nas redes sociais. Vamos lá?&lt;/p&gt;

&lt;h2&gt;
  
  
  Developer Relations
&lt;/h2&gt;

&lt;p&gt;Vale lembrar que Developer Relations (DevRel) pode ser definida como a área de uma empresa de tecnologia com pessoas focadas em criar relacionamentos e gerar valor para a sua comunidade de tecnologia.&lt;/p&gt;

&lt;p&gt;Muito já foi escrito a respeito dessa área e recomendo alguns conteúdos para quem quiser se aprofundar sobre o assunto:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://coodesh.com/blog/carreiras/o-que-e-devrel-e-por-que-e-importante-investir-nesta-carreira/"&gt;O que é DevRel e por que é importante investir nessa carreira?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://gabsferreira.com/o-que-e-devrel-e-porque-voce-e-sua-empresa-deveriam-se-importar/"&gt;O que é DevRel e porque você e sua empresa deveriam se importar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thiagolima.blog.br/o-que-%C3%A9-developer-relations-52c87a10d57b"&gt;O que é Developer Relations?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/devrelbrasil/o-que-e-devrel-40fd"&gt;O que é DevRel? - DEV Community&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pt.linkedin.com/pulse/dev-rel-nova-bala-de-prata-carol-vilas-boas"&gt;Dev Rel: a nova bala de prata!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bem, a área não é tão nova assim, na época que iniciei, o time tinha acabado de ser montado, para apoiar a divulgação de alguns projetos &lt;a href="https://www.zup.com.br/blog/open-source-no-brasil"&gt;Open Source&lt;/a&gt; da empresa. &lt;/p&gt;

&lt;p&gt;Neste contexto, eu precisava entender melhor como funcionava essa área e participar com a minha liderança na elaboração de uma trilha de carreira, explicando como evoluir profissionalmente nesse ramo.&lt;/p&gt;

&lt;p&gt;Eram muitas perguntas sem respostas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Como medir o &lt;strong&gt;resultado&lt;/strong&gt; de suas iniciativas nas comunidades ou redes sociais?&lt;/li&gt;
&lt;li&gt;Como medir a sua &lt;strong&gt;evolução&lt;/strong&gt; profissional ao longo do tempo?&lt;/li&gt;
&lt;li&gt;Como medir minha &lt;strong&gt;influência&lt;/strong&gt;?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No entanto, não tem receita pronta para se tornar profissional da área, ninguém conseguia dizer com clareza o caminho que deveria ser seguido até se tornar Dev Advocate. Geralmente, era algo natural, uma sucessão de iniciativas e oportunidades que tinham levado as pessoas a criar uma rede ou comunidade ao longo dos anos até chegar onde estavam hoje.&lt;/p&gt;

&lt;p&gt;Devido a isso, quem já atuava na área tinha muitas histórias para contar, no entanto não existiam muitos pontos em comum entre essas histórias para definir um Role Guide (um guia) profissional para quem desejava começar a trabalhar com comunidade tech. &lt;/p&gt;

&lt;p&gt;Sem falar que com a área de TI evoluindo em um ritmo frenético, o que funcionava há 5 ou 10 anos não se faz mais hoje em dia ou pelo menos não da mesma forma. Adicione a isso o contexto da pandemia (pelo menos na época que atuava) sem eventos presenciais e você obtinha um contexto totalmente inédito.&lt;/p&gt;

&lt;p&gt;Enfim, esse artigo tem como objetivo &lt;strong&gt;ajudar quem quiser iniciar na área de DevRel ou simplesmente aumentar sua influência ou marca profissional nas redes sociais&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tecnologia e redes sociais: elencando objetivos
&lt;/h2&gt;

&lt;p&gt;Antes de entrar na prática, é importante a gente definir objetivos para alcançar e formas de medir esses objetivos. Para isso, é possível usar várias metodologias, acredito que a de OKR (Objectives and Key Results) é a metodologia de gestão mais utilizada. Faça do jeito que você ache mais fácil de acompanhar. Não precisa de nada elaborado, o importante é conseguir acompanhar a sua evolução.&lt;/p&gt;

&lt;h3&gt;
  
  
  Exemplos de objetivos
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Criar ou fazer parte de uma comunidade
&lt;/h4&gt;

&lt;p&gt;Integrar uma comunidade não consiste em apenas se inscrever em uma newsletter e assistir alguns canais no Youtube sobre o tema. É preciso participar de eventos, acessar os canais de discussão em grupos para resolver problemas, oferecer ou receber mentoria… enfim, contribuir positivamente com a comunidade de forma ativa.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Se tornar referência e autoridade em algum tema
&lt;/h4&gt;

&lt;p&gt;Se tornar referência sobre algum tema necessita (obviamente) se aprofundar muito em um determinado assunto, obtendo certificações, criando provas de conceitos (POC), gerando conteúdos e materiais para a sua rede ou comunidade conseguir se aprofundar no tema, entre outras ações. &lt;/p&gt;

&lt;p&gt;Enfim, é uma ação voltada ao compartilhamento de conhecimento e experiências com outras pessoas da área, gerando cases, aprendendo e errando nos processos. A fim de ter o reconhecimento de pares como alguém que domina plenamente determinado tema, não só executando com propriedade, mas também ensinando. &lt;/p&gt;

&lt;h2&gt;
  
  
  Foco na organização
&lt;/h2&gt;

&lt;p&gt;Agora que você definiu seu objetivo, é preciso organizar sua estratégia para alcançá-lo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Como fazer isso?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bem, não tenho bala de prata, mas posso compartilhar ações que fiz e que me ajudaram nessa jornada.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Planeje seus posts
&lt;/h3&gt;

&lt;p&gt;De acordo com seu objetivo, você já terá uma ideia dos tópicos que você irá abordar. O planejamento dos assuntos ajudará a nunca ficar sem nada para falar de uma semana para outra, pois o segredo de qualquer atividade para aumentar sua influência nas redes sociais é ter disciplina.&lt;/p&gt;

&lt;p&gt;Para isso, pode criar uma simples planilha com duas colunas:&lt;/p&gt;

&lt;p&gt;assunto: com uma breve descrição do tema;&lt;br&gt;
status: to do, refinado, publicado.&lt;/p&gt;

&lt;p&gt;Segue um exemplo de como fazia isso numa planilha na época que criava fórmulas (automações) com o &lt;a href="https://ritchiecli.io/"&gt;Ritchie CLI&lt;/a&gt; (projeto Open Source da Zup Innovation) por conta do time de Dev Rel da empresa:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s1CxYyIf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iodwugqcan6wofczs4wq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s1CxYyIf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iodwugqcan6wofczs4wq.png" alt="Image description" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Planilha feita no Excel com duas colunas: tech (code) e other (code). Na primeira, temos uma subdivisão com assunto e status, onde temos os temas dos artigos e qual o estágio de produção. Na segunda, temos também uma subdivisão da mesma forma.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Teste hipóteses
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Experimente
&lt;/h4&gt;

&lt;p&gt;Criar um conteúdo de valor incrível não é o suficiente para que você consiga taxas altas de engajamento. É preciso entender o seu &lt;a href="https://www.dinamize.com.br/blog/publico-alvo/"&gt;público-alvo&lt;/a&gt; e levar em consideração as particularidades de cada rede social.&lt;/p&gt;

&lt;h5&gt;
  
  
  Conteúdo
&lt;/h5&gt;

&lt;p&gt;Primeiro ponto, é entender o que seu público-alvo está mais acostumado a consumir e/ou procurar.&lt;/p&gt;

&lt;p&gt;Quer falar sobre Python? Sobre Kubernetes? Sobre Design de Aplicação? &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Procure por #hashtags nas redes sociais para conferir quais assuntos estão em alta;&lt;/li&gt;
&lt;li&gt;Procure no Google para ver quais são os sites mais acessados e recomendados para falar a respeito desse tema;&lt;/li&gt;
&lt;li&gt;Vai falar sobre programação? Procure no StackOverflow ou outros fóruns quais são as maiores dificuldades ou dúvidas da comunidade sobre este tema;&lt;/li&gt;
&lt;li&gt;Acompanhe os temas mais quentes que estão sendo abordados e demais discussões que estão em alta.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Quanto mais informações você tiver, mais preparada será sua estratégia.&lt;/p&gt;

&lt;h5&gt;
  
  
  Formato (vídeo, post, imagem)
&lt;/h5&gt;

&lt;p&gt;Algumas redes sociais tem tempo limite para vídeos ou permitem compartilhar uma quantidade limitada de imagens. Outras nem permite compartilhar documentos (PDF) ou tem limitação de caracteres para escrever os posts.&lt;/p&gt;

&lt;p&gt;Devido a essas limitações, as &lt;strong&gt;estratégias de publicação podem variar de uma plataforma para a outra&lt;/strong&gt;. O ideal aqui é experimentar os diversos formatos em cada rede social e identificar qual gera o melhor engajamento em cada uma.&lt;/p&gt;

&lt;p&gt;Por exemplo: vídeos e imagens costumam provocar emoções e transmitir informações de forma mais eficiente que textos no Instagram. Ou seja, se o assunto ou conteúdo mudar, você provavelmente terá que mudar o formato de divulgação.&lt;/p&gt;

&lt;p&gt;Referências úteis:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://rockcontent.com/br/talent-blog/posts-para-redes-sociais/"&gt;Posts para redes sociais, como construir textos que engajam?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/pulse/o-poder-da-imagem-nas-redes-sociais-luciana-guedes-brand%C3%A3o?trk=pulse-article_more-articles_related-content-card&amp;amp;originalSubdomain=pt#:~:text=Imagens%20nas%20redes%20sociais%20t%C3%AAm,fotos%20ou%20artes%20com%20imagens."&gt;O poder da imagem nas redes sociais&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.voxeldigital.com.br/blog/entenda-por-que-os-videos-sao-a-nova-tendencia-das-redes-sociais/#:~:text=Os%20v%C3%ADdeos%20s%C3%A3o%20uma%20ferramenta,de%20not%C3%ADcias%3A%20voc%C3%AA%20pode%20fazer"&gt;Entenda por que os vídeos são a nova tendência nas redes sociais&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Horário
&lt;/h5&gt;

&lt;p&gt;Existem momentos em que a comunidade que você quer alcançar está mais conectada em cada rede social. Para isso, alguns estudos e artigos podem oferecer orientações, mas não podemos considerar essas referências como sendo a fonte da verdade.&lt;/p&gt;

&lt;p&gt;Afinal, conteúdos que unem tecnologia e redes sociais, geralmente, são focados em um público bem específico e essas pessoas podem não seguir as tendências da maioria.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CVBICrND--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ik9rxqvm5l546w78bc4o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CVBICrND--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ik9rxqvm5l546w78bc4o.png" alt="Image description" width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;LinkedIn Global Engagement Graph&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Referências úteis:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://sproutsocial.com/pt/insights/melhores-horarios-publicar-nas-redes-sociais/"&gt;Os melhores horários para publicar nas redes sociais&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dinamize.com.br/blog/qual-melhor-horario-para-postar-nas-redes-sociais/#:~:text=Quarta%2Dfeira%20%C3%A9%20o%20melhor,o%20seu%20objetivo%20%C3%A9%20engajar."&gt;Qual o melhor horário para publicar nas redes sociais?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Frequência
&lt;/h5&gt;

&lt;p&gt;A frequência de publicação recomendada varia também de uma rede social para outra.&lt;/p&gt;

&lt;p&gt;Algumas plataformas, como Twitter e Instagram, encorajam a criação de publicações curtas e frequentes, várias vezes ao longo do dia. Enquanto outras, como LinkedIn e Facebook, usam algoritmos que valorizam publicações menos frequentes.&lt;/p&gt;

&lt;p&gt;Aqui também será necessário experimentar e identificar o quanto a sua frequência de postagem impacta no engajamento das suas publicações.&lt;/p&gt;

&lt;p&gt;Referências úteis:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://postcron.com/pt/blog/marketing-de-redes-sociais-quantas-vezes-publicar-por-dia/"&gt;Marketing nas redes sociais, melhor frequência de postagem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://rockcontent.com/br/blog/frequencia-de-postagem-nas-redes-sociais/"&gt;Frequência de postagem nas redes sociais&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Medição
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Como acompanhar e tirar lições dos testes que fazemos?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Conferimos anteriormente que muitos fatores podem influenciar o engajamento das nossas publicações (formato, horário, frequência, rede social, etc.)&lt;/p&gt;

&lt;p&gt;Para isso, é preciso mapear todas as nossas publicações nas diversas redes sociais para conseguir medir o seu engajamento. Algumas plataformas auxiliam com isso de forma gratuita ou paga – basta procurar por “análise” ou “relatório”.&lt;/p&gt;

&lt;p&gt;Na época que atuava no time de Dev Rel da Zup, eu costumava anotar tudo que fazia numa planilha para cada rede social.&lt;/p&gt;

&lt;p&gt;Segue um exemplo com &lt;strong&gt;LinkedIn&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ShH4MOjs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eyunwa2p3fth1fknhqe1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ShH4MOjs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eyunwa2p3fth1fknhqe1.png" alt="Image description" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Planilha de análise dos posts no LinkedIn. Nela, temos oito colunas: dia/horário, subject, views, reactions, comments, share, % de engajamento e link da publicação.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;O engajamento (coluna % na imagem acima) era calculado dividindo a quantidade de &lt;strong&gt;visualizações&lt;/strong&gt; pela quantidade de &lt;strong&gt;reações&lt;/strong&gt;. Quanto mais alta a porcentagem, maior é o engajamento.&lt;/p&gt;

&lt;p&gt;No &lt;strong&gt;Twitter&lt;/strong&gt;, era um pouco diferente, pois as publicações eram mais frequentes, e a plataforma já traz insights automaticamente para cada post. Exemplo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KFXLkrhi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d6kplnm9eoyh64lduj7o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KFXLkrhi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d6kplnm9eoyh64lduj7o.png" alt="Image description" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Planilha de análise das publicações no Twitter. Nela temos sete colunas: mês, horário, subject, impression, engagement, rate e observação.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Fazendo dessa forma, eu consegui identificar que meu público-alvo costumava engajar mais comigo quando:&lt;/p&gt;

&lt;p&gt;No LinkedIn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;compartilhava experiência pessoal;&lt;/li&gt;
&lt;li&gt;tinha uma opinião engajada sobre algum tema "quente" do mercado;&lt;/li&gt;
&lt;li&gt;fazia retrospectivas;&lt;/li&gt;
&lt;li&gt;usava vídeos curtos (15 a 20s) no lugar de usar links e imagens.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No Twitter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;comentava tweets de outras pessoas;&lt;/li&gt;
&lt;li&gt;falava de experiências pessoais;&lt;/li&gt;
&lt;li&gt;usava #hashtags ou marcava &lt;a class="mentioned-user" href="https://dev.to/pessoas"&gt;@pessoas&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Evolução
&lt;/h4&gt;

&lt;p&gt;Além de medir o engajamento das suas publicações, pode ser interessante medir sua evolução e conseguir identificar em quais plataformas você está se desenvolvendo de forma mais rápida para conseguir focar onde faz mais sentido dentro da sua estratégia.&lt;/p&gt;

&lt;p&gt;Isso pode ser medido de diversas formas de acordo com a plataforma, via a média das visualizações e reações das suas publicações ao longo dos meses, a quantidade de pessoas seguidoras, de acesso ao seu blog, de forks ou estrelas nos seus repositórios no &lt;a href="https://www.google.com/url?q=https://www.zup.com.br/blog/git-github-e-gitlab&amp;amp;sa=D&amp;amp;source=docs&amp;amp;ust=1704735892548498&amp;amp;usg=AOvVaw21jZvMQsUftuWap_Kpm7z_"&gt;GitHub&lt;/a&gt;, entre outros.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oiEcap4j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c34vyciz7h7b5juu90we.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oiEcap4j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c34vyciz7h7b5juu90we.png" alt="Image description" width="800" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Planilha com visão geral da análise das postagens em diferentes plataformas com a data referente ao período observado. Na planilha, temos connections LinkedIn, Followers Twitter, Github Followers, Github Stars e StackOverflow.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Quando comecei a medir esses dados em cada plataforma que usava, consegui obter o seguinte gráfico para me dar uma noção de como estava indo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZzVxvGxz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/prhrufpj64yxx935cvu9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZzVxvGxz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/prhrufpj64yxx935cvu9.png" alt="Image description" width="800" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Quatro gráficos com datas versus conexões do LinkedIn, GitHub followers, Followers Twitter e Github Stars. O crescimento de seguidores aumenta na medida que o tempo passa e as postagens seguem o cronograma.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Isso podia me ajudar posteriormente a entender em quais épocas e momentos eu tinha conseguido gerar um engajamento maior com meu público-alvo para tentar reproduzir esses conteúdos mais para frente.&lt;/p&gt;

&lt;h4&gt;
  
  
  Bônus
&lt;/h4&gt;

&lt;p&gt;Para quem precisa acompanhar a evolução dos seus repositórios no GitHub, cheguei a criar um script na época, gerando relatórios semanais dos meus repositórios.&lt;/p&gt;

&lt;p&gt;Esse script está localizado &lt;a href="https://github.com/GuillaumeFalourd/repositories-reports"&gt;neste repositório público no GitHub&lt;/a&gt;, pode ser realizado um fork e só precisa adicionar secrets no seu fork para conseguir gerar eles semanalmente.&lt;/p&gt;

&lt;p&gt;O relatório fica armazenado num arquivo .csv seguindo o exemplo abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9WPqLrYw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u57x1xxpyh78ctttegj0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9WPqLrYw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u57x1xxpyh78ctttegj0.png" alt="Image description" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Planilha para acompanhar repositórios do Github com oito colunas: repository, views (last 14 days), uniques (last 14 days), clones (last 14 days), contributors, forks, stars e watchers.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Ter disciplina
&lt;/h3&gt;

&lt;p&gt;A motivação para atingir o objetivo pode até ser alta no início da sua jornada de criação de conteúdos tech. No entanto, o grande desafio dessa jornada é ter disciplina para conseguir manter o ritmo e ser capaz de alcançar o objetivo dentro do prazo.&lt;/p&gt;

&lt;p&gt;Às vezes, pode ser difícil manter o cronograma e terideias para publicações de acordo com a frequência que identificamos como sendo a melhor… felizmente, algumas estratégias podem auxiliar.&lt;/p&gt;

&lt;p&gt;Por exemplo, quando isso acontecia comigo, eu não tinha problema em aproveitar os mesmos conteúdos mais de uma vez. Inclusive, quanto mais feedbacks recebia, melhor meu conteúdo ficava e mais dominava o assunto. &lt;/p&gt;

&lt;p&gt;Após estudar sobre algum tema, acostumo seguir essa sequência:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Faço uma apresentação do que aprendi com o time através de uma POC (proof of concept);&lt;/li&gt;
&lt;li&gt;Uso essa POC para escrever um artigo detalhando para o pessoal como funciona e como reproduzir o comportamento com aquela tecnologia;&lt;/li&gt;
&lt;li&gt;Além de um artigo, essa POC pode ser apresentada num vídeo explicando e mostrando o funcionamento ao vivo;&lt;/li&gt;
&lt;li&gt;Caso o assunto seja mais teórico, pode ser aproveitado através de um podcast também, com outras pessoas para debater e ouvir alternativas sobre o tema;&lt;/li&gt;
&lt;li&gt;Envio sugestões de palestras para eventos de tecnologia, em trilhas relacionadas ao assunto, para fazer demos ou participar de mesas redondas.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A vantagem de seguir assim é que a cada iteração, além de dominar cada vez mais o assunto, conseguimos agregar informações mais relevantes para o nosso público-alvo. Todo mundo ganha! &lt;/p&gt;

&lt;p&gt;A cereja no bolo é ter vários conteúdos prontos para divulgar sobre o tema.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mentorias
&lt;/h3&gt;

&lt;p&gt;Falamos muito de influência e de como aumentar ela através das redes sociais, mas uma forma de ganhar autoridade sobre um assunto também é por meio de mentorias.&lt;/p&gt;

&lt;p&gt;Essas oportunidades oferecem insights sobre os problemas que as pessoas de uma comunidade em particular podem experimentar e trazem soluções de como resolvê-los, que muitas vezes isso pode orientar quem tiver interesse em escrever conteúdos a respeito.&lt;/p&gt;

&lt;p&gt;Desde que comecei a praticar mentoria de forma periódica, aumentei a visão 360º que tinha sobre vários assuntos e passei a compartilhar publicações assertivas nas redes sociais que uso. Recomendo você experimentar, não vai se arrepender!&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;É isso pessoal, espero que esse artigo possa ter te auxiliado a entender como iniciar essa jornada de criação e de publicação, unindo tecnologia e redes sociais.&lt;/p&gt;

&lt;p&gt;Conforme falei no início, não tem regras nem bala de prata… essas orientações são para quem não sabe por onde começar. Quando já estiver com uma cadência legal, pode evoluir seu sistema de organização de acordo com o seu estilo ao longo do tempo!&lt;/p&gt;

&lt;p&gt;Gostou do artigo? Compartilhe com colegas nas redes sociais, quem sabe não gere um engajamento legal! 😋&lt;/p&gt;

&lt;p&gt;Siga-me no &lt;a href="https://www.linkedin.com/in/guillaumefalourd/"&gt;LinkedIn&lt;/a&gt; e &lt;a href="https://twitter.com/GuiFalourd"&gt;Twitter&lt;/a&gt; para quem quiser aprofundar o assunto e trocar uma ideia por DM.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Conversando sobre avaliações técnicas na área de TI 🧑‍💻</title>
      <dc:creator>Guillaume Falourd</dc:creator>
      <pubDate>Wed, 22 Dec 2021 15:06:10 +0000</pubDate>
      <link>https://dev.to/guifalourd/conversando-sobre-processos-seletivos-na-area-de-ti-kb3</link>
      <guid>https://dev.to/guifalourd/conversando-sobre-processos-seletivos-na-area-de-ti-kb3</guid>
      <description>&lt;h2&gt;
  
  
  Avaliações técnicas na área de TI
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IhRfxIg4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aid1wdsla5hsdwr1e1yx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IhRfxIg4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aid1wdsla5hsdwr1e1yx.png" alt="Image description" width="880" height="429"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Contexto
&lt;/h2&gt;

&lt;p&gt;Compartilhando um pouco da minha experiência aqui...&lt;/p&gt;

&lt;p&gt;As avaliações técnicas podem variar bastante na hora de avaliar um profissional, de acordo com o nível de senioridade, o cargo, ou a stack de tecnologias usadas. Recentemente, como avaliador, cheguei a repensar um pouco como eu gostaria de ser entrevistado, pensando num processo que não ficaria chato ou pesado para ninguém. &lt;/p&gt;

&lt;p&gt;Foi a partir disso que comecei seguir com um processo parecido para diversos níveis de senioridade, que até hoje me deixou bem satisfeito com o resultado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A ideia é criar um projeto específico para entrevista, usando a stack de tecnologias / ferramentas relacionadas a vaga, e atuar em cima dele&lt;/strong&gt; 🔍 &lt;/p&gt;




&lt;h2&gt;
  
  
  Entrevista Técnica
&lt;/h2&gt;

&lt;p&gt;Dividindo a entrevista técnica em 3 partes:&lt;/p&gt;

&lt;p&gt;1️⃣ &lt;strong&gt;code review&lt;/strong&gt; de um projeto (~30 min avaliação + ~30 min conversa)&lt;/p&gt;

&lt;p&gt;2️⃣ &lt;strong&gt;pair programming&lt;/strong&gt; para implementação de uma pequena funcionalidade no projeto (~15 min avaliação + ~30 min implementação)&lt;/p&gt;

&lt;p&gt;3️⃣ &lt;strong&gt;refinement / planning&lt;/strong&gt; de uma nova funcionalidade no projeto (~30 min conversa)&lt;/p&gt;




&lt;h3&gt;
  
  
  Primeira Parte
&lt;/h3&gt;

&lt;p&gt;Consiste em deixar o candidato avaliar a qualidade do projeto. Deixando uns minutos para o candidato fazer um code review para depois conversamos a respeito do que ele observou, faria diferente, ou poderia ser melhorado. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Nota: Como costumo deixar erros propositais, sempre temos assuntos para conversar, e dependendo do quanto de elementos o candidato observar, é possível ter uma noção da experiência que ele tem sobre o assunto.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Segunda parte
&lt;/h3&gt;

&lt;p&gt;Consiste em um pair programming para implementar uma pequena funcionalidade no projeto, conversando a respeito de testes unitários e do raciocínio para resolver o problema de acordo com as regras de negocio especificadas.&lt;/p&gt;

&lt;h3&gt;
  
  
  Terceira parte
&lt;/h3&gt;

&lt;p&gt;Conversamos a respeito de uma nova funcionalidade que poderia ser implementada, conversando sobre escalabilidade do projeto, manutenção futura, etc...&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Seguindo com esse processo de avaliação, deu para metrificar com clareza o nível de senioridade dos candidatos de acordo com as regras que combinamos com nossa equipe sobre os requisitos das vagas, tanto sobre hard skills, quanto soft skills.&lt;/p&gt;

&lt;p&gt;A entrevista em si demorava um pouco mais do que de costume (em torno de 2h-2h30 no total com introdução e tudo), e recebi feedbacks bem positivos dos candidatos, que não passavam por um processo muito longo (de vários dias) nem muito estressante, e já conseguiam ter feedbacks dos examinadores na hora, antes de empresa mandar um email formal sobre ser aceito ou não para a dita vaga...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que acharam desse processo de avaliação técnica? Adicionariam mais algo? O que importa mais para você? 🧐&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bora compartilhar nossa experiência! 🙂&lt;/p&gt;

</description>
      <category>programming</category>
      <category>selectiveprocess</category>
      <category>codereview</category>
      <category>ti</category>
    </item>
    <item>
      <title>Test command line outputs with Github Actions</title>
      <dc:creator>Guillaume Falourd</dc:creator>
      <pubDate>Mon, 22 Nov 2021 21:18:52 +0000</pubDate>
      <link>https://dev.to/guifalourd/test-command-line-outputs-with-github-actions-476d</link>
      <guid>https://dev.to/guifalourd/test-command-line-outputs-with-github-actions-476d</guid>
      <description>&lt;h2&gt;
  
  
  Context
&lt;/h2&gt;

&lt;p&gt;As an open source project maintainer on &lt;a href="https://github.com/ZupIT/ritchie-cli" rel="noopener noreferrer"&gt;Ritchie CLI&lt;/a&gt;, I recently had the necessity to tests if some command line outputs were working as expected.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happened
&lt;/h3&gt;

&lt;p&gt;I had to test the CLI commands on various operating system (windows, linux and macos), and I couldn't find an action to help us achieving what we wanted.&lt;/p&gt;

&lt;p&gt;The project was developed in Golang, so I could easily create a binary for each OS and execute it. But I had to use some command like &lt;code&gt;&amp;lt;command-line&amp;gt; &amp;amp;&amp;gt; output.txt&lt;/code&gt; to get an output file, and then compare it with a fix &lt;code&gt;.txt&lt;/code&gt; file on the repository to check if the command output was the expected one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Some of the issues I faced:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;☞ I couldn't test any error behaviour (because the workflow would failed) without adding a &lt;code&gt;|| true&lt;/code&gt; at the end of the command above (to ignore the failure).&lt;/p&gt;

&lt;p&gt;☞ Commands line could be different depending on the OS (DOS/Unix).&lt;/p&gt;

&lt;p&gt;☞ It was difficult to check dynamic outputs (that would change for each execution, for example a &lt;em&gt;data&lt;/em&gt; or &lt;em&gt;version&lt;/em&gt; value that evolve all the time).&lt;/p&gt;

&lt;p&gt;I ended up creating this action to resolve all those specific issues.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does this action?
&lt;/h3&gt;

&lt;p&gt;This action allows the user to compare a command line output (success or error) with a file content located on the repository, or to check if it contains a specific expression.&lt;/p&gt;

&lt;p&gt;Therefore, it can be used to check almost everything a command line can return on the screen or create:&lt;br&gt;
☞ if a specific line appears in a file using a &lt;code&gt;cat&lt;/code&gt; command.&lt;br&gt;
☞ a whole file content,&lt;br&gt;
☞ if a file is located inside a specific directory through a &lt;code&gt;ls&lt;/code&gt; command after a file creation,&lt;br&gt;
☞ ...&lt;/p&gt;

&lt;p&gt;Moreover, &lt;strong&gt;it's compatible with all os-supported runner&lt;/strong&gt;. I had an issue to test it with windows at first due to the different between DOS/Unix, but as I could use a &lt;strong&gt;composite action&lt;/strong&gt; performing operations using &lt;strong&gt;bash&lt;/strong&gt; (as well a &lt;a href="https://www.npmjs.com/package/strip-ansi-cli" rel="noopener noreferrer"&gt;strip-ansi npm cli lib&lt;/a&gt;) to by-pass this problem.&lt;/p&gt;

&lt;h4&gt;
  
  
  How the action works
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F11d3bjdse19isuuoxbkv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F11d3bjdse19isuuoxbkv.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That way, I could check a command line output using 3 different ways:&lt;/p&gt;

&lt;p&gt;☞ if the output is equal to an assert file&lt;br&gt;
☞ if the output contains a specific line from an assert file&lt;br&gt;
☞ if the output contains an expression&lt;/p&gt;

&lt;p&gt;A successful display on the Actions tab on Github UI would look like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7nk1y7b77q0jp8oxzy8j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7nk1y7b77q0jp8oxzy8j.png" alt="Image description"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;If the output is not the expected one, the action will also inform the difference (using a &lt;code&gt;diff&lt;/code&gt; command) between both files / expressions.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Workflows
&lt;/h2&gt;

&lt;p&gt;The action is called &lt;a href="https://github.com/GuillaumeFalourd/assert-command-line-output" rel="noopener noreferrer"&gt;Assert Command Line Output&lt;/a&gt; and you will find below different examples using it (with success and error tests for each one).&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/GuillaumeFalourd/assert-command-line-output/blob/main/action.yml" rel="noopener noreferrer"&gt;action.yml file can be found here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;1️⃣ Assert file content&lt;/code&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Expecting command output to be EQUAL to &lt;code&gt;assert.txt&lt;/code&gt; file content
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2.3.4&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;GuillaumeFalourd/assert-command-line-output@v2&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;command_line&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ls -lha&lt;/span&gt;
          &lt;span class="na"&gt;assert_file_path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;path/to/assert.txt&lt;/span&gt;
          &lt;span class="na"&gt;expected_result&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;PASSED&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Expecting command output to be DIFFERENT than the &lt;code&gt;assert.txt&lt;/code&gt; file content
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2.3.4&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;GuillaumeFalourd/assert-command-line-output@v2&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;command_line&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ls -lha&lt;/span&gt;
          &lt;span class="na"&gt;assert_file_path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;path/to/assert.txt&lt;/span&gt;
          &lt;span class="na"&gt;expected_result&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;FAILED&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;2️⃣ Assert specific file line&lt;/code&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Expecting command output line 3 to be EQUAL than the &lt;code&gt;assert.txt&lt;/code&gt; file content in line 3
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2.3.4&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;GuillaumeFalourd/assert-command-line-output@v2&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;command_line&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ls -lha&lt;/span&gt;
          &lt;span class="na"&gt;assert_file_path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;path/to/assert.txt&lt;/span&gt;
          &lt;span class="na"&gt;expected_result&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;PASSED&lt;/span&gt;
          &lt;span class="na"&gt;specific_line&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Expecting command output line 3 to be DIFFERENT than the &lt;code&gt;assert.txt&lt;/code&gt; file content in line 3
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2.3.4&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;GuillaumeFalourd/assert-command-line-output@v2&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;command_line&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ls -lha&lt;/span&gt;
          &lt;span class="na"&gt;assert_file_path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;path/to/assert.txt&lt;/span&gt;
          &lt;span class="na"&gt;expected_result&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;FAILED&lt;/span&gt;
          &lt;span class="na"&gt;specific_line&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;3️⃣ Assert specific expression&lt;/code&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Expecting command output to contain specific expression
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2.3.4&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;GuillaumeFalourd/assert-command-line-output@v2&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;command_line&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ls -lha&lt;/span&gt;
          &lt;span class="na"&gt;contains&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;runner&lt;/span&gt;
          &lt;span class="na"&gt;expected_result&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;PASSED&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Expecting command output NOT to contain specific expression
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2.3.4&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;GuillaumeFalourd/assert-command-line-output@v2&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;command_line&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ls -lha&lt;/span&gt;
          &lt;span class="na"&gt;contains&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;error&lt;/span&gt;
          &lt;span class="na"&gt;expected_result&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;FAILED&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Submission Category
&lt;/h2&gt;

&lt;p&gt;This action could be useful for &lt;strong&gt;Maintainers&lt;/strong&gt; (Maintainer Must-Haves) as well as &lt;strong&gt;Deployments&lt;/strong&gt; (DIY Deployments) to check some specific outputs from commands used inside a CI/CD pipelines on Github Actions, or any periodic checks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Yaml File or Link to Code
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/marketplace/actions/assert-command-line-output" rel="noopener noreferrer"&gt;The action can be found on the Github Marketplace&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can find a full implementation example for each OS on the action repository, using &lt;code&gt;cat&lt;/code&gt; or &lt;code&gt;ls -lha&lt;/code&gt; commands as demonstrations:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;☞ &lt;a href="https://github.com/GuillaumeFalourd/assert-command-line-output/blob/main/.github/workflows/ubuntu_test_command_output.yml" rel="noopener noreferrer"&gt;UBUNTU&lt;/a&gt;&lt;br&gt;
☞ &lt;a href="https://github.com/GuillaumeFalourd/assert-command-line-output/blob/main/.github/workflows/macos_test_command_output.yml" rel="noopener noreferrer"&gt;MACOS&lt;/a&gt;&lt;br&gt;
☞ &lt;a href="https://github.com/GuillaumeFalourd/assert-command-line-output/blob/main/.github/workflows/windows_test_command_output.yml" rel="noopener noreferrer"&gt;WINDOWS&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources / Info
&lt;/h3&gt;

&lt;p&gt;☞ You can contribute to the repository following the &lt;a href="https://github.com/GuillaumeFalourd/assert-command-line-output/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;Contributing.md file&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;☞ This action uses the &lt;a href="https://github.com/GuillaumeFalourd/assert-command-line-output/blob/main/LICENSE" rel="noopener noreferrer"&gt;Apache License 2.0&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I believe everything is not perfect yet, this action evolved a lot since the first version, and I hope some of you will find it useful and will want to contribute to make it better. Thank you for reading 🚀&lt;/p&gt;

</description>
      <category>actionshackathon21</category>
      <category>githubactions</category>
      <category>testing</category>
      <category>cicd</category>
    </item>
    <item>
      <title>Automation to get Github repositories insights reports</title>
      <dc:creator>Guillaume Falourd</dc:creator>
      <pubDate>Tue, 06 Apr 2021 13:26:12 +0000</pubDate>
      <link>https://dev.to/guifalourd/automation-to-get-github-repositories-insights-2ehi</link>
      <guid>https://dev.to/guifalourd/automation-to-get-github-repositories-insights-2ehi</guid>
      <description>&lt;p&gt;In a day-to-day work with Developer Relations, you need to be able to extract metrics to evaluate what you do, on social networks or events 🔎 📊&lt;/p&gt;

&lt;p&gt;Github may not be considered as a social network, but as I've been implementing and creating contents there too, I thought it could be interesting to monitor the engagement that shared repositories can generate.&lt;/p&gt;

&lt;p&gt;To do this, I created an automation in Python using &lt;a href="https://ritchiecli.io/"&gt;Ritchie CLI&lt;/a&gt;. This automation generates a report in .csv format with several insights about my public and private repositories 🕵️&lt;/p&gt;

&lt;p&gt;Thinking about making it more practical, I also set up a workflow using &lt;a href="https://docs.github.com/en/actions"&gt;Github Actions&lt;/a&gt; with a CRON to add new reports weekly and allow me to follow the evolution of my work.&lt;/p&gt;

&lt;p&gt;The insights reports .csv file looks like the following one:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VAtp98bH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/06ra8lf21cttyigj6nd3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VAtp98bH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/06ra8lf21cttyigj6nd3.png" alt="report-sample"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Those files will be generated and stored on the proper Github repository.&lt;/p&gt;

&lt;p&gt;Anyone can use it, just create a new repository based on this one: &lt;a href="https://bit.ly/repositories-reports"&gt;repositories-reports&lt;/a&gt; (with Fork or Clone) and add 2 secrets to the new repository:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a secret ACCESS_TOKEN (&lt;a href="https://github.com/settings/tokens"&gt;you can create one here&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;a secret USERNAME_CREDENTIAL with your Github User account.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full automation implementation is in python and may be found here, where the main file is this one: &lt;a href="https://github.com/GuillaumeFalourd/formulas-github/blob/master/github/get/insights/src/formula/formula.py"&gt;https://github.com/GuillaumeFalourd/formulas-github/blob/master/github/get/insights/src/formula/formula.py&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Github Action workflow is this one: &lt;a href="https://github.com/GuillaumeFalourd/repositories-reports/blob/main/.github/workflows/1-reports-generator.yml"&gt;https://github.com/GuillaumeFalourd/repositories-reports/blob/main/.github/workflows/1-reports-generator.yml&lt;/a&gt; if you want to perform something similar on other repositories.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let me know if you have any suggestion or feedback!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>devrel</category>
      <category>showdev</category>
      <category>github</category>
    </item>
    <item>
      <title>Step by step to create a README for your Github profile</title>
      <dc:creator>Guillaume Falourd</dc:creator>
      <pubDate>Thu, 28 Jan 2021 17:45:58 +0000</pubDate>
      <link>https://dev.to/guifalourd/step-by-step-to-create-a-readme-for-your-github-profile-1i0g</link>
      <guid>https://dev.to/guifalourd/step-by-step-to-create-a-readme-for-your-github-profile-1i0g</guid>
      <description>&lt;p&gt;We have been able to create a custom profile for our Github  🐙 account for a while now, creating a repository with our username.&lt;/p&gt;

&lt;p&gt;Here is a step by step to create and customize this profile, to obtain a result like the following one:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyxsgoq30bp6e1t4ww8n1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyxsgoq30bp6e1t4ww8n1.png" alt="result-octocat"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Premisses:
&lt;/h2&gt;

&lt;p&gt;Python should be installed on the computer (it's native on Unix OS)&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1 - Installation
&lt;/h2&gt;

&lt;p&gt;To do so, we'll use an open source CLI tool named &lt;a href="//ritchiecli.io"&gt;Ritchie&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;It allows the user to create, store and share any kind of automations (&lt;strong&gt;called formulas&lt;/strong&gt;), executing them through command lines. &lt;/p&gt;

&lt;p&gt;One of them will provide us with the README.md file we'll use on our Github account.&lt;/p&gt;

&lt;p&gt;To install Ritchie:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unix&lt;/strong&gt;: On the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;curl -fsSL https://commons-repo.ritchiecli.io/install.sh | bash&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: Download the &lt;code&gt;.msi&lt;/code&gt; from:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://commons-repo.ritchiecli.io/latest/ritchiecli.msi" rel="noopener noreferrer"&gt;https://commons-repo.ritchiecli.io/latest/ritchiecli.msi&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2 - Initialization
&lt;/h2&gt;

&lt;p&gt;Run the following command to initialize Ritchie:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rit init&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;This command will ask 3 questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you wants to contribute anonymously to Ritchie metrics.&lt;/li&gt;
&lt;li&gt;If you wants to add the community formulas locally.&lt;/li&gt;
&lt;li&gt;If you wants the default formula execution method to be local or through docker. (Here, choose &lt;code&gt;LOCAL&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fft8etuot4mselh4lbz34.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fft8etuot4mselh4lbz34.png" alt="Screen Shot 2021-01-28 at 14.43.02"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3 - Add a Ritchie formulas repository
&lt;/h2&gt;

&lt;p&gt;To create the README.md for our profile, we need to import the repository containing the formula we plan to use: &lt;a href="https://github.com/GuillaumeFalourd/formulas-github" rel="noopener noreferrer"&gt;https://github.com/GuillaumeFalourd/formulas-github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Do to so, execute the command below:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rit add repo --provider="Github" --name="formulas-github" --repoUrl="https://github.com/GuillaumeFalourd/formulas-github" --priority=1&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4 - Create the Github profile
&lt;/h2&gt;

&lt;p&gt;If you already have a Github profile repository, do directly to step 4.2.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4.1 - Create the Github repository
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Step 4.1.1 - With the Github interface
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Create the repository with your Github username here: &lt;a href="https://github.com/new" rel="noopener noreferrer"&gt;https://github.com/new&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then, clone the Github repository on your computer.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Step 4.1.2 - With Ritchie
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Create a Github Token following &lt;a href="https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token" rel="noopener noreferrer"&gt;https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then execute the following command:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;rit github create repo&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8k5hm86n095qg2ugsjgu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8k5hm86n095qg2ugsjgu.png" alt="rit github create repo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository will be created on the directory where you executed the command above.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4.2 - Create the README file
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;On the terminal, go to the repository you just created:
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;cd &amp;lt;username&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Then execute the following command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;rit github create profile&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcjudaykkncphzaub7cm6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcjudaykkncphzaub7cm6.png" alt="formula-command"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This command will overwrite the current README.md file according to the datas you'll inform.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4.3 - Commit your code
&lt;/h3&gt;



&lt;p&gt;&lt;code&gt;git add . ; git commit -m "first commit"&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;



&lt;p&gt;&lt;code&gt;git push origin main&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  That's it ✅
&lt;/h2&gt;

&lt;p&gt;Your profile is now online on your Github Account.&lt;/p&gt;

&lt;p&gt;This README.md file is not very sophisticated yet, but it is evolving through time. &lt;/p&gt;

&lt;p&gt;Here is the first formula code version in Python:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftli3tr5c64yg6qjsc2yc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftli3tr5c64yg6qjsc2yc.png" alt="1-rit-github-create-profile-formula"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And the current version is available here: &lt;a href="https://github.com/GuillaumeFalourd/formulas-github/blob/master/github/create/profile/src/formula/formula.py" rel="noopener noreferrer"&gt;https://github.com/GuillaumeFalourd/formulas-github/blob/master/github/create/profile/src/formula/formula.py&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is possible to improve this formula to add other features on the file. You can do it manually, or contribute to the repository to improve the template and/or other formulas!&lt;/p&gt;

&lt;p&gt;Thank you for reading 🙂&lt;/p&gt;

</description>
      <category>markdown</category>
      <category>github</category>
      <category>readme</category>
      <category>python</category>
    </item>
    <item>
      <title>Developers cheat sheets</title>
      <dc:creator>Guillaume Falourd</dc:creator>
      <pubDate>Thu, 03 Dec 2020 19:45:45 +0000</pubDate>
      <link>https://dev.to/guifalourd/developers-cheat-sheets-4l07</link>
      <guid>https://dev.to/guifalourd/developers-cheat-sheets-4l07</guid>
      <description>&lt;p&gt;When I study something, I always write a summary of what I learned, for myself, sometimes on paper, sometimes in a document on my computer ...&lt;/p&gt;

&lt;p&gt;Over time, I noticed that many developers did the same, online, creating cheat sheets related to specific tools, methodologies, good practices and so on ... initially for themselves or their co-workers, and over time for the community.&lt;/p&gt;

&lt;p&gt;I used to store these cheat sheets on my computer, to keep the basics and tips easily available when I needed to access them.&lt;/p&gt;

&lt;p&gt;Recently, I wondered why I was keeping them just for me, as it could benefit many other developers as well.&lt;/p&gt;

&lt;p&gt;This is the reason why I created a &lt;a href="https://github.com/GuillaumeFalourd/developers-cheat-sheets"&gt;cheat sheets repository&lt;/a&gt; storing those cheat sheets that were relevant to my area.&lt;/p&gt;

&lt;p&gt;I encourage everyone to create their own cheat sheet repositories, and share them with others.&lt;/p&gt;

&lt;p&gt;What about you?&lt;br&gt;
Do you take note after learning something? &lt;br&gt;
What do you do with those notes afterwards?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>beginners</category>
      <category>cheatsheets</category>
      <category>developers</category>
    </item>
    <item>
      <title>What do you evaluate before learning a new programming language? 📊</title>
      <dc:creator>Guillaume Falourd</dc:creator>
      <pubDate>Mon, 23 Nov 2020 18:19:56 +0000</pubDate>
      <link>https://dev.to/guifalourd/what-do-you-evaluate-before-learning-a-new-programming-language-38oi</link>
      <guid>https://dev.to/guifalourd/what-do-you-evaluate-before-learning-a-new-programming-language-38oi</guid>
      <description>&lt;p&gt;💡 I recently decided to learn a new programming language!&lt;/p&gt;

&lt;p&gt;I wanted to automate processes more simply and efficiently than using Java or Golang, which seemed quite verbose for what I wanted to do ... 🛠🖥&lt;/p&gt;

&lt;p&gt;Here are some points that caught my attention when choosing #Python&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;It is a readable, simple and quick to learn language.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multipurpose (Python can be used for Data Science, Machine Learning, Web Development &amp;amp; Automation).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The community is large.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There are many Libraries and Frameworks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The language is growing fast and is becoming more and more popular.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What about you? What do you evaluate when learning a new programming language? 📊&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>What did you learn coding?💡</title>
      <dc:creator>Guillaume Falourd</dc:creator>
      <pubDate>Thu, 19 Nov 2020 15:33:01 +0000</pubDate>
      <link>https://dev.to/guifalourd/what-did-you-learn-coding-4f77</link>
      <guid>https://dev.to/guifalourd/what-did-you-learn-coding-4f77</guid>
      <description>&lt;p&gt;I spent the last 4 years working in the IT industry as a software developer, and I came here to share some things I understood along this period:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Communication is at the center of everything&lt;/li&gt;
&lt;li&gt;Be patient, nothing happens overnight&lt;/li&gt;
&lt;li&gt;Take the time to think before coding&lt;/li&gt;
&lt;li&gt;The challenge is to find simple solutions to complex problems&lt;/li&gt;
&lt;li&gt;Documentation is as important as coding&lt;/li&gt;
&lt;li&gt;Experience comes with practice&lt;/li&gt;
&lt;li&gt;Keep learning&lt;/li&gt;
&lt;li&gt;Automate when it's possible&lt;/li&gt;
&lt;li&gt;There are several right ways to do things&lt;/li&gt;
&lt;li&gt;Know when to rest&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What about you? What did you learn coding? 💻💡&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>programming</category>
      <category>experience</category>
      <category>knowledge</category>
    </item>
    <item>
      <title>Ritchie CLI: A customizable automation tool</title>
      <dc:creator>Guillaume Falourd</dc:creator>
      <pubDate>Tue, 13 Oct 2020 21:29:12 +0000</pubDate>
      <link>https://dev.to/guifalourd/ritchie-cli-a-customizable-automation-tool-331</link>
      <guid>https://dev.to/guifalourd/ritchie-cli-a-customizable-automation-tool-331</guid>
      <description>&lt;p&gt;Nobody likes repetitive tasks. To avoid them, most IT professionals use automations on a daily basis.&lt;/p&gt;

&lt;p&gt;There are many tools available on the market to help, such as &lt;a href="https://www.ansible.com/"&gt;Ansible&lt;/a&gt;, &lt;a href="https://www.chef.io/products/chef-automate"&gt;Chef&lt;/a&gt;, &lt;a href="https://puppet.com/"&gt;Puppet&lt;/a&gt;, &lt;a href="https://www.rundeck.com/"&gt;RunDeck&lt;/a&gt;, &lt;a href="https://www.selenium.dev/"&gt;Selenium&lt;/a&gt;, ...&lt;/p&gt;

&lt;p&gt;However, those tools focus on specific jobs (SysAdmin, SRE, QA, ...) and aren't always adapted to perform tasks related to other areas.&lt;/p&gt;

&lt;h3&gt;
  
  
  A customizable CLI ?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://ritchiecli.io"&gt;Ritchie CLI&lt;/a&gt; lets users configure their own CLI to execute daily operations, and eventually share their commands with others.&lt;/p&gt;

&lt;p&gt;In a few words, this open source tool allows to create, store and share any kind of automations, executing them through command lines.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZENHNUhy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/v5o53jo5uw31lhwn5ggl.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZENHNUhy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/v5o53jo5uw31lhwn5ggl.gif" alt="docker" width="450" height="332"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;One of the main benefits of Ritchie is that your can create your automations using &lt;strong&gt;any programming language&lt;/strong&gt;, which make it accessible to any professional with programming knowledge.&lt;/p&gt;

&lt;p&gt;Moreover, it won't be necessary to redo automations that you own on other tools. You can easily use them on Ritchie, executing them through command line, or adapting your current script to the tool structure.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does it work ?
&lt;/h3&gt;

&lt;p&gt;In Ritchie's context, a formula is a script that can be executed automatically or interactively through a command line.&lt;/p&gt;

&lt;p&gt;Adapting an existing script to Ritchie structure allows you to run it locally or through Docker, and to share it on a Github or Gitlab repository.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--__zKXs9E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/b7y33p5ik4kluqm6rokm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--__zKXs9E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/b7y33p5ik4kluqm6rokm.jpg" alt="formulas - en" width="837" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, there are currently some formulas to simplify the use of AWS CLI, others integrated with Bitbucket, Apache Kafka or Github API, or even some to create a scaffold of a Spring Boot project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Zu3cT9ad--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xtk6oey3vvumvu98d1cp.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zu3cT9ad--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xtk6oey3vvumvu98d1cp.gif" alt="aws" width="450" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8u6WsDQp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tzuav5vayi05657kd7o8.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8u6WsDQp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tzuav5vayi05657kd7o8.gif" alt="github-insights" width="880" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Want to contribute ?
&lt;/h3&gt;

&lt;p&gt;The project started a few months ago, and we have many ideas to improve its usability.&lt;/p&gt;

&lt;p&gt;The core has been implemented using Golang, and we currently have templates to create formulas in more than 10 languages such as Python, Java, ShellScript, Ruby, Go (&lt;a href="https://github.com/ZupIT/ritchie-formulas/tree/master/templates/create_formula/languages"&gt;complete list here&lt;/a&gt;). You can also add new templates which aren't available yet.&lt;/p&gt;

&lt;p&gt;All Ritchie repositories are participating the #hacktoberfest challenge, you can find &lt;a href="https://github.com/search?q=org%3AZupIT+label%3Ahacktoberfest+state%3Aopen+type%3Aissue+user%3AZupIT+ritchie&amp;amp;type=Issues&amp;amp;ref=advsearch&amp;amp;l=&amp;amp;l="&gt;all issues here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We are also looking for feedback, so if you eventually test the tool (&lt;a href="https://docs.ritchiecli.io/"&gt;tutorials and challenges here&lt;/a&gt;), give us your impressions in the comments below. &lt;/p&gt;

&lt;p&gt;Thank you for reading!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>opensource</category>
      <category>hacktoberfest</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
