<?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: Júnior Carvalho</title>
    <description>The latest articles on DEV Community by Júnior Carvalho (@junior_carvalho).</description>
    <link>https://dev.to/junior_carvalho</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%2F2717068%2Fe5ccd367-3725-4939-b27d-c3086986fcde.jpg</url>
      <title>DEV Community: Júnior Carvalho</title>
      <link>https://dev.to/junior_carvalho</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/junior_carvalho"/>
    <language>en</language>
    <item>
      <title>Instalando a Evolution Go com Portainer, Traefik e PostgreSQL em uma VPS Linux</title>
      <dc:creator>Júnior Carvalho</dc:creator>
      <pubDate>Wed, 25 Mar 2026 00:53:23 +0000</pubDate>
      <link>https://dev.to/junior_carvalho/instalando-a-evolution-go-com-portainer-traefik-e-postgresql-em-uma-vps-linux-2d4b</link>
      <guid>https://dev.to/junior_carvalho/instalando-a-evolution-go-com-portainer-traefik-e-postgresql-em-uma-vps-linux-2d4b</guid>
      <description>&lt;p&gt;A primeira versão da &lt;strong&gt;Evolution Go&lt;/strong&gt; foi liberada.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Documentação: &lt;a href="https://docs.evolutionfoundation.com.br/evolution-go" rel="noopener noreferrer"&gt;https://docs.evolutionfoundation.com.br/evolution-go&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Live de apresentação: &lt;a href="https://www.youtube.com/watch?v=OC5TTN-r7Qw" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=OC5TTN-r7Qw&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Neste guia, vou mostrar uma instalação usando Portainer, Traefik e PostgreSQL.&lt;/p&gt;

&lt;p&gt;O ambiente que utilizei foi:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VPS Magalu Cloud&lt;/li&gt;
&lt;li&gt;Plano BV2-2-10&lt;/li&gt;
&lt;li&gt;2 vCPU&lt;/li&gt;
&lt;li&gt;2 GB de RAM&lt;/li&gt;
&lt;li&gt;10 GB de disco&lt;/li&gt;
&lt;li&gt;Ubuntu 22.04&lt;/li&gt;
&lt;li&gt;Região br-se1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A proposta é simples: subir tudo com Docker Swarm via Portainer, com roteamento feito pelo Traefik.&lt;/p&gt;

&lt;p&gt;Apesar de eu estar usando uma VPS da Magalu Cloud, este passo a passo deve funcionar em praticamente qualquer VPS Linux baseada em Debian ou derivados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pré-requisitos&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Antes de começar, garanta que você já tenha:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;uma VPS Linux ativa&lt;/li&gt;
&lt;li&gt;um domínio apontando para o IP da VPS&lt;/li&gt;
&lt;li&gt;acesso root ao servidor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Instalando Portainer e Traefik com SetupOrion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ao acessar sua VPS, vamos utilizar o SetupOrion para instalar o Portainer e o Traefik.&lt;/p&gt;

&lt;p&gt;Site: &lt;a href="https://oriondesign.art.br/" rel="noopener noreferrer"&gt;https://oriondesign.art.br/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para baixar e executar o script, utilize o usuário &lt;code&gt;root&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;O setup do Portainer e do Traefik vai solicitar algumas informações, entre elas o domínio do Portainer, que já deve estar configurado, por exemplo via Cloudflare. Também será solicitado o nome da rede interna. Neste exemplo, usamos &lt;code&gt;network_internal&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;O instalador é bem direto, e a primeira opção já instala o Portainer e o Traefik.&lt;/p&gt;

&lt;p&gt;Importante:&lt;/p&gt;

&lt;p&gt;Configure o domínio antes de iniciar a instalação, para evitar problemas com roteamento e emissão de certificado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Estrutura da instalação&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Neste tutorial, vamos subir duas stacks no Portainer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;postgres&lt;/li&gt;
&lt;li&gt;evolution-go&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A stack do PostgreSQL será usada para persistência de dados, e a stack da Evolution Go será exposta pelo Traefik.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Stack do PostgreSQL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Crie uma stack no Portainer com o conteúdo abaixo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;postgres&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;postgres:15&lt;/span&gt;
    &lt;span class="na"&gt;command&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="s"&gt;postgres&lt;/span&gt;
      &lt;span class="s"&gt;-c max_connections=500&lt;/span&gt;
      &lt;span class="s"&gt;-c shared_buffers=512MB&lt;/span&gt;

    &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;postgres_data:/var/lib/postgresql/data&lt;/span&gt;

    &lt;span class="na"&gt;networks&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;network_internal&lt;/span&gt;

    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;POSTGRES_USER=postgres&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;POSTGRES_PASSWORD=SUA_SENHA_FORTE_AQUI&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;TZ=America/Sao_Paulo&lt;/span&gt;

    &lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;mode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;replicated&lt;/span&gt;
      &lt;span class="na"&gt;replicas&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
      &lt;span class="na"&gt;placement&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;constraints&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;node.role == manager&lt;/span&gt;
      &lt;span class="na"&gt;resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;limits&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;cpus&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;1"&lt;/span&gt;
          &lt;span class="na"&gt;memory&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1024M&lt;/span&gt;

&lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;postgres_data&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;postgres_data&lt;/span&gt;

&lt;span class="na"&gt;networks&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;network_internal&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;external&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;network_internal&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Observações sobre a stack do PostgreSQL&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Troque SUA_SENHA_FORTE_AQUI por uma senha real e forte.&lt;/li&gt;
&lt;li&gt;O limite de memória foi definido em 1024M. Como a VPS tem apenas 2 GB de RAM, esse ambiente é enxuto. Funciona, mas não sobra muito recurso para crescer.&lt;/li&gt;
&lt;li&gt;O shared_buffers=512MB é um valor aceitável para um ambiente pequeno, mas pode ser ajustado depois conforme uso real.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Stack da Evolution Go&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Agora crie outra stack no Portainer para a Evolution Go.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;evolution-go&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;evoapicloud/evolution-go:latest&lt;/span&gt;

    &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;evolution_instances:/evolution/instances&lt;/span&gt;

    &lt;span class="na"&gt;networks&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;network_internal&lt;/span&gt;

    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;SERVER_PORT=8080&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;CLIENT_NAME=EVOGO&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;GLOBAL_API_KEY=SUA_GLOBAL_API_KEY_AQUI&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;POSTGRES_AUTH_DB=postgresql://postgres:SUA_SENHA_FORTE_AQUI@postgres:5432/evogo_auth?sslmode=disable&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;POSTGRES_USERS_DB=postgresql://postgres:SUA_SENHA_FORTE_AQUI@postgres:5432/evogo_users?sslmode=disable&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;DATABASE_SAVE_MESSAGES=false&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;WADEBUG=INFO&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;LOGTYPE=console&lt;/span&gt;

    &lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;mode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;replicated&lt;/span&gt;
      &lt;span class="na"&gt;replicas&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
      &lt;span class="na"&gt;placement&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;constraints&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;node.role == manager&lt;/span&gt;
      &lt;span class="na"&gt;labels&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;traefik.enable=true&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;traefik.http.routers.evolution.rule=Host(`seu-dominio.com.br`)&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;traefik.http.routers.evolution.entrypoints=websecure&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;traefik.http.routers.evolution.priority=1&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;traefik.http.routers.evolution.tls.certresolver=letsencryptresolver&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;traefik.http.routers.evolution.service=evolution&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;traefik.http.services.evolution.loadbalancer.server.port=8080&lt;/span&gt;

&lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;evolution_instances&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;evolution_instances&lt;/span&gt;

&lt;span class="na"&gt;networks&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;network_internal&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;external&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;network_internal&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;O que você precisa alterar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Antes de subir essa stack, ajuste estes pontos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SUA_GLOBAL_API_KEY_AQUI&lt;/li&gt;
&lt;li&gt;SUA_SENHA_FORTE_AQUI&lt;/li&gt;
&lt;li&gt;seu-dominio.com.br&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Observações importantes&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Senha do PostgreSQL&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A senha usada em POSTGRES_PASSWORD deve ser exatamente a mesma usada nas variáveis:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;POSTGRES_AUTH_DB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POSTGRES_USERS_DB&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Se isso não bater, a aplicação não conseguirá abrir conexão com o banco.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Bancos utilizados&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A Evolution Go foi configurada aqui para usar dois bancos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;evogo_auth&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;evogo_users&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A Evolution Go cria esses bancos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. API Key global&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A &lt;code&gt;GLOBAL_API_KEY&lt;/code&gt;é sensível. Não publique essa chave em prints, repositórios ou posts públicos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Domínio&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Na label do Traefik:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- traefik.http.routers.evolution.rule=Host(`seu-dominio.com.br`)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;troque pelo domínio real que apontará para sua Evolution Go.&lt;/p&gt;

</description>
      <category>evolution</category>
      <category>docker</category>
      <category>portainer</category>
      <category>traefik</category>
    </item>
    <item>
      <title>O Impacto da Inteligência Artificial no Mercado de Tecnologia e na Carreira de Desenvolvedores</title>
      <dc:creator>Júnior Carvalho</dc:creator>
      <pubDate>Wed, 25 Feb 2026 00:29:40 +0000</pubDate>
      <link>https://dev.to/junior_carvalho/impacto-da-ia-no-mercado-de-tecnologia-e-desenvolvedores-3g0n</link>
      <guid>https://dev.to/junior_carvalho/impacto-da-ia-no-mercado-de-tecnologia-e-desenvolvedores-3g0n</guid>
      <description>&lt;p&gt;O CEO da Meta, empresa de 79 mil funcionários e cerca de US$ 200 bilhões de faturamento, está dizendo que pretende substituir uma camada inteira de profissionais por IA, avisando que, no começo, será caro, mas que a curva de custo deve cair rapidamente.&lt;/p&gt;

&lt;p&gt;Esse tipo de discurso existe no mercado e executivos realmente falam sobre aumento de automação. Porém, a ideia de substituir uma camada inteira ainda é mais interpretação do que fato confirmado.&lt;/p&gt;

&lt;p&gt;O impacto real tende a ser aumento de produtividade e redução relativa de quadro de pessoal, não extinção de funções, especialmente porque a demanda global por software continua alta e a função do desenvolvedor está evoluindo, não desaparecendo.&lt;/p&gt;




&lt;p&gt;A Meta cortou cerca de 21 mil pessoas entre 2022 e 2023, no chamado “year of efficiency”, reestruturou times e passou a otimizar o quadro de pessoal enquanto aumenta investimentos em IA e contrata especialistas em machine learning. Isso é factual e reflete uma mudança estrutural no perfil das equipes.&lt;/p&gt;

&lt;p&gt;Na prática, empresas estão trocando parte das funções operacionais por profissionais capazes de construir sistemas mais automatizados, o que reforça a tendência de valorização de perfis com capacidade de arquitetura, integração e domínio de IA aplicada.&lt;/p&gt;




&lt;p&gt;A narrativa de que empresas cortaram pessoas que escrevem código e contrataram pessoas que ensinam IA a escrever código descreve uma tendência plausível, embora simplificada. A composição das equipes realmente está mudando, com mais investimento em infraestrutura e ferramentas de IA.&lt;/p&gt;

&lt;p&gt;Porém, isso não elimina desenvolvedores, apenas muda o tipo de trabalho. O impacto direto é aumento de produtividade individual, permitindo que um profissional produza o que antes exigia vários, o que reduz a necessidade de equipes grandes e aumenta a exigência técnica por profissional.&lt;/p&gt;




&lt;p&gt;A comparação de custo entre um engenheiro mid-level nos EUA e um agente de IA é parcialmente verdadeira apenas em termos teóricos. Não existe hoje equivalência direta de custo porque sistemas de IA exigem infraestrutura, integração, supervisão humana e manutenção.&lt;/p&gt;

&lt;p&gt;O efeito real observado no mercado não é substituição completa, mas amplificação de produtividade. Isso cria pressão sobre perfis mid-level tradicionais, especialmente aqueles focados em tarefas repetitivas e bem definidas, como CRUD simples ou manutenção básica.&lt;/p&gt;




&lt;p&gt;Executivos como Sam Altman falam sobre redução de custo e tempo de tarefas com IA, e isso é consistente com o que está acontecendo: geração de código assistida, automação de testes, refatoração e depuração com LLMs.&lt;/p&gt;

&lt;p&gt;O resultado prático é aumento de eficiência entre 30% e 70% em muitos contextos.&lt;/p&gt;

&lt;p&gt;Esse aumento não reduz a demanda total por software, mas muda o equilíbrio entre quantidade de profissionais e produção necessária.&lt;/p&gt;




&lt;p&gt;Declarações de líderes como Marc Benioff sobre ganhos de produtividade com agentes de IA também refletem a realidade corporativa. No Google, executivos já mencionaram percentuais relevantes de código assistido por IA.&lt;/p&gt;

&lt;p&gt;Isso confirma a tendência de que o desenvolvimento assistido será padrão. O impacto direto para profissionais é que senioridade passa a ser definida menos por tempo de experiência e mais por capacidade de decisão, arquitetura e entendimento de negócio.&lt;/p&gt;




&lt;p&gt;Quando se fala em substituir engenheiros mid-level, o alvo não é apenas programação, mas funções baseadas em entrada padronizada e saída previsível, como suporte técnico, análise operacional e coordenação de tarefas.&lt;/p&gt;

&lt;p&gt;Isso coincide com estudos que mostram maior risco de automação em atividades repetitivas. Porém, funções que exigem julgamento, criatividade e responsabilidade continuam dependentes de humanos.&lt;/p&gt;




&lt;p&gt;O Brasil possui um grande contingente de desenvolvedores, com estimativas na faixa de centenas de milhares, e muitos estão no nível pleno. Isso significa que a transformação tecnológica afeta diretamente o mercado nacional.&lt;/p&gt;

&lt;p&gt;Ao mesmo tempo, existe déficit de profissionais qualificados, o que indica que o problema não é falta de vagas, mas desalinhamento de competências.&lt;/p&gt;




&lt;p&gt;A comparação salarial entre Brasil e EUA perde relevância relativa quando a IA aumenta produtividade global.&lt;/p&gt;

&lt;p&gt;O diferencial de custo geográfico diminui porque empresas passam a comparar produtividade total, não apenas salário. Isso cria pressão sobre salários médios, especialmente para perfis menos especializados, enquanto profissionais que dominam IA aplicada tendem a se valorizar.&lt;/p&gt;




&lt;p&gt;Relatórios como os da McKinsey indicam que uma parcela significativa das horas de trabalho pode ser automatizada até 2030, o que é consistente com a ideia de transformação gradual do trabalho.&lt;/p&gt;

&lt;p&gt;Ao mesmo tempo, o Brasil enfrenta escassez de profissionais qualificados em tecnologia, reforçando que o principal risco não é desemprego massivo, mas obsolescência de competências.&lt;/p&gt;




&lt;p&gt;A decisão entre automatizar rápido ou não envolve trade-offs reais. Automatização reduz custos, mas pode gerar perda de conhecimento tácito se mal conduzida. Por outro lado, empresas que não adotam tecnologia perdem competitividade.&lt;/p&gt;

&lt;p&gt;Esse dilema existe em praticamente todas as revoluções tecnológicas e tende a favorecer organizações que adotam mudanças de forma gradual e estratégica.&lt;/p&gt;




&lt;p&gt;O fato de empresas como Salesforce, Google e Meta investirem fortemente em IA confirma que a integração dessa tecnologia é inevitável.&lt;/p&gt;

&lt;p&gt;A ideia de que quem adotar primeiro terá vantagem temporária é plausível, pois existe uma curva de aprendizado organizacional. No entanto, não há evidência objetiva de uma janela fixa de dois ou três anos.&lt;/p&gt;




&lt;p&gt;A conclusão de que haverá uma transição econômica com redistribuição de poder é coerente com mudanças tecnológicas históricas. O cenário mais provável não é colapso do emprego em tecnologia, mas evolução do papel do engenheiro para uma função mais próxima de orquestração de sistemas, tomada de decisão e integração de ferramentas inteligentes.&lt;/p&gt;

&lt;p&gt;Profissionais que aprenderem a usar IA tendem a ganhar produtividade e valor, enquanto aqueles que não se adaptarem perdem competitividade ao longo do tempo.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>softwaredevelopment</category>
    </item>
  </channel>
</rss>
