<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://guilherme.stracini.com.br/blog/feed.xml" rel="self" type="application/atom+xml" /><link href="https://guilherme.stracini.com.br/blog/" rel="alternate" type="text/html" hreflang="pt-BR" /><updated>2026-04-01T17:02:50+00:00</updated><id>https://guilherme.stracini.com.br/blog/feed.xml</id><title type="html">Tecnologia &amp;amp; Viagens</title><subtitle>Blog sobre tecnologia, infraestrutura e automação para quem viaja e constrói.</subtitle><author><name>Guilherme Branco Stracini</name></author><entry><title type="html">Envio de SMS pela Internet: Da API ao Smartphone como Gateway</title><link href="https://guilherme.stracini.com.br/blog/artigos/envio-sms-internet/" rel="alternate" type="text/html" title="Envio de SMS pela Internet: Da API ao Smartphone como Gateway" /><published>2026-03-20T00:00:00+00:00</published><updated>2026-03-20T00:00:00+00:00</updated><id>https://guilherme.stracini.com.br/blog/artigos/envio-sms-internet</id><content type="html" xml:base="https://guilherme.stracini.com.br/blog/artigos/envio-sms-internet/"><![CDATA[<p class="lead">Seja para notificações de sistemas, alertas de monitoramento, autenticação em dois fatores ou automações criativas durante uma viagem, enviar um SMS pela internet é uma necessidade que aparece cedo ou tarde na vida de qualquer desenvolvedor. As opções vão do pragmático ao surpreendentemente artesanal.</p>

<p>O SMS — apesar de ter quase cinco décadas — continua sendo o canal mais universalmente alcançável do mundo. Não precisa de app instalado, não depende de internet no destinatário, não cai em spam silencioso. É por isso que sistemas críticos ainda o usam e por isso que desenvolvedores continuam precisando enviá-lo programaticamente.</p>

<p>Neste artigo, exploramos quatro abordagens distintas para integrar o envio de SMS em sistemas e automações: APIs em nuvem, modems GSM com comandos AT, smartphones como gateways e as chamadas <em>chipeiras</em> ou SIM boxes. Cada uma tem seu lugar dependendo do volume, custo, conectividade e grau de controle que você precisa.</p>

<div class="divider">· · ·</div>

<!-- ═══════════════════════════════════════
     SEÇÃO 1 — APIs
════════════════════════════════════════ -->

<div class="section-header">
  <div class="section-num">01</div>
  <div class="section-title-wrap">
    <h2>APIs de SMS em nuvem</h2>
    <span class="badge badge-paid">Pago</span>
  </div>
</div>

<p>A forma mais simples e escalável de enviar SMS de qualquer lugar do mundo é através de uma API de terceiros. Você faz uma requisição HTTP com suas credenciais, especifica o número de destino e o conteúdo da mensagem, e o provedor cuida de todo o resto — roteamento internacional, fallbacks de operadora, relatórios de entrega e conformidade regulatória.</p>

<p>O modelo de precificação é quase sempre baseado em consumo: você paga por mensagem enviada, com valores que variam por país de destino. Para baixo volume, o custo é irrisório. Para alto volume, a negociação direta com o provedor pode fazer diferença significativa.</p>

<h3 id="principais-provedores">Principais provedores</h3>

<div class="providers-grid">
  <div class="provider-card">
    <div class="provider-name">Twilio</div>
    <div class="provider-detail">O mais popular. SDK para qualquer linguagem, documentação exemplar, dashboard completo.</div>
    <div class="provider-price">~$0.0079/SMS (EUA)</div>
  </div>
  <div class="provider-card">
    <div class="provider-name">Amazon SNS</div>
    <div class="provider-detail">Ideal para quem já usa AWS. Integra nativamente com Lambda, SQS, CloudWatch.</div>
    <div class="provider-price">~$0.00645/SMS (EUA)</div>
  </div>
  <div class="provider-card">
    <div class="provider-name">Vonage / Nexmo</div>
    <div class="provider-detail">Boa cobertura internacional. APIs bem documentadas. Créditos de teste generosos.</div>
    <div class="provider-price">~€0.0052/SMS (EU)</div>
  </div>
  <div class="provider-card">
    <div class="provider-name">Infobip</div>
    <div class="provider-detail">Forte no mercado europeu e LATAM. Robusto para uso empresarial e alto volume.</div>
    <div class="provider-price">Cotação por volume</div>
  </div>
  <div class="provider-card">
    <div class="provider-name">MessageBird</div>
    <div class="provider-detail">Interface limpa, APIs modernas, bom para startups e produtos SaaS.</div>
    <div class="provider-price">~€0.007/SMS (EU)</div>
  </div>
  <div class="provider-card">
    <div class="provider-name">Zenvia / Sinch</div>
    <div class="provider-detail">Focados no mercado brasileiro. Suporte localizado e conformidade com Anatel.</div>
    <div class="provider-price">Cotação nacional</div>
  </div>
</div>

<h3 id="exemplo-prático-com-twilio">Exemplo prático com Twilio</h3>

<p>A implementação é quase trivial. Com credenciais em mãos (<code class="language-plaintext highlighter-rouge">Account SID</code> e <code class="language-plaintext highlighter-rouge">Auth Token</code>), basta uma chamada à API REST:</p>

<div class="code-block">
  <div class="code-header">
    <div class="code-dots"><span></span><span></span><span></span></div>
    <div class="code-lang">PHP 8.2+</div>
  </div>
  <pre><span class="cm">// Instalação: composer require twilio/sdk</span>
<span class="kw">use</span> <span class="va">Twilio\Rest\Client</span>;

<span class="va">$sid</span>   = <span class="st">'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'</span>;
<span class="va">$token</span> = <span class="st">'seu_auth_token'</span>;

<span class="va">$twilio</span> = <span class="kw">new</span> <span class="fn">Client</span>(<span class="va">$sid</span>, <span class="va">$token</span>);

<span class="va">$mensagem</span> = <span class="va">$twilio</span>-&gt;messages-&gt;<span class="fn">create</span>(
    <span class="st">'+5511999998888'</span>,  <span class="cm">// destinatário</span>
    [
        <span class="st">'from'</span> =&gt; <span class="st">'+15017122661'</span>,  <span class="cm">// número Twilio</span>
        <span class="st">'body'</span> =&gt; <span class="st">'Olá! Sua reserva foi confirmada. ✈️'</span>,
    ]
);

<span class="kw">echo</span> <span class="va">$mensagem</span>-&gt;sid;  <span class="cm">// SM1234567890abcdef...</span></pre>
</div>

<div class="code-block">
  <div class="code-header">
    <div class="code-dots"><span></span><span></span><span></span></div>
    <div class="code-lang">cURL (puro HTTP — sem SDK)</div>
  </div>
  <pre><span class="kw">curl</span> -X POST <span class="st">"https://api.twilio.com/2010-04-01/Accounts/ACXXX/Messages.json"</span> \
  -u <span class="st">"ACXXX:auth_token"</span> \
  --data-urlencode <span class="st">"To=+5511999998888"</span> \
  --data-urlencode <span class="st">"From=+15017122661"</span> \
  --data-urlencode <span class="st">"Body=Sua entrega chegou!"</span></pre>
</div>

<div class="callout callout-tip">
  <div class="callout-label">Dica de viagem</div>
  APIs em nuvem são ideais quando você está em movimento. Funcionam de qualquer rede com acesso à internet, sem hardware adicional. Para sistemas de notificação de viagens, rastreamento de bagagem ou alertas de check-in, são a solução mais prática.
</div>

<p>O principal cuidado é com a regulamentação local de cada país: muitas operadoras bloqueiam SMS enviados por números internacionais ou exigem registro do remetente (<em>Sender ID</em>). Provedores como Twilio e Infobip cuidam disso automaticamente nas regiões onde têm acordos estabelecidos.</p>

<div class="divider">· · ·</div>

<!-- ═══════════════════════════════════════
     SEÇÃO 2 — MODEM GSM
════════════════════════════════════════ -->

<div class="section-header">
  <div class="section-num">02</div>
  <div class="section-title-wrap">
    <h2>Modem GSM e comandos AT+</h2>
    <span class="badge badge-hybrid">Pago / Gratuito</span>
  </div>
</div>

<p>Antes das APIs em nuvem dominarem o cenário, a forma mais comum de enviar SMS programaticamente era através de um modem GSM conectado ao servidor via USB ou porta serial. O modem é essencialmente um chipset de celular em formato compacto — você insere um SIM card, conecta ao computador e se comunica com ele usando o protocolo <strong>AT+</strong>, um conjunto de comandos padronizado pela ITU desde os anos 1980.</p>

<p>Modems GSM populares como o <strong>Huawei E1750</strong>, <strong>SIM800L</strong>, <strong>SIM900</strong> e <strong>Quectel EC21</strong> podem ser encontrados por preços que vão de R$50 a R$300. Depois disso, o custo de envio é simplesmente o plano do SIM card inserido — que pode ser um pré-pago convencional ou um chip M2M de operadora empresarial.</p>

<h3 id="comandos-at-essenciais-para-sms">Comandos AT+ essenciais para SMS</h3>

<table class="at-table">
  <thead>
    <tr>
      <th>Comando</th>
      <th>Função</th>
      <th>Resposta esperada</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>AT</td>
      <td>Verificar conexão com o modem</td>
      <td><code>OK</code></td>
    </tr>
    <tr>
      <td>AT+CMGF=1</td>
      <td>Definir modo texto (em vez de PDU)</td>
      <td><code>OK</code></td>
    </tr>
    <tr>
      <td>AT+CSCS="UTF-8"</td>
      <td>Definir charset para suporte a acentos</td>
      <td><code>OK</code></td>
    </tr>
    <tr>
      <td>AT+CMGS="+5511999998888"</td>
      <td>Iniciar envio para o número especificado</td>
      <td><code>&gt;</code> (aguarda texto)</td>
    </tr>
    <tr>
      <td><em>[texto]</em> + Ctrl+Z</td>
      <td>Finalizar e enviar a mensagem</td>
      <td><code>+CMGS: 42</code> + <code>OK</code></td>
    </tr>
    <tr>
      <td>AT+CSQ</td>
      <td>Verificar força do sinal (0–31)</td>
      <td><code>+CSQ: 18,0</code></td>
    </tr>
    <tr>
      <td>AT+CPIN?</td>
      <td>Verificar status do SIM card</td>
      <td><code>+CPIN: READY</code></td>
    </tr>
    <tr>
      <td>AT+CMGL="ALL"</td>
      <td>Listar mensagens armazenadas na memória</td>
      <td>Lista de mensagens</td>
    </tr>
  </tbody>
</table>

<h3 id="automação-via-php-com-porta-serial">Automação via PHP com porta serial</h3>

<div class="code-block">
  <div class="code-header">
    <div class="code-dots"><span></span><span></span><span></span></div>
    <div class="code-lang">PHP — comunicação serial com modem GSM</div>
  </div>
  <pre><span class="cm">// Abre a porta serial onde o modem está conectado</span>
<span class="va">$porta</span> = <span class="fn">fopen</span>(<span class="st">'/dev/ttyUSB0'</span>, <span class="st">'r+b'</span>);

<span class="kw">if</span> (!<span class="va">$porta</span>) {
    <span class="kw">throw new</span> <span class="fn">RuntimeException</span>(<span class="st">'Não foi possível abrir a porta serial.'</span>);
}

<span class="cm">// Configura velocidade da serial (Linux)</span>
<span class="fn">exec</span>(<span class="st">'stty -F /dev/ttyUSB0 115200 cs8 -cstopb -parenb'</span>);

<span class="va">$enviar</span> = <span class="kw">function</span>(<span class="va">string</span> <span class="va">$cmd</span>) <span class="kw">use</span> (<span class="va">$porta</span>): <span class="va">string</span> {
    <span class="fn">fwrite</span>(<span class="va">$porta</span>, <span class="va">$cmd</span> . <span class="st">"\r\n"</span>);
    <span class="fn">usleep</span>(<span class="nu">500000</span>);
    <span class="kw">return</span> <span class="fn">fread</span>(<span class="va">$porta</span>, <span class="nu">1024</span>);
};

<span class="va">$enviar</span>(<span class="st">'AT'</span>);
<span class="va">$enviar</span>(<span class="st">'AT+CMGF=1'</span>);
<span class="va">$enviar</span>(<span class="st">'AT+CSCS="UTF-8"'</span>);
<span class="va">$enviar</span>(<span class="st">'AT+CMGS="+5511999998888"'</span>);
<span class="va">$resposta</span> = <span class="va">$enviar</span>(<span class="st">"Sua encomenda chegou!\x1A"</span>); <span class="cm">// \x1A = Ctrl+Z</span>

<span class="fn">fclose</span>(<span class="va">$porta</span>);

<span class="kw">if</span> (<span class="fn">str_contains</span>(<span class="va">$resposta</span>, <span class="st">'+CMGS'</span>)) {
    <span class="kw">echo</span> <span class="st">"SMS enviado com sucesso!\n"</span>;
}</pre>
</div>

<div class="callout callout-warn">
  <div class="callout-label">Atenção</div>
  Em sistemas Windows, a porta será algo como <code>COM3</code> ou <code>COM4</code>. No Linux, tipicamente <code>/dev/ttyUSB0</code> ou <code>/dev/ttyACM0</code>. Use o comando <code>dmesg | grep tty</code> após conectar o modem USB para identificar o dispositivo correto.
</div>

<p>Bibliotecas como <strong>Gammu</strong> (Python/C) e <strong>Kannel</strong> (gateway SMS completo) abstraem toda essa comunicação serial e adicionam filas, logs, suporte a múltiplos modems e relatórios de entrega. Para produção, dificilmente faz sentido escrever a comunicação serial na mão.</p>

<p>A grande vantagem desta abordagem é a <strong>independência de terceiros</strong>: você usa o plano do seu SIM card, sem depender de API externa, sem expor dados a provedores. A desvantagem é a escala — um único modem consegue enviar entre 6 e 10 SMS por minuto, limitado pelo próprio protocolo GSM.</p>

<div class="divider">· · ·</div>

<!-- ═══════════════════════════════════════
     SEÇÃO 3 — SMARTPHONE GATEWAY
════════════════════════════════════════ -->

<div class="section-header">
  <div class="section-num">03</div>
  <div class="section-title-wrap">
    <h2>Smartphone como gateway SMS via HTTP</h2>
    <span class="badge badge-free">Baixo custo / Gratuito</span>
  </div>
</div>

<p>Aqui entra uma das abordagens mais criativas e práticas para quem já tem um smartphone Android disponível: transformá-lo em um gateway SMS que expõe uma API HTTP local. O celular fica conectado à rede Wi-Fi da casa ou escritório, rodando um app que escuta requisições HTTP e usa a interface de SMS nativa do Android para disparar as mensagens.</p>

<p>É o equilíbrio perfeito entre custo e praticidade. Você usa o plano de dados/SMS do celular, não precisa de hardware adicional e tem acesso à rede GSM real sem modem externo. O app faz a ponte entre o mundo HTTP e o mundo GSM.</p>

<div class="gateway-diagram">
  <div class="gw-flow">
    <div class="gw-node">Servidor / Script<small>faz requisição HTTP</small></div>
    <div class="gw-arrow">→</div>
    <div class="gw-node">Rede local Wi-Fi<small>192.168.x.x</small></div>
    <div class="gw-arrow">→</div>
    <div class="gw-node accent">Smartphone Android<small>app gateway rodando</small></div>
    <div class="gw-arrow">→</div>
    <div class="gw-node">Rede GSM<small>operadora do SIM</small></div>
    <div class="gw-arrow">→</div>
    <div class="gw-node">Destinatário<small>qualquer número</small></div>
  </div>
  <p class="gw-caption">Fluxo completo: requisição HTTP interna → gateway Android → SMS real via operadora</p>
</div>

<h3 id="aplicativos-populares-para-esta-função">Aplicativos populares para esta função</h3>

<ul class="app-list">
  <li>
    <div class="app-icon">SMS+</div>
    <div class="app-info">
      <strong>SMS Gateway — Android</strong>
      <span>Expõe endpoint REST local. Suporta autenticação por token. Configurável por porta. Opção mais simples e direta.</span>
    </div>
  </li>
  <li>
    <div class="app-icon">GW</div>
    <div class="app-info">
      <strong>Android SMS Gateway (Play Store)</strong>
      <span>Permite configurar porta HTTP personalizada, autenticação básica e suporta múltiplos SIM cards em dispositivos dual-SIM.</span>
    </div>
  </li>
  <li>
    <div class="app-icon">AIO</div>
    <div class="app-info">
      <strong>AIO SMS Gateway</strong>
      <span>Além de HTTP local, suporta webhooks e integração com serviços externos. Interface de gerenciamento pelo browser.</span>
    </div>
  </li>
  <li>
    <div class="app-icon">TSK</div>
    <div class="app-info">
      <strong>Tasker + AutoShare</strong>
      <span>Para entusiastas de automação: o Tasker pode criar fluxos que recebem intents HTTP e disparam SMS, com lógica customizável.</span>
    </div>
  </li>
</ul>

<h3 id="como-fazer-a-requisição-do-servidor">Como fazer a requisição do servidor</h3>

<div class="code-block">
  <div class="code-header">
    <div class="code-dots"><span></span><span></span><span></span></div>
    <div class="code-lang">PHP — requisição para o gateway Android na rede local</div>
  </div>
  <pre><span class="cm">// O smartphone está em 192.168.1.42 na porta 8080</span>
<span class="va">$gatewayUrl</span> = <span class="st">'http://192.168.1.42:8080/send'</span>;

<span class="va">$payload</span> = [
    <span class="st">'phone'</span>   =&gt; <span class="st">'+5511999998888'</span>,
    <span class="st">'message'</span> =&gt; <span class="st">'Alerta: servidor respondendo lentamente!'</span>,
    <span class="st">'sim'</span>     =&gt; <span class="nu">1</span>,
];

<span class="va">$ch</span> = <span class="fn">curl_init</span>(<span class="va">$gatewayUrl</span>);
<span class="fn">curl_setopt_array</span>(<span class="va">$ch</span>, [
    <span class="va">CURLOPT_POST</span>           =&gt; <span class="kw">true</span>,
    <span class="va">CURLOPT_POSTFIELDS</span>     =&gt; <span class="fn">json_encode</span>(<span class="va">$payload</span>),
    <span class="va">CURLOPT_HTTPHEADER</span>     =&gt; [
        <span class="st">'Content-Type: application/json'</span>,
        <span class="st">'Authorization: Bearer seu_token_aqui'</span>,
    ],
    <span class="va">CURLOPT_RETURNTRANSFER</span> =&gt; <span class="kw">true</span>,
    <span class="va">CURLOPT_TIMEOUT</span>        =&gt; <span class="nu">10</span>,
]);

<span class="va">$resposta</span> = <span class="fn">curl_exec</span>(<span class="va">$ch</span>);
<span class="va">$status</span>   = <span class="fn">curl_getinfo</span>(<span class="va">$ch</span>, <span class="va">CURLINFO_HTTP_CODE</span>);
<span class="fn">curl_close</span>(<span class="va">$ch</span>);

<span class="kw">if</span> (<span class="va">$status</span> === <span class="nu">200</span>) {
    <span class="kw">echo</span> <span class="st">"SMS enviado via gateway Android!\n"</span>;
}</pre>
</div>

<div class="callout callout-tip">
  <div class="callout-label">Caso de uso viajante</div>
  Deixe um Android antigo com chip pré-pago conectado em casa rodando o gateway. Durante uma viagem internacional, você pode disparar SMS para números brasileiros sem pagar tarifas de roaming — seu script acessa o gateway via VPN ou túnel e o celular em casa faz o envio local.
</div>

<p>O ponto fraco desta solução é a confiabilidade: o celular pode reiniciar, o app pode ser morto pelo sistema operacional para economizar bateria (<em>doze mode</em>), ou a bateria pode descarregar. Para uso crítico, é necessário fixar o app na memória nas configurações do Android, manter o celular plugado e monitorar o uptime do gateway.</p>

<div class="divider">· · ·</div>

<!-- ═══════════════════════════════════════
     SEÇÃO 4 — SIM BOX
════════════════════════════════════════ -->

<div class="section-header">
  <div class="section-num">04</div>
  <div class="section-title-wrap">
    <h2>SIM Box — a chipeira industrial</h2>
    <span class="badge badge-paid">Pago</span>
  </div>
</div>

<p>Menos conhecida fora de ambientes de telecom, a <strong>SIM Box</strong> — popularmente chamada de <em>chipeira</em> no Brasil — é essencialmente a evolução do modem GSM em formato rack. Trata-se de um hardware dedicado que acomoda múltiplos SIM cards simultaneamente (tipicamente 4, 8, 16, 32 ou até 128 slots) e expõe todos eles como uma interface de telefonia unificada.</p>

<p>O dispositivo se conecta à rede IP e implementa protocolos VoIP/SIP e interfaces de SMS, funcionando como uma ponte entre o mundo digital e a rede celular — mas com capacidade de envio paralelo muito superior ao modem único. É o hardware preferido em call centers, empresas de marketing SMS e operações de comunicação de alto volume.</p>

<div class="simbox-card">
  <div class="simbox-header">
    <div class="simbox-icon">SIM<br />BOX</div>
    <div class="simbox-header-text">
      <h4>GoIP-16 / Dinstar / OpenVox — SIM Box típica</h4>
      <span>Hardware de gateway GSM multi-canal</span>
    </div>
  </div>
  <div class="simbox-body">
    <div class="simbox-specs">
      <div class="spec-item"><div class="spec-label">Canais</div><div class="spec-value">4–128 SIMs</div></div>
      <div class="spec-item"><div class="spec-label">Throughput</div><div class="spec-value">~6 SMS/min/SIM</div></div>
      <div class="spec-item"><div class="spec-label">Protocolos</div><div class="spec-value">SIP / HTTP / SMPP</div></div>
      <div class="spec-item"><div class="spec-label">Conectividade</div><div class="spec-value">Ethernet / Wi-Fi</div></div>
      <div class="spec-item"><div class="spec-label">Preço (16 ch.)</div><div class="spec-value">US$300–600</div></div>
      <div class="spec-item"><div class="spec-label">Gestão</div><div class="spec-value">Web UI / API</div></div>
    </div>
    <p>A maioria dos modelos expõe uma API HTTP REST ou suporte ao protocolo SMPP (Short Message Peer-to-Peer), permitindo integração direta com plataformas de envio como o <strong>Kannel</strong> ou soluções proprietárias. A interface de administração web facilita monitoramento de sinal, balanceamento de carga entre SIM cards e logs de entrega.</p>
  </div>
</div>

<h3 id="como-funciona-na-prática">Como funciona na prática</h3>

<p>Cada slot da SIM box opera como um modem GSM independente. O firmware do dispositivo orquestra a distribuição de mensagens entre os chips, garantindo que nenhum SIM exceda os limites da operadora. A integração mais comum é via protocolo <strong>SMPP</strong> (Short Message Peer-to-Peer), o protocolo nativo de telecomunicações para troca de SMS em alta velocidade.</p>

<div class="code-block">
  <div class="code-header">
    <div class="code-dots"><span></span><span></span><span></span></div>
    <div class="code-lang">Integração SMPP com PHP — biblioteca php-smpp</div>
  </div>
  <pre><span class="cm">// composer require onlinecity/php-smpp</span>
<span class="kw">use</span> <span class="va">smpp\SMPP</span>;
<span class="kw">use</span> <span class="va">smpp\transport\TcpIpTransport</span>;
<span class="kw">use</span> <span class="va">smpp\SmppClient</span>;
<span class="kw">use</span> <span class="va">smpp\Address</span>;

<span class="va">$transport</span> = <span class="kw">new</span> <span class="fn">TcpIpTransport</span>(<span class="st">'192.168.1.100'</span>, <span class="nu">2775</span>);
<span class="va">$transport</span>-&gt;<span class="fn">setRecvTimeout</span>(<span class="nu">10000</span>);

<span class="va">$smpp</span> = <span class="kw">new</span> <span class="fn">SmppClient</span>(<span class="va">$transport</span>);
<span class="va">$smpp</span>-&gt;<span class="fn">bindTransmitter</span>(<span class="st">'usuario'</span>, <span class="st">'senha'</span>);

<span class="va">$from</span> = <span class="kw">new</span> <span class="fn">Address</span>(<span class="st">'SistemaCRM'</span>, <span class="va">SMPP::TON_ALPHANUMERIC</span>);
<span class="va">$to</span>   = <span class="kw">new</span> <span class="fn">Address</span>(<span class="st">'+5511999998888'</span>, <span class="va">SMPP::TON_INTERNATIONAL</span>);

<span class="va">$smpp</span>-&gt;<span class="fn">sendSMS</span>(<span class="va">$from</span>, <span class="va">$to</span>, <span class="st">'Cobrança disponível no portal.'</span>);
<span class="va">$smpp</span>-&gt;<span class="fn">close</span>();</pre>
</div>

<div class="callout callout-warn">
  <div class="callout-label">Importante — Questão Legal</div>
  SIM boxes são ferramentas legítimas para uso interno corporativo. Porém, seu uso para bypass de tráfego internacional (fazer chamadas/SMS internacionais parecerem locais para burlar tarifas de roaming) é ilegal em muitos países e viola os termos de uso das operadoras. O uso legítimo é em LANs privadas para sistemas internos, com chips regularmente cadastrados.
</div>

<p>Fabricantes como <strong>GoIP</strong>, <strong>Dinstar</strong>, <strong>OpenVox</strong> e <strong>Synway</strong> dominam o mercado de SIM boxes. Muitos modelos também suportam chamadas de voz via VoIP (protocolo SIP), o que os torna versáteis para centrais telefônicas internas que também precisam de SMS.</p>

<div class="divider">· · ·</div>

<!-- ═══════════════════════════════════════
     COMPARATIVO
════════════════════════════════════════ -->

<div class="section-header">
  <div class="section-num">—</div>
  <div class="section-title-wrap">
    <h2>Comparativo das abordagens</h2>
  </div>
</div>

<table class="compare-table">
  <thead>
    <tr>
      <th>Abordagem</th>
      <th>Custo</th>
      <th>Escala</th>
      <th>Int'l</th>
      <th>Hardware</th>
      <th>Offline</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>API em nuvem</td>
      <td>Por mensagem</td>
      <td><span class="check">✓</span> Alta</td>
      <td><span class="check">✓</span></td>
      <td>Nenhum</td>
      <td><span class="cross">✗</span></td>
    </tr>
    <tr>
      <td>Modem GSM + AT+</td>
      <td>Plano SIM</td>
      <td><span class="partial">◑</span> Baixa</td>
      <td><span class="partial">◑</span></td>
      <td>Modem USB</td>
      <td><span class="check">✓</span></td>
    </tr>
    <tr>
      <td>Smartphone gateway</td>
      <td>Plano SIM</td>
      <td><span class="partial">◑</span> Média</td>
      <td><span class="partial">◑</span></td>
      <td>Android</td>
      <td><span class="check">✓</span></td>
    </tr>
    <tr>
      <td>SIM Box</td>
      <td>Hardware + SIMs</td>
      <td><span class="check">✓</span> Alta</td>
      <td><span class="partial">◑</span></td>
      <td>SIM Box</td>
      <td><span class="check">✓</span></td>
    </tr>
  </tbody>
</table>

<!-- ═══════════════════════════════════════
     CONCLUSÃO
════════════════════════════════════════ -->

<div class="conclusion">
  <h2>Qual escolher?</h2>
  <p>Para a maioria dos projetos — sistemas web, automações, notificações de apps — uma <strong>API em nuvem como Twilio ou Vonage</strong> é a escolha óbvia. Setup em minutos, escalável, sem hardware, com relatórios de entrega e suporte para dezenas de países.</p>
  <p>Se você precisa de <strong>independência de terceiros</strong> e opera em rede local, o <strong>smartphone como gateway</strong> é surpreendentemente eficaz para volume baixo a médio. Um Android velho com chip pré-pago pode ser tudo que você precisa.</p>
  <p>Para <strong>embarcados, IoT ou cenários sem internet</strong>, o <strong>modem GSM com comandos AT+</strong> continua sendo a solução mais robusta e direta, especialmente com chips M2M que têm cobertura em regiões remotas.</p>
  <p>E para operações de <strong>alto volume com controle total da infraestrutura</strong>, a <strong>SIM Box</strong> entrega paralelismo real com múltiplos SIM cards — desde que usada dentro dos limites legais e dos termos das operadoras.</p>
</div>]]></content><author><name>Guilherme</name></author><category term="Infraestrutura" /><category term="Telecomunicações" /><category term="sms" /><category term="api" /><category term="gsm" /><category term="android" /><category term="twilio" /><category term="gateway" /><category term="simbox" /><category term="php" /><category term="iot" /><category term="automação" /><summary type="html"><![CDATA[Quatro abordagens para enviar SMS programaticamente — do serviço em nuvem ao modem físico atrás da sua mesa.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://guilherme.stracini.com.br/blog/assets/img/posts/envio-sms-internet.png" /><media:content medium="image" url="https://guilherme.stracini.com.br/blog/assets/img/posts/envio-sms-internet.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">RabbitMQ gratuito: Potencialize sua arquitetura de mensageria sem custos</title><link href="https://guilherme.stracini.com.br/blog/artigos/rabbitmq-gratuito-cloudamqp/" rel="alternate" type="text/html" title="RabbitMQ gratuito: Potencialize sua arquitetura de mensageria sem custos" /><published>2024-02-21T00:00:00+00:00</published><updated>2024-02-21T00:00:00+00:00</updated><id>https://guilherme.stracini.com.br/blog/artigos/rabbitmq-gratuito-cloudamqp</id><content type="html" xml:base="https://guilherme.stracini.com.br/blog/artigos/rabbitmq-gratuito-cloudamqp/"><![CDATA[<p class="lead">Descubra como tirar proveito do poder da mensageria com o RabbitMQ gratuitamente. Neste artigo explico como usar o RabbitMQ ou LavinMQ de graça, caso você não possua acesso a um servidor dedicado ou VPS para instalação.</p>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">01</div>
  <div class="section-title-wrap">
    <h2>CloudAMQP</h2>
  </div>
</div>

<p>O <a href="https://www.cloudamqp.com/" target="_blank">CloudAMQP</a> é um provedor de infraestrutura como serviço (<strong>IaaS</strong> — <em>Infrastructure as a Service</em>) que descobri em janeiro de 2024. Ele oferece instâncias gerenciadas de dois message brokers: <strong>RabbitMQ</strong> e <strong>LavinMQ</strong>.</p>

<p>Se você precisar de uma ou mais instâncias do <a href="https://www.rabbitmq.com/" target="_blank">RabbitMQ</a> — ou quiser conhecer o <a href="https://lavinmq.com/" target="_blank">LavinMQ</a> (projeto interessante, ainda não testei na prática) — o CloudAMQP oferece um <strong>plano gratuito</strong> que permite usar um dos serviços de filas em projetos pessoais, de estudo ou mesmo em pequenos projetos comerciais.</p>

<p>Para usar, basta acessar <a href="https://www.cloudamqp.com/" target="_blank">cloudamqp.com</a> e criar uma conta — manualmente, com sua conta do GitHub ou com o Google. Até a presente data, <strong>não é obrigatório cadastrar cartão de crédito</strong>. Ele será solicitado, mas não é necessário informar (a menos que deseje um plano pago).</p>

<p><a href="https://www.cloudamqp.com/" target="_blank"><img src="https://blog.guilhermebranco.com.br/wp-content/uploads/2024/02/CloudAMQP-Create-free-instance-1024x535.png" alt="Captura de tela da página de criação de instâncias do CloudAMQP mostrando o plano gratuito selecionado e o aviso de que não há cartão de crédito associado" /></a></p>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">02</div>
  <div class="section-title-wrap">
    <h2>Comparativo dos planos gratuitos</h2>
  </div>
</div>

<table class="compare-table">
  <thead>
    <tr>
      <th>Limite</th>
      <th>RabbitMQ</th>
      <th>LavinMQ</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Conexões simultâneas</td>
      <td>20</td>
      <td>40</td>
    </tr>
    <tr>
      <td>Filas</td>
      <td>150</td>
      <td>300</td>
    </tr>
    <tr>
      <td>Mensagens por mês</td>
      <td>1 milhão</td>
      <td>2 milhões</td>
    </tr>
    <tr>
      <td>Mensagens não consumidas</td>
      <td>10 mil</td>
      <td>20 mil</td>
    </tr>
    <tr>
      <td>TTL de filas sem consumo</td>
      <td>28 dias</td>
      <td>28 dias</td>
    </tr>
  </tbody>
</table>

<p>O LavinMQ oferece exatamente o dobro de recursos em todos os limites. Se o projeto crescer e o plano gratuito do RabbitMQ não atender mais, migrar para o LavinMQ é o próximo passo natural — ainda de graça.</p>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">03</div>
  <div class="section-title-wrap">
    <h2>Um exemplo real de uso</h2>
  </div>
</div>

<p>Para ilustrar o quanto o plano gratuito do RabbitMQ aguenta na prática, compartilho meu próprio cenário: tenho um projeto em <strong>PHP rodando em hospedagem compartilhada</strong> (sem RabbitMQ instalado) que publica e consome mensagens via CloudAMQP.</p>

<div class="simbox-card">
  <div class="simbox-header">
    <div class="simbox-icon">MQ</div>
    <div class="simbox-header-text">
      <h4>Carga real do projeto em produção</h4>
      <span>PHP · hospedagem compartilhada · CloudAMQP free</span>
    </div>
  </div>
  <div class="simbox-body">
    <div class="simbox-specs">
      <div class="spec-item"><div class="spec-label">Consumers 24/7</div><div class="spec-value">2</div></div>
      <div class="spec-item"><div class="spec-label">Publishers (pico)</div><div class="spec-value">0 – 8</div></div>
      <div class="spec-item"><div class="spec-label">Conexões no pico</div><div class="spec-value">~10</div></div>
      <div class="spec-item"><div class="spec-label">Mensagens/dia</div><div class="spec-value">5k – 8k</div></div>
      <div class="spec-item"><div class="spec-label">Mensagens/mês</div><div class="spec-value">150k – 240k</div></div>
      <div class="spec-item"><div class="spec-label">Uso do limite</div><div class="spec-value">&lt; 25%</div></div>
    </div>
    <p style="font-size:14px;color:#5a534a;line-height:1.65;">150k–240k mensagens mensais representam menos de um quarto do limite de 1 milhão oferecido no plano gratuito. Para um projeto de hospedagem compartilhada sem RabbitMQ instalado, é uma solução perfeita.</p>
  </div>
</div>

<div class="callout callout-tip">
  <div class="callout-label">Dica</div>
  Publishers são as conexões que recebem requisições HTTP e enfileiram mensagens para processamento assíncrono pelos consumers. Em hospedagens compartilhadas onde você não controla o servidor, o CloudAMQP resolve o problema de não ter um broker instalado localmente — sem configuração, sem manutenção.
</div>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">04</div>
  <div class="section-title-wrap">
    <h2>Links úteis</h2>
  </div>
</div>

<div class="providers-grid">
  <div class="provider-card">
    <div class="provider-name"><a href="https://www.cloudamqp.com/" target="_blank">CloudAMQP</a></div>
    <div class="provider-detail">Site principal do provedor. Cadastro gratuito, sem cartão.</div>
  </div>
  <div class="provider-card">
    <div class="provider-name"><a href="https://www.cloudamqp.com/docs/index.html" target="_blank">Primeiros passos</a></div>
    <div class="provider-detail">Documentação oficial com guias de início rápido.</div>
  </div>
  <div class="provider-card">
    <div class="provider-name"><a href="https://www.cloudamqp.com/plans.html" target="_blank">Planos</a></div>
    <div class="provider-detail">Comparativo completo entre plano gratuito e pagos.</div>
  </div>
  <div class="provider-card">
    <div class="provider-name"><a href="https://www.cloudamqp.com/docs/rabbitmq-server.html" target="_blank">Docs RabbitMQ</a></div>
    <div class="provider-detail">Documentação específica do RabbitMQ no CloudAMQP.</div>
  </div>
  <div class="provider-card">
    <div class="provider-name"><a href="https://www.cloudamqp.com/docs/lavinmq-server.html" target="_blank">Docs LavinMQ</a></div>
    <div class="provider-detail">Documentação específica do LavinMQ no CloudAMQP.</div>
  </div>
  <div class="provider-card">
    <div class="provider-name"><a href="https://www.rabbitmq.com/" target="_blank">RabbitMQ oficial</a></div>
    <div class="provider-detail">Site oficial do RabbitMQ com documentação completa.</div>
  </div>
  <div class="provider-card">
    <div class="provider-name"><a href="https://lavinmq.com/" target="_blank">LavinMQ oficial</a></div>
    <div class="provider-detail">Site oficial do LavinMQ com docs e benchmarks.</div>
  </div>
</div>

<div class="conclusion">
  <h2>Vale a pena?</h2>
  <p>Para projetos pessoais, estudos ou aplicações de baixo volume: <strong>sim, sem dúvida</strong>. Você tem acesso a um message broker gerenciado, sem servidor para configurar, sem custo e sem cartão de crédito.</p>
  <p>O limite de 1 milhão de mensagens por mês do RabbitMQ gratuito é generoso o suficiente para cobrir a maioria dos cenários de desenvolvimento e projetos pequenos em produção. Quando crescer, o LavinMQ dobra esses limites — também de graça.</p>
</div>]]></content><author><name>Guilherme</name></author><category term="Coding" /><category term="rabbitmq" /><category term="lavinmq" /><category term="cloudamqp" /><category term="mensageria" /><category term="message-broker" /><category term="php" /><category term="infraestrutura" /><category term="iaas" /><category term="filas" /><category term="arquitetura" /><summary type="html"><![CDATA[Como usar RabbitMQ ou LavinMQ de graça com o CloudAMQP — sem cartão de crédito, sem servidor dedicado, ideal para projetos pessoais, estudos e pequenos projetos comerciais.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://guilherme.stracini.com.br/blog/assets/img/posts/logo-rabbit-mq.png" /><media:content medium="image" url="https://guilherme.stracini.com.br/blog/assets/img/posts/logo-rabbit-mq.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Qual linguagem de programação devo escolher?</title><link href="https://guilherme.stracini.com.br/blog/artigos/qual-linguagem-de-programacao-escolher/" rel="alternate" type="text/html" title="Qual linguagem de programação devo escolher?" /><published>2023-09-01T00:00:00+00:00</published><updated>2023-09-01T00:00:00+00:00</updated><id>https://guilherme.stracini.com.br/blog/artigos/qual-linguagem-de-programacao-escolher</id><content type="html" xml:base="https://guilherme.stracini.com.br/blog/artigos/qual-linguagem-de-programacao-escolher/"><![CDATA[<p class="lead">Uma das dúvidas mais frequentes de quem está iniciando na área é sobre qual linguagem de programação aprender primeiro. Neste artigo vou explicar o básico de como o mercado funciona e ajudar você a escolher por onde começar.</p>

<div class="callout callout-tip">
  <div class="callout-label">Resposta rápida</div>
  <strong>Python</strong>, <strong>PHP</strong> ou <strong>JS (Node.js)</strong> são excelentes opções para quem deseja iniciar no mundo da programação. Se quiser entender melhor o mercado e qual linguagem faz mais sentido para a área que deseja seguir, continue lendo.
</div>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">01</div>
  <div class="section-title-wrap">
    <h2>Linguagens de programação</h2>
  </div>
</div>

<p>Existem mais de 1.000 linguagens de programação, mas o mercado de trabalho se limita a usar cerca de 20 em sua grande maioria. Se sua intenção é entrar no mercado, faz mais sentido focar nessas 20.</p>

<p>Um ponto importante: <strong>linguagem de programação é apenas uma ferramenta</strong>. Não se apeguem a uma só. Com o tempo, se você realmente entrar na área, vai acabar usando várias ao longo dos anos.</p>

<p>Um desenvolvedor pode atuar em diversas áreas:</p>

<ul>
  <li>Web</li>
  <li>Mobile</li>
  <li>Desktop</li>
  <li>IoT (Internet of Things)</li>
  <li>Games</li>
  <li>Ciência de Dados / Análise de Dados</li>
  <li>Sistemas embarcados</li>
  <li>Realidade Virtual (VR) / Realidade Aumentada (AR)</li>
  <li>Inteligência Artificial (AI) / Machine Learning (ML)</li>
</ul>

<p>Neste artigo vou focar nos mercados <strong>Web</strong> e <strong>Mobile</strong>, que hoje são os mais populares e estão cada vez mais conectados.</p>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">02</div>
  <div class="section-title-wrap">
    <h2>Desenvolvedor Web</h2>
  </div>
</div>

<p>O mercado web se define pela criação de sites, aplicações e serviços acessados através de um dispositivo conectado à internet, geralmente por um navegador (Chrome, Firefox, Edge, etc).</p>

<p>Esses sistemas se dividem em três camadas:</p>

<h3 id="front-end">Front-end</h3>

<p>O front-end é a parte responsável pelo que o usuário acessa — a camada visual do site ou sistema. As tecnologias fundamentais são:</p>

<div class="providers-grid">
  <div class="provider-card">
    <div class="provider-name">HTML</div>
    <div class="provider-detail">HyperText Markup Language — define a estrutura e o conteúdo do documento. Não é uma linguagem de programação, mas é indispensável.</div>
  </div>
  <div class="provider-card">
    <div class="provider-name">CSS</div>
    <div class="provider-detail">Cascade Style Sheets — responsável pela estilização visual. Também não é linguagem de programação, mas essencial para o frontend.</div>
  </div>
  <div class="provider-card">
    <div class="provider-name">JavaScript</div>
    <div class="provider-detail">A linguagem de programação do navegador. Responsável pela manipulação do DOM e pela interatividade das interfaces.</div>
  </div>
  <div class="provider-card">
    <div class="provider-name">WebAssembly</div>
    <div class="provider-detail">Ainda não difundido em larga escala, mas vai permitir usar outras linguagens além do JS no frontend.</div>
  </div>
</div>

<p>Para se tornar um desenvolvedor frontend, você precisa dominar pelo menos <strong>HTML</strong>, <strong>CSS</strong> e <strong>JS</strong>.</p>

<h3 id="back-end">Back-end</h3>

<p>No back-end — parte responsável pela comunicação com banco de dados e outros sistemas via APIs — existem dezenas de linguagens disponíveis. As mais populares:</p>

<table class="compare-table">
  <thead>
    <tr>
      <th>Linguagem</th>
      <th>Nível de entrada</th>
      <th>Mercado</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>PHP</strong></td>
      <td><span class="check">✓</span> Fácil</td>
      <td>Empresas menores, agências, e-commerce</td>
    </tr>
    <tr>
      <td><strong>JS (Node.js)</strong></td>
      <td><span class="check">✓</span> Fácil</td>
      <td>Startups, produtos SaaS, fullstack</td>
    </tr>
    <tr>
      <td><strong>Python</strong></td>
      <td><span class="check">✓</span> Mais fácil</td>
      <td>Dados, ML — poucas vagas web para júnior</td>
    </tr>
    <tr>
      <td><strong>C# .NET</strong></td>
      <td><span class="partial">◑</span> Médio</td>
      <td>Empresas médias e grandes, fintechs</td>
    </tr>
    <tr>
      <td><strong>Java</strong></td>
      <td><span class="partial">◑</span> Médio</td>
      <td>Grandes empresas, bancos, enterprise</td>
    </tr>
    <tr>
      <td><strong>Go / Rust</strong></td>
      <td><span class="cross">✗</span> Difícil</td>
      <td>Infraestrutura, sistemas de alta performance</td>
    </tr>
  </tbody>
</table>

<div class="callout callout-warn">
  <div class="callout-label">Atenção — Python para iniciantes</div>
  Python é de longe a mais fácil de aprender, mas é a mais difícil de conseguir emprego no nível iniciante. A maioria das vagas exige sêniores ou são para área de dados — não para web. Use Python para aprender e entender como tudo funciona, mas se o objetivo é emprego, planeje aprender uma segunda linguagem com mais vagas para júnior.
</div>

<p>Empresas menores costumam usar <strong>PHP</strong> ou <strong>JS (Node.js)</strong>; empresas maiores tendem a usar <strong>C#</strong> ou <strong>Java</strong>. Não é uma regra, é um padrão observado ao longo dos anos.</p>

<p>Comecei a programar em PHP em 2007 — o Node.js nem existia (foi criado em 2009). Consegui meu estágio em 2011 programando em PHP, ASP Classic e VB .NET, além de frontend. Se fosse começar hoje, provavelmente escolheria <strong>JS (Node.js)</strong>: funciona no frontend (navegador), no backend (Node.js), permite criar apps desktop (Electron) e aplicativos mobile — uma linguagem, múltiplos mundos.</p>

<h3 id="infraestrutura">Infraestrutura</h3>

<p>Dependendo da empresa, pode existir um time dedicado (SRE, DevOps, Platform Engineering) ou o próprio desenvolvedor assume a responsabilidade pela infraestrutura.</p>

<p><a href="https://blog.bytebytego.com/p/ep-52-devops-vs-sre-vs-platform-engineering" target="_blank"><img src="https://blog.guilhermebranco.com.br/wp-content/uploads/2023/09/devOpsvsSREvsPlatform-715x1024.png" alt="DevOps vs SRE vs Platform Engineering" /></a></p>

<p>Referências para entender as diferenças:</p>
<ul>
  <li><a href="https://blog.bytebytego.com/p/ep-52-devops-vs-sre-vs-platform-engineering" target="_blank">DevOps vs. SRE vs. Platform Engineering — ByteByteGo</a></li>
  <li><a href="https://www.linkedin.com/pulse/site-reliability-vs-ops-devops-engineers-marcelo-boeira/" target="_blank">Site Reliability vs Ops vs DevOps Engineers — LinkedIn</a></li>
</ul>

<p>Na infraestrutura, as linguagens mais comuns são script e IaC <em>(Infrastructure as Code)</em>:</p>

<ul>
  <li><strong>Python</strong> — automação e ferramentas de ops</li>
  <li><strong>Go</strong> — CLIs e ferramentas de infraestrutura</li>
  <li><strong>Bash</strong> — scripts de automação Linux</li>
  <li><strong>PowerShell</strong> — automação Windows/Azure</li>
  <li><strong>Groovy</strong> — pipelines Jenkins</li>
  <li><strong>JavaScript</strong> — serverless e automações cloud</li>
  <li><strong>YAML</strong> — configuração de pipelines e IaC</li>
</ul>

<p>Para uma análise mais detalhada: <a href="https://devopscube.com/programming-languages-devops/" target="_blank">Best Programming &amp; Scripting Languages for DevOps Engineers</a></p>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">03</div>
  <div class="section-title-wrap">
    <h2>Desenvolvedor Mobile</h2>
  </div>
</div>

<p>No desenvolvimento mobile existem quatro abordagens principais:</p>

<h3 id="nativo">Nativo</h3>

<p>Você desenvolve direcionado para cada plataforma separadamente:</p>

<div class="providers-grid">
  <div class="provider-card">
    <div class="provider-name">iOS</div>
    <div class="provider-detail"><strong>Swift</strong> (projetos recentes) ou <strong>Objective-C</strong> (legado). Swift é a escolha padrão para qualquer novo projeto iOS.</div>
    <div class="provider-price">Apple ecosystem</div>
  </div>
  <div class="provider-card">
    <div class="provider-name">Android</div>
    <div class="provider-detail"><strong>Kotlin</strong> (projetos recentes) ou <strong>Java</strong> (legado). Kotlin é o padrão recomendado pelo Google desde 2019.</div>
    <div class="provider-price">Google ecosystem</div>
  </div>
</div>

<h3 id="cross-platform">Cross-Platform</h3>

<p>Um único codebase para múltiplas plataformas — a abordagem preferida por muitas empresas hoje:</p>

<div class="providers-grid">
  <div class="provider-card">
    <div class="provider-name">React Native</div>
    <div class="provider-detail">JavaScript / TypeScript. Mantido pelo Meta. Grande ecossistema e comunidade.</div>
    <div class="provider-price">JS / TS</div>
  </div>
  <div class="provider-card">
    <div class="provider-name">Flutter</div>
    <div class="provider-detail">Dart. Mantido pelo Google. Performance nativa excelente. Crescimento acelerado no mercado.</div>
    <div class="provider-price">Dart</div>
  </div>
  <div class="provider-card">
    <div class="provider-name">Xamarin / .NET MAUI</div>
    <div class="provider-detail">C# .NET. Mantido pela Microsoft. Boa opção para equipes já no ecossistema .NET.</div>
    <div class="provider-price">C# .NET</div>
  </div>
  <div class="provider-card">
    <div class="provider-name">Ionic</div>
    <div class="provider-detail">HTML, CSS e JS. Baseado em WebView. Mais próximo de um PWA empacotado como app.</div>
    <div class="provider-price">HTML / CSS / JS</div>
  </div>
</div>

<p>A maioria das empresas que atuei nos últimos anos preferem <strong>nativo com Swift/Kotlin</strong> ou <strong>cross-platform com Flutter</strong>.</p>

<h3 id="pwa-progressive-web-apps">PWA (Progressive Web Apps)</h3>

<p>Aplicações web desenvolvidas com HTML, CSS e JS que executam dentro do navegador, com suporte a funcionalidades offline. Não requerem instalação pela loja de aplicativos.</p>

<h3 id="híbrido">Híbrido</h3>

<p>Uma junção de nativo ou cross-platform com PWA através de uma <strong>WebView</strong>. O usuário instala o aplicativo no dispositivo, mas as funcionalidades são entregues via interface web dentro do app.</p>

<p>Esse modelo é usado quando se quer a experiência de um app instalado sem abrir mão de um sistema web já existente — enquanto as funcionalidades nativas são desenvolvidas gradualmente em substituição ao PWA.</p>

<div class="conclusion">
  <h2>Por onde começar?</h2>
  <p>Se o objetivo é <strong>entrar no mercado rapidamente</strong>: PHP ou JS (Node.js) para backend web. Ambos têm muitas vagas para júnior, grande comunidade e curva de aprendizado acessível.</p>
  <p>Se o objetivo é <strong>aprender bem antes de trabalhar</strong>: Python é a melhor primeira linguagem. Use-a para entender lógica, estruturas de dados e algoritmos — e depois migre para a linguagem da área que você escolher.</p>
  <p>Se o objetivo é <strong>mobile</strong>: Flutter (Dart) está em forte ascensão e é a aposta mais segura para cross-platform hoje. Para nativo, Kotlin para Android e Swift para iOS.</p>
  <p>Lembre-se: a linguagem é só a ferramenta. O que importa de verdade é aprender a <strong>pensar como programador</strong> — resolver problemas, quebrar complexidade em partes menores e comunicar soluções com clareza.</p>
</div>]]></content><author><name>Guilherme</name></author><category term="Coding" /><category term="Career" /><category term="linguagem-de-programacao" /><category term="iniciante" /><category term="carreira" /><category term="javascript" /><category term="php" /><category term="python" /><category term="csharp" /><category term="java" /><category term="mobile" /><category term="frontend" /><category term="backend" /><category term="devops" /><category term="ti" /><summary type="html"><![CDATA[Um guia prático para iniciantes sobre qual linguagem de programação aprender primeiro — web, mobile, infraestrutura e os padrões reais do mercado de trabalho.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://guilherme.stracini.com.br/blog/assets/img/posts/rear-view-programmer-working-all-night-long.jpg" /><media:content medium="image" url="https://guilherme.stracini.com.br/blog/assets/img/posts/rear-view-programmer-working-all-night-long.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Top blogs that power up my learning journey</title><link href="https://guilherme.stracini.com.br/blog/artigos/top-blogs-learning-journey/" rel="alternate" type="text/html" title="Top blogs that power up my learning journey" /><published>2023-07-17T00:00:00+00:00</published><updated>2023-07-17T00:00:00+00:00</updated><id>https://guilherme.stracini.com.br/blog/artigos/top-blogs-learning-journey</id><content type="html" xml:base="https://guilherme.stracini.com.br/blog/artigos/top-blogs-learning-journey/"><![CDATA[<p class="lead">In the digital age, knowledge is at our fingertips, and blogs have become valuable repositories of information, insights, and expertise. As an avid learner, I've scoured the internet for the best blogs to enhance my understanding of various subjects. Here are my top favorites that have been instrumental in shaping my learning journey — whether you're a student, a professional, or simply an enthusiast hungry for knowledge, these will surely deliver.</p>

<div class="divider">· · ·</div>

<div class="providers-grid">

  <div class="provider-card">
    <div class="provider-name"><a href="https://medium.com/@abrandaol" target="_blank">Alexandre Brandão Lustosa</a></div>
    <div class="provider-detail">Software engineering insights on Medium — architecture, patterns and .NET ecosystem.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://ardalis.com/blog/" target="_blank">Ardalis</a></div>
    <div class="provider-detail">Steve Smith's blog on clean architecture, domain-driven design, SOLID principles and .NET.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://anthonygiretti.com/" target="_blank">Anthony Giretti's .NET blog</a></div>
    <div class="provider-detail">Ain't no mountain high enough — deep dives into .NET, C# features and ASP.NET Core.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://balta.io/blog" target="_blank">Balta.io</a></div>
    <div class="provider-detail">Eduardo Pires' blog with practical .NET, C# and web development content in Portuguese.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://blog.bytebytego.com/" target="_blank">ByteByteGo Newsletter</a></div>
    <div class="provider-detail">Alex Xu's newsletter on system design, distributed systems and architecture at scale.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="http://blog.cleancoder.com/" target="_blank">Clean Coder Blog</a></div>
    <div class="provider-detail">Uncle Bob's (Robert C. Martin) writings on clean code, TDD, professionalism and software craftsmanship.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://blog.marcgravell.com/" target="_blank">Code, code and more code</a></div>
    <div class="provider-detail">Marc Gravell's (Stack Overflow / StackExchange) blog on performance, .NET internals and open source.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://blog.codinghorror.com/" target="_blank">Coding Horror</a></div>
    <div class="provider-detail">Jeff Atwood's legendary blog on programming, human factors in software and tech culture.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://codingvision.net/" target="_blank">Coding.vision</a></div>
    <div class="provider-detail">Dan's Programming Notebook — tutorials and explorations across C#, algorithms and web development.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://desenvolvedor.io/" target="_blank">Desenvolvedor.io</a></div>
    <div class="provider-detail">Eduardo Pires' platform with courses and articles on .NET, DDD and software architecture in Portuguese.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://roadmap.sh/" target="_blank">Developer Roadmaps</a></div>
    <div class="provider-detail">Community-driven roadmaps, guides and resources for developers to navigate their learning path.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="http://gregorriegler.com/" target="_blank">Gregor Riegler</a></div>
    <div class="provider-detail">Merciless Refactorer — writings on refactoring, TDD, legacy code and evolutionary design.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://www.joelverhagen.com/" target="_blank">Joel Verhagen</a></div>
    <div class="provider-detail">Software engineering posts with a focus on .NET, NuGet internals and open source tooling.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://medium.com/@KeivanDamirchi" target="_blank">Keivan Damirchi</a></div>
    <div class="provider-detail">Medium writings on software engineering, design patterns and clean architecture principles.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://minidump.net/" target="_blank">Kevin Gosse</a></div>
    <div class="provider-detail">Deep dives into .NET runtime internals, memory dumps, diagnostics and profiling.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://tvkoushik.medium.com/" target="_blank">Koushik Thota</a></div>
    <div class="provider-detail">Medium articles on microservices, cloud architecture and software design patterns.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://macoratti.net/" target="_blank">Macoratti.Net</a></div>
    <div class="provider-detail">One of Brazil's most prolific .NET references — thousands of tutorials on C#, ASP.NET and more.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://blog.martincostello.com/" target="_blank">Martin Costello's Blog</a></div>
    <div class="provider-detail">The blog of a software developer and tester — .NET, testing practices, CI/CD and open source.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://www.mytechramblings.com/" target="_blank">My tech ramblings</a></div>
    <div class="provider-detail">A blog for techie ramblings — .NET, Azure, DevOps and modern software architecture explorations.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://renatogroffe.medium.com/" target="_blank">Renato Groffe</a></div>
    <div class="provider-detail">Brazilian tech writer on Medium covering .NET, Azure, containers, DevOps and integrations.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://www.webdevelopment.co.nz/" target="_blank">Software Design Blog</a></div>
    <div class="provider-detail">Simple solutions to solve complex problems — software design, patterns and practical engineering.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://solrevdev.com/" target="_blank">Solrevdev tech radar</a></div>
    <div class="provider-detail">Tech radar and engineering notes on .NET, tooling and developer productivity.</div>
  </div>

  <div class="provider-card">
    <div class="provider-name"><a href="https://tomssl.com/" target="_blank">TomSSL</a></div>
    <div class="provider-detail">Security, Privacy, Cloud Architecture and Random Esoterica — a mix of practical and deep-dive posts.</div>
  </div>

</div>

<div class="callout callout-tip">
  <div class="callout-label">Dica</div>
  A maioria desses blogs tem RSS feed ativo. Agregadores como <a href="https://feedly.com" target="_blank">Feedly</a> ou <a href="https://inoreader.com" target="_blank">Inoreader</a> permitem acompanhar todos de uma vez — sem depender de algoritmos de rede social para decidir o que você vê.
</div>]]></content><author><name>Guilherme</name></author><category term="Coding" /><category term="blogs" /><category term="aprendizado" /><category term="recursos" /><category term="csharp" /><category term="dotnet" /><category term="clean-code" /><category term="carreira" /><category term="software-engineering" /><category term="leitura" /><summary type="html"><![CDATA[A curated list of my favorite tech blogs covering software engineering, .NET, clean code, system design and developer career — the sources that have shaped my learning the most.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://guilherme.stracini.com.br/blog/assets/img/posts/blogs.jpg" /><media:content medium="image" url="https://guilherme.stracini.com.br/blog/assets/img/posts/blogs.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Onde encontrar vagas – TI</title><link href="https://guilherme.stracini.com.br/blog/artigos/onde-encontrar-vagas-ti/" rel="alternate" type="text/html" title="Onde encontrar vagas – TI" /><published>2023-01-25T00:00:00+00:00</published><updated>2023-01-25T00:00:00+00:00</updated><id>https://guilherme.stracini.com.br/blog/artigos/onde-encontrar-vagas-ti</id><content type="html" xml:base="https://guilherme.stracini.com.br/blog/artigos/onde-encontrar-vagas-ti/"><![CDATA[<p class="lead">Lista de sites com vagas de emprego para a área de TI — de freelancer a grandes empresas, passando por estágios, repositórios no GitHub e um agregador de vagas em tempo real.</p>

<p><strong>Índice rápido:</strong></p>

<ol>
  <li><a href="#freelancer-autonomo">Freelancer / Autônomo</a></li>
  <li><a href="#estagios">Estágios</a></li>
  <li><a href="#vagas-ti">Vagas de TI</a></li>
  <li><a href="#vagas-geral">Vagas no Geral</a></li>
  <li><a href="#agregador-vagas">Agregador de Vagas</a></li>
  <li><a href="#repositorios-vagas-github">Repositórios de vagas (GitHub)</a></li>
  <li><a href="#repositorios-listas-github"><strong>BÔNUS:</strong> Repositórios com dicas e links (GitHub)</a></li>
</ol>

<div class="divider">· · ·</div>

<p><a id="freelancer-autonomo"></a></p>

<div class="section-header">
  <div class="section-num">01</div>
  <div class="section-title-wrap">
    <h2>Freelancer / Autônomo</h2>
  </div>
</div>

<p>Sites que oferecem oportunidades para trabalhos pontuais para profissionais freelancer/autônomos:</p>

<div class="providers-grid">
  <div class="provider-card"><div class="provider-name"><a href="https://www.workana.com/" target="_blank">Workana</a></div><div class="provider-detail">Plataforma latino-americana de freelancers. Forte no Brasil.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.upwork.com/" target="_blank">Upwork</a></div><div class="provider-detail">Uma das maiores plataformas globais de freelance.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.getninjas.com.br/" target="_blank">GetNinjas</a></div><div class="provider-detail">Plataforma brasileira para diversos serviços, incluindo TI.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.99freelas.com.br/" target="_blank">99Freelas</a></div><div class="provider-detail">Plataforma brasileira focada em freelancers de tecnologia.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.fiverr.com/" target="_blank">Fiverr</a></div><div class="provider-detail">Serviços a partir de US$5. Forte para designers e devs.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.toptal.com/" target="_blank">Toptal</a></div><div class="provider-detail">Rede exclusiva para o top 3% de freelancers do mundo.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.guru.com/" target="_blank">Guru</a></div><div class="provider-detail">Plataforma global com foco em qualidade e reputação.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://dribbble.com/" target="_blank">Dribbble</a></div><div class="provider-detail">Comunidade de designers com seção de jobs e freelance.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.peopleperhour.com/" target="_blank">People per Hour</a></div><div class="provider-detail">Plataforma europeia para freelancers de diversas áreas.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.turing.com/" target="_blank">Turing</a></div><div class="provider-detail">Vagas remotas em empresas americanas para devs globais.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.worksome.com/" target="_blank">Worksome</a></div><div class="provider-detail">Plataforma europeia para freelancers e contratações ágeis.</div></div>
</div>

<div class="divider">· · ·</div>

<p><a id="estagios"></a></p>

<div class="section-header">
  <div class="section-num">02</div>
  <div class="section-title-wrap">
    <h2>Estágios</h2>
  </div>
</div>

<p>Sites que oferecem oportunidades de estágio e trainee para estudantes:</p>

<div class="providers-grid">
  <div class="provider-card"><div class="provider-name"><a href="https://www.nube.com.br/" target="_blank">NUBE</a></div><div class="provider-detail">Núcleo Brasileiro de Estágios — referência em estágios no Brasil.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://portal.ciee.org.br/" target="_blank">CIEE</a></div><div class="provider-detail">Centro de Integração Empresa-Escola. Estágios e aprendizagem.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://aiesec.org/search?programmes=8&amp;sub_products=55" target="_blank">AIESEC</a></div><div class="provider-detail">Intercâmbios profissionais e estágios internacionais.</div></div>
</div>

<div class="divider">· · ·</div>

<p><a id="vagas-ti"></a></p>

<div class="section-header">
  <div class="section-num">03</div>
  <div class="section-title-wrap">
    <h2>Vagas de TI</h2>
  </div>
</div>

<p>Sites de vagas de empregos direcionados para a área de tecnologia:</p>

<div class="providers-grid">
  <div class="provider-card"><div class="provider-name"><a href="https://programathor.com.br/" target="_blank">ProgramaThor</a></div><div class="provider-detail">Plataforma brasileira exclusiva para devs. Filtros por stack.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.nerdin.com.br/" target="_blank">Nerdin</a></div><div class="provider-detail">Vagas de TI com foco no mercado brasileiro.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.linkedin.com/jobs/" target="_blank">LinkedIn Jobs</a></div><div class="provider-detail">A maior rede profissional do mundo, com vagas globais e locais.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.apinfo.com/apinfo/" target="_blank">APInfo</a></div><div class="provider-detail">Portal de TI brasileiro com vagas e informações do mercado.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.crossover.com/" target="_blank">Crossover</a></div><div class="provider-detail">Vagas remotas em empresas globais com salários em dólar.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://coodesh.com/" target="_blank">Coodesh</a></div><div class="provider-detail">Plataforma de recrutamento tech com desafios e avaliações.</div></div>
</div>

<div class="divider">· · ·</div>

<p><a id="vagas-geral"></a></p>

<div class="section-header">
  <div class="section-num">04</div>
  <div class="section-title-wrap">
    <h2>Vagas no Geral</h2>
  </div>
</div>

<p>Sites gerais de vagas de empregos com boa cobertura para TI:</p>

<div class="providers-grid">
  <div class="provider-card"><div class="provider-name"><a href="https://www.catho.com.br/" target="_blank">Catho</a></div><div class="provider-detail">Referência em empregos no Brasil. Currículo online e alertas.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.vagas.com.br/" target="_blank">Vagas</a></div><div class="provider-detail">Portal brasileiro com milhares de vagas em todas as áreas.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.infojobs.com.br/" target="_blank">InfoJobs</a></div><div class="provider-detail">Plataforma espanhola forte no Brasil e na Europa.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.indeed.com/" target="_blank">Indeed</a></div><div class="provider-detail">Maior agregador de vagas do mundo. Cobertura global.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.glassdoor.com/" target="_blank">Glassdoor</a></div><div class="provider-detail">Vagas + avaliações de empresas e salários por funcionários.</div></div>
  <div class="provider-card"><div class="provider-name"><a href="https://www.gupy.io/" target="_blank">Gupy</a></div><div class="provider-detail">ATS brasileiro moderno com muitas empresas cadastradas.</div></div>
</div>

<div class="divider">· · ·</div>

<p><a id="agregador-vagas"></a></p>

<div class="section-header">
  <div class="section-num">05</div>
  <div class="section-title-wrap">
    <h2>Agregador de Vagas</h2>
  </div>
</div>

<p>O projeto <strong>Agregador de Vagas</strong> reúne todas as vagas publicadas nos repositórios do GitHub listados abaixo em um único lugar, com API e interface visual:</p>

<ul>
  <li><a href="https://apibr.com/vagas/swagger/" target="_blank">Agregador de Vagas — API (API BR)</a></li>
  <li><a href="https://apibr.com/ui/vagas/" target="_blank">Agregador de Vagas — UI (API BR)</a></li>
</ul>

<div class="gateway-diagram" style="padding: 1rem;">
  <a href="https://apibr.com/ui/vagas/" target="_blank">
    <img src="https://blog.guilhermebranco.com.br/wp-content/uploads/2026/01/ApiBrVagasUiV2.png" alt="API BR - Vagas - User Interface screenshot" style="max-width:100%;border-radius:8px;" />
  </a>
  <p class="gw-caption">Interface do Agregador de Vagas — API BR</p>
</div>

<div class="divider">· · ·</div>

<p><a id="repositorios-vagas-github"></a></p>

<div class="section-header">
  <div class="section-num">06</div>
  <div class="section-title-wrap">
    <h2>Repositórios de vagas (GitHub)</h2>
  </div>
</div>

<p>Nas <em>issues</em> dos repositórios abaixo são publicadas vagas conforme o nome de cada repositório. Todas estão disponíveis também no <a href="https://apibr.com/ui/vagas/" target="_blank">Agregador de Vagas</a> acima.</p>

<div id="repositories-container" style="margin-top: 1rem;">
  <p style="font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--ink-light);">Carregando repositórios…</p>
</div>

<script>
(function() {
  async function loadRepositories() {
    try {
      const res  = await fetch("https://apibr.com/vagas/api/v2/repositories?per_page=100&page=1&hide_empty=false");
      const data = await res.json();
      const base = 'https://github-readme-stats-guibranco.vercel.app';
      const wrap = document.getElementById('repositories-container');
      wrap.innerHTML = '';
      const grid = document.createElement('div');
      grid.style.cssText = 'display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;';
      data.forEach(item => {
        const a   = document.createElement('a');
        a.href    = item.url;
        a.target  = '_blank';
        a.rel     = 'noopener';
        const img = document.createElement('img');
        img.src   = `${base}/api/pin/?username=${item.organization.login}&repo=${item.name}&theme=dark&bg_color=1e1c18&show_owner=true&show_forks=false&show_issues=true`;
        img.alt   = item.full_name;
        img.style.cssText = 'width:100%;border-radius:8px;display:block;';
        a.appendChild(img);
        grid.appendChild(a);
      });
      wrap.appendChild(grid);
    } catch(e) {
      document.getElementById('repositories-container').innerHTML =
        '<p style="font-family:\'JetBrains Mono\',monospace;font-size:12px;color:var(--ink-light);">Não foi possível carregar os repositórios. <a href="https://apibr.com/ui/vagas/" target="_blank">Acesse diretamente o Agregador de Vagas.</a></p>';
    }
  }
  loadRepositories();
})();
</script>

<div class="divider">· · ·</div>

<p><a id="repositorios-listas-github"></a></p>

<div class="section-header">
  <div class="section-num">07</div>
  <div class="section-title-wrap">
    <h2>BÔNUS: Repositórios com dicas e links (GitHub)</h2>
  </div>
</div>

<p>Repositórios no GitHub com links e dicas para quem está procurando emprego na área de TI:</p>

<div id="repositories-list-container" style="margin-top: 1rem;">
  <p style="font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--ink-light);">Carregando repositórios…</p>
</div>

<script>
(function() {
  async function loadListRepositories() {
    try {
      const res  = await fetch("https://guilhermebranco.com.br/static/repositories-list.json");
      const data = await res.json();
      const base = 'https://github-readme-stats-guibranco.vercel.app';
      const wrap = document.getElementById('repositories-list-container');
      wrap.innerHTML = '';
      const grid = document.createElement('div');
      grid.style.cssText = 'display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;';
      data.forEach(item => {
        const a   = document.createElement('a');
        a.href    = item.url;
        a.target  = '_blank';
        a.rel     = 'noopener';
        const img = document.createElement('img');
        img.src   = `${base}/api/pin/?username=${item.organization.login}&repo=${item.name}&theme=dark&bg_color=1e1c18&show_owner=true&show_forks=true&show_issues=true&show_pull_requests=true`;
        img.alt   = item.full_name;
        img.style.cssText = 'width:100%;border-radius:8px;display:block;';
        a.appendChild(img);
        grid.appendChild(a);
      });
      wrap.appendChild(grid);
    } catch(e) {
      document.getElementById('repositories-list-container').innerHTML =
        '<p style="font-family:\'JetBrains Mono\',monospace;font-size:12px;color:var(--ink-light);">Não foi possível carregar os repositórios.</p>';
    }
  }
  loadListRepositories();
})();
</script>

<div class="callout callout-tip">
  <div class="callout-label">Dica</div>
  Todos os repositórios de vagas do GitHub acima são monitorados automaticamente pelo <a href="https://apibr.com/ui/vagas/" target="_blank">Agregador de Vagas</a>. É a forma mais prática de acompanhar tudo em um só lugar, com filtros por linguagem, senioridade e tipo de contrato.
</div>]]></content><author><name>Guilherme</name></author><category term="Career" /><category term="vagas" /><category term="emprego" /><category term="ti" /><category term="carreira" /><category term="freelancer" /><category term="estagio" /><category term="github" /><category term="linkedin" /><category term="remote" /><summary type="html"><![CDATA[Lista curada de sites com vagas de emprego para a área de TI: freelancer, estágios, vagas específicas para tech, vagas em geral, agregadores e repositórios no GitHub.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://guilherme.stracini.com.br/blog/assets/img/posts/interview.jpg" /><media:content medium="image" url="https://guilherme.stracini.com.br/blog/assets/img/posts/interview.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Quanto cobrar?</title><link href="https://guilherme.stracini.com.br/blog/artigos/quanto-cobrar/" rel="alternate" type="text/html" title="Quanto cobrar?" /><published>2020-04-21T00:00:00+00:00</published><updated>2020-04-21T00:00:00+00:00</updated><id>https://guilherme.stracini.com.br/blog/artigos/quanto-cobrar</id><content type="html" xml:base="https://guilherme.stracini.com.br/blog/artigos/quanto-cobrar/"><![CDATA[<p class="lead">Uma das maiores dificuldades de um desenvolvedor em início de carreira é saber qual valor cobrar pelo seu produto, seu sistema ou site — e se esse valor será justo tanto para ele quanto para seus clientes. Neste artigo vou comentar sobre isso e falar como chegar ao valor hora a ser cobrado.</p>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">01</div>
  <div class="section-title-wrap">
    <h2>Afinal, quanto devo cobrar?</h2>
  </div>
</div>

<p>Uma dúvida que frequentemente aparece nos grupos de desenvolvedores — tanto iniciantes quanto experientes — é como precificar um projeto. Perguntas do tipo:</p>

<ul>
  <li>Quanto cobrar por um e-commerce?</li>
  <li>Quanto cobrar por um site simples de N páginas?</li>
  <li>Quanto cobrar para fazer X ou Y?</li>
</ul>

<p>A resposta é direta:</p>

<div class="callout callout-tip">
  <div class="callout-label">Regra de ouro</div>
  <strong>Cobre o valor da sua hora multiplicado pelo tempo gasto no projeto.</strong>
</div>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">02</div>
  <div class="section-title-wrap">
    <h2>O que considerar como tempo gasto no projeto?</h2>
  </div>
</div>

<p>Tempo gasto no projeto é <strong>todo</strong> o tempo que você dedicou a ele — não apenas o tempo de código. Isso inclui:</p>

<ul>
  <li>Levantamento de requisitos</li>
  <li>Reuniões, calls, e-mails e conversas com o cliente</li>
  <li>Criação da proposta e contrato</li>
  <li>Documentação do projeto</li>
</ul>

<p>Obviamente, você pode abrir mão ou omitir algumas cobranças para deixar o preço mais atrativo. Muitos desenvolvedores não cobram por reuniões ou pela elaboração da proposta. Cabe a você decidir quais concessões fazer — mas prefira adotar um padrão consistente para todos os clientes e, quando for conveniente, aplique um desconto explícito na proposta. Cobrar valores muito diferentes entre clientes semelhantes é um problema que volta a te assombrar.</p>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">03</div>
  <div class="section-title-wrap">
    <h2>Devo cobrar diferente pelo porte do cliente?</h2>
  </div>
</div>

<p>A resposta direta é <strong>não — você cobra pelo seu serviço, não pelo cliente</strong>.</p>

<p>Mas como é você quem decide, vale a reflexão: se um cliente de grande porte chegou até você, provavelmente foi por indicação e já conhece seu valor — ou está buscando mão de obra mais acessível do que uma agência ou fábrica de software. Cobrar a mais justamente por ele ser grande pode resultar em perda do projeto.</p>

<p>Pense no que vale mais: tentar extrair um pouco mais numa negociação e arriscar perder o cliente, ou fechar o projeto, exibir esse nome no seu portfólio, garantir mais projetos e ainda ampliar seu networking?</p>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">04</div>
  <div class="section-title-wrap">
    <h2>Como contabilizar e quantificar as horas?</h2>
  </div>
</div>

<p>Para registrar horas você pode usar desde uma planilha (Excel / Google Sheets) até ferramentas específicas. Abaixo as que uso e recomendo — <strong>todas com plano gratuito</strong>:</p>

<div class="providers-grid">
  <div class="provider-card">
    <div class="provider-name"><a href="https://wakatime.com/" target="_blank">Wakatime</a></div>
    <div class="provider-detail">Contabiliza o tempo nos editores e IDEs automaticamente, gerando gráficos por linguagem, projeto e editor. Plano grátis com histórico de 2 semanas.</div>
    <div class="provider-price">Grátis / ~R$ 35/mês</div>
  </div>
  <div class="provider-card">
    <div class="provider-name"><a href="https://runrun.it/pt-BR" target="_blank">RunRun.It</a></div>
    <div class="provider-detail">Gerenciador de projetos e processos online. Plano grátis permite até 5 usuários, ideal para times pequenos ou parcerias de freelancers.</div>
    <div class="provider-price">Grátis (até 5 usuários)</div>
  </div>
  <div class="provider-card">
    <div class="provider-name"><a href="https://trello.com/" target="_blank">Trello</a></div>
    <div class="provider-detail">Gestão visual de projetos estilo Kanban. Plano grátis com até 10 quadros por time — mais do que suficiente para freelancers.</div>
    <div class="provider-price">Grátis</div>
  </div>
</div>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">05</div>
  <div class="section-title-wrap">
    <h2>E quanto cobrar pela minha hora?</h2>
  </div>
</div>

<p>O preço da sua hora é basicamente <strong>o valor que você deseja ganhar por mês dividido pelas horas que está disposto a trabalhar nesse mês</strong>.</p>

<p>No Brasil, os dois regimes de trabalho privado têm jornadas distintas:</p>

<ul>
  <li><strong>CLT:</strong> 240 horas por mês</li>
  <li><strong>PJ:</strong> 168 horas por mês</li>
</ul>

<p>Para chegar ao valor hora, o cálculo é direto. Se o seu objetivo é ganhar <strong>R$ 5.000/mês</strong> trabalhando em regime similar ao PJ:</p>

<div class="gateway-diagram">
  <div class="gw-flow">
    <div class="gw-node">Meta mensal<small>R$ 5.000</small></div>
    <div class="gw-arrow">÷</div>
    <div class="gw-node">Horas/mês<small>168 h (PJ)</small></div>
    <div class="gw-arrow">=</div>
    <div class="gw-node accent">Valor hora<small>R$ 29,76 ≈ R$ 30</small></div>
  </div>
  <p class="gw-caption">Fórmula base: meta mensal ÷ horas disponíveis = valor hora</p>
</div>

<p>Você pode ajustar esse valor para cima ou para baixo conforme o contexto, mas evite oscilações extremas — cobrar R$ 10/hora num projeto e R$ 100/hora em outro gera desconfiança e dificulta negociações futuras.</p>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">06</div>
  <div class="section-title-wrap">
    <h2>Qual valor mensal estipular?</h2>
  </div>
</div>

<p>Se você ainda não sabe qual meta mensal definir, leve em consideração três fatores:</p>

<ul>
  <li><strong>Sua experiência e stack</strong> — as tecnologias que domina determinam sua faixa de mercado</li>
  <li><strong>Referência de mercado</strong> — pesquise salários CLT de profissionais com o seu perfil e multiplique por 1,7–1,8 para obter o equivalente PJ</li>
  <li><strong>Seu custo de vida</strong> — alimentação, saúde, contas fixas, dependentes; esse é o seu piso mínimo</li>
</ul>

<p>Como referência, aqui está uma tabela de valores para desenvolvedor web em São Paulo, levantada em janeiro de 2023:</p>

<table class="compare-table">
  <thead>
    <tr>
      <th>Nível</th>
      <th>CLT (mensal)</th>
      <th>PJ (hora)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Júnior</td>
      <td>R$ 1.500 – R$ 5.000</td>
      <td>R$ 20 – R$ 60</td>
    </tr>
    <tr>
      <td>Pleno</td>
      <td>R$ 6.000 – R$ 10.000</td>
      <td>R$ 60 – R$ 100</td>
    </tr>
    <tr>
      <td>Sênior</td>
      <td>R$ 9.000 – R$ 20.000</td>
      <td>R$ 100 – R$ 300</td>
    </tr>
    <tr>
      <td>Especialista</td>
      <td>R$ 12.000 – R$ 25.000</td>
      <td>R$ 150 – R$ 400</td>
    </tr>
  </tbody>
</table>

<div class="callout callout-warn">
  <div class="callout-label">Atenção</div>
  Esses valores são referência de mercado em SP em 2023. Cidades menores tendem a ter faixas inferiores. Para referências atualizadas, consulte plataformas como <a href="https://glassdoor.com" target="_blank">Glassdoor</a>, <a href="https://programathor.com.br" target="_blank">ProgramaThor</a> e <a href="https://linkedin.com/jobs" target="_blank">LinkedIn</a>.
</div>

<div class="conclusion">
  <h2>O número que importa é o seu</h2>
  <p>Definir quanto cobrar não é sobre seguir uma tabela — é sobre entender quanto seu tempo vale, quanto você precisa para viver bem e quanto o mercado pratica para o seu nível. Com esses três números em mãos, você tem tudo para negociar com segurança e consistência.</p>
  <p>Lembre-se: o valor hora é uma meta, não um teto. À medida que você entrega projetos, constrói portfólio e expande sua rede, seu preço deve subir junto.</p>
</div>]]></content><author><name>Guilherme</name></author><category term="Career" /><category term="freelancer" /><category term="carreira" /><category term="salario" /><category term="desenvolvedor" /><category term="financeiro" /><category term="pj" /><category term="valor-hora" /><category term="gestao" /><category term="ti" /><summary type="html"><![CDATA[Como calcular o valor hora a cobrar pelo seu trabalho como desenvolvedor freelancer — do levantamento de horas ao valor mensal ideal para cada nível de experiência.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://guilherme.stracini.com.br/blog/assets/img/posts/clock.jpg" /><media:content medium="image" url="https://guilherme.stracini.com.br/blog/assets/img/posts/clock.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">CLT vs PJ! Qual devo escolher?</title><link href="https://guilherme.stracini.com.br/blog/artigos/clt-vs-pj-qual-escolher/" rel="alternate" type="text/html" title="CLT vs PJ! Qual devo escolher?" /><published>2020-01-23T00:00:00+00:00</published><updated>2020-01-23T00:00:00+00:00</updated><id>https://guilherme.stracini.com.br/blog/artigos/clt-vs-pj-qual-escolher</id><content type="html" xml:base="https://guilherme.stracini.com.br/blog/artigos/clt-vs-pj-qual-escolher/"><![CDATA[<p class="lead">Um dos assuntos que mais gera dúvidas entre o pessoal de TI, principalmente desenvolvedores, é quando optar por CLT ou PJ, quais as diferenças, obrigações e benefícios de cada um. Neste artigo vou explicar como funciona cada um, as diferenças e os cálculos que devem ser feitos para comparar quando um é mais vantajoso que o outro.</p>

<p>Em poucas palavras: quem se sente ameaçado de perder o emprego e/ou não possui educação financeira deve optar pelo CLT se possível. Já quem tem educação financeira — sabe gerenciar seu dinheiro, faz investimentos, tem uma reserva de emergência e se considera com pouca possibilidade de ficar desempregado por longo período — pode optar pelo PJ sem medo.</p>

<p>Sabendo negociar, o valor PJ pode resultar no mesmo líquido do CLT, com uma diferença: você recebe tudo mensalmente e decide em que gastar ou aplicar o excedente. Por isso a educação financeira é indispensável para quem opta pelo PJ.</p>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">01</div>
  <div class="section-title-wrap">
    <h2>Definições</h2>
  </div>
</div>

<h3 id="clt">CLT</h3>

<p>CLT, ou Consolidação das Leis do Trabalho, é uma lei brasileira criada na década de 40 que regula o direito trabalhista e processual do trabalho. É sinônimo de “carteira assinada” — o empregador registra a contratação na CTPS (Carteira de Trabalho e Previdência Social), documento usado também para calcular a aposentadoria pelo INSS.</p>

<p><strong>Benefícios e obrigações da CLT:</strong></p>

<ul>
  <li><strong>Férias remuneradas</strong> — 30 dias corridos após 12 meses trabalhados, pagos com adicional de 40%. Salário de R$ 2.000,00 gera R$ 2.800,00 de férias.</li>
  <li><strong>13º salário</strong> — proporcional ao tempo de trabalho, geralmente pago em 2 parcelas entre novembro e dezembro.</li>
  <li><strong>Vale transporte</strong> — a empresa fornece e pode descontar até 6% do salário do funcionário.</li>
  <li><strong>FGTS</strong> — depósito de 8% do salário pela empresa ao fundo do trabalhador.</li>
  <li><strong>Seguro desemprego</strong> — de 3 a 5 parcelas (até R$ 1.813,03 cada) em caso de demissão sem justa causa.</li>
  <li><strong>Aviso prévio</strong> — cumprimento ou pagamento em caso de desligamento sem justa causa, válido para ambos os lados.</li>
  <li><strong>INSS</strong> — a empresa paga 20% de INSS patronal sobre a folha; o funcionário tem descontado até R$ 713,09 (para salários de R$ 6.101,06 ou mais).</li>
</ul>

<h3 id="pj">PJ</h3>

<p>PJ, ou Pessoa Jurídica, é a formalização de uma empresa — quando uma pessoa física (PF) constitui um CNPJ além do CPF. Trabalhar informalmente, sem emissão de nota fiscal e sem CNPJ, configura <strong>trabalho informal</strong>, e na maioria dos casos <strong>ilegal</strong>.</p>

<p><strong>Dentro do PJ existem divisões:</strong></p>

<p><strong>Tipo Societário</strong></p>

<table>
  <thead>
    <tr>
      <th>Tipo</th>
      <th>Descrição</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>EI</td>
      <td>Empresa Individual — patrimônio do empresário e da empresa se misturam. Obrigatório para MEI.</td>
    </tr>
    <tr>
      <td>EIRELI</td>
      <td>Responsabilidade limitada. Capital social mínimo de 100 salários mínimos (R$ 104,5 mil em 2020).</td>
    </tr>
    <tr>
      <td>LTDA</td>
      <td>Sociedade Limitada — mínimo 2 sócios, responsabilidade limitada ao capital social.</td>
    </tr>
    <tr>
      <td>S.A.</td>
      <td>Sociedade Anônima — dividida em ações, ideal para troca de sócios com frequência.</td>
    </tr>
  </tbody>
</table>

<p><strong>Enquadramento de Porte</strong></p>

<table>
  <thead>
    <tr>
      <th>Porte</th>
      <th>Faturamento anual</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>MEI</td>
      <td>Até R$ 81.000</td>
    </tr>
    <tr>
      <td>ME</td>
      <td>Até R$ 360.000</td>
    </tr>
    <tr>
      <td>EPP</td>
      <td>De R$ 360.000 até R$ 4,8 milhões</td>
    </tr>
    <tr>
      <td>Médio/Grande</td>
      <td>Acima de R$ 4,8 milhões</td>
    </tr>
  </tbody>
</table>

<p><strong>Enquadramento Tributário</strong></p>

<table>
  <thead>
    <tr>
      <th>Regime</th>
      <th>Para quem</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>SIMEI</td>
      <td>Exclusivo para MEI</td>
    </tr>
    <tr>
      <td>Simples Nacional</td>
      <td>ME e EPP</td>
    </tr>
    <tr>
      <td>Lucro Presumido</td>
      <td>Médio a grande porte</td>
    </tr>
    <tr>
      <td>Lucro Real</td>
      <td>Médio a grande porte</td>
    </tr>
  </tbody>
</table>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">02</div>
  <div class="section-title-wrap">
    <h2>Relação de valores CLT e PJ</h2>
  </div>
</div>

<p>Para um empregador manter um funcionário que ganha R$ 1.000,00, ele gasta em média <strong>R$ 1.700,00</strong> — ou seja, 1,7× o salário registrado. Sendo assim, um valor PJ equivalente deve ser ao menos 1,7× superior ao CLT.</p>

<p>Veja o detalhamento para um desenvolvedor pleno em São Paulo com salário CLT de <strong>R$ 8.000,00</strong>:</p>

<div class="simbox-card">
  <div class="simbox-header">
    <div class="simbox-icon">CLT</div>
    <div class="simbox-header-text">
      <h4>Custo total para a empresa — salário CLT R$ 8.000,00</h4>
      <span>Desenvolvedor pleno, São Paulo</span>
    </div>
  </div>
  <div class="simbox-body">
    <div class="simbox-specs">
      <div class="spec-item"><div class="spec-label">Salário bruto</div><div class="spec-value">R$ 8.000,00</div></div>
      <div class="spec-item"><div class="spec-label">Provisão 13º</div><div class="spec-value">R$ 666,67</div></div>
      <div class="spec-item"><div class="spec-label">Provisão férias</div><div class="spec-value">R$ 933,34</div></div>
      <div class="spec-item"><div class="spec-label">Vale refeição</div><div class="spec-value">R$ 660,00</div></div>
      <div class="spec-item"><div class="spec-label">Plano de saúde</div><div class="spec-value">R$ 250,00</div></div>
      <div class="spec-item"><div class="spec-label">INSS patronal</div><div class="spec-value">R$ 1.600,00</div></div>
      <div class="spec-item"><div class="spec-label">FGTS (8%)</div><div class="spec-value">R$ 640,00</div></div>
      <div class="spec-item"><div class="spec-label">Reserva multa FGTS</div><div class="spec-value">R$ 320,00</div></div>
    </div>
    <p style="font-size:14px;color:#5a534a;line-height:1.65;">Custo total para a empresa: <strong>R$ 12.750,01</strong> (ou R$ 13.070,01 guardando 50% da multa rescisória). O funcionário recebe líquido <strong>R$ 5.558,27</strong> + vale transporte + vale refeição + plano de saúde.</p>
  </div>
</div>

<p><strong>O que o funcionário CLT recebe ao longo de 12 meses:</strong></p>

<ul>
  <li>Salário líquido mensal: <strong>R$ 5.558,27</strong> (já descontado INSS e IRRF)</li>
  <li>Vale transporte: R$ 198,00/mês</li>
  <li>Vale refeição: R$ 660,00/mês</li>
  <li>Plano de saúde: R$ 450,00/mês</li>
  <li>Férias (após 12 meses): <strong>R$ 8.472,37</strong></li>
  <li>13º salário (ano inteiro): <strong>R$ 5.956,27</strong></li>
</ul>

<p><strong>Em 12 meses:</strong> empresa gasta <strong>R$ 153.000,12</strong> · funcionário recebe <strong>R$ 96.823,88</strong></p>

<div class="callout callout-tip">
  <div class="callout-label">Equivalência PJ</div>
  Para este cenário, o mesmo funcionário como PJ precisaria cobrar pouco mais de <strong>R$ 81,00/hora</strong> (168 horas/mês), emitindo NFS-e de <strong>R$ 12.750,01</strong> mensais para receber o equivalente ao CLT — mas agora gerenciando tudo por conta própria.
</div>

<div class="divider">· · ·</div>

<div class="section-header">
  <div class="section-num">03</div>
  <div class="section-title-wrap">
    <h2>Optei pelo PJ — e agora?</h2>
  </div>
</div>

<h3 id="mei">MEI</h3>

<p>O MEI (Microempreendedor Individual) é o mais simples, mas tem um detalhe importante para quem atua em TI: <strong>MEI não prevê atividades intelectuais</strong>. Desenvolvedores, médicos, advogados e outras atividades intelectuais não podem se enquadrar como MEI.</p>

<p>Existe uma sugestão de lei (<a href="https://www25.senado.leg.br/web/atividade/materias/-/materia/131629">nº 59 de 2017</a>) para permitir que desenvolvedores optem pelo MEI, mas sem atualizações até o momento.</p>

<p>Além disso, o limite de faturamento do MEI é <strong>R$ 81.000 anuais</strong> (R$ 6.750/mês), o que já inviabiliza para desenvolvedores plenos ou sêniores em São Paulo. O custo fixo mensal é de aproximadamente R$ 50,00.</p>

<h3 id="me-e-epp">ME e EPP</h3>

<p>A grande maioria dos desenvolvedores PJ se enquadra como <strong>Micro Empresa (ME)</strong>, com faturamento de até R$ 360.000 anuais (R$ 30.000/mês). Acima disso, EPP até R$ 4,8 milhões.</p>

<p>Como ME você passa a ter mais obrigações, principalmente contratar um contador (de R$ 89,00 a R$ 250,00/mês dependendo do serviço).</p>

<p>Para impostos, verifique se a empresa contratante aceita o <strong>CNAE 6209-1/00</strong> (Suporte técnico, manutenção e outros serviços em tecnologia da informação) — com ele você paga apenas <strong>6% de tributos</strong> pelo Simples Nacional (ISS, COFINS, CSLL, CPP, IRPJ e PIS juntos, via guia DAS).</p>

<h3 id="custos-médios-mensais-do-pj-me">Custos médios mensais do PJ ME</h3>

<table>
  <thead>
    <tr>
      <th>Item</th>
      <th>Custo</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Contador</td>
      <td>R$ 89,00 a R$ 250,00</td>
    </tr>
    <tr>
      <td>Simples Nacional (DAS)</td>
      <td>6% a 15% da NFS-e conforme CNAE</td>
    </tr>
    <tr>
      <td>DARF (IRPF sobre pró-labore)</td>
      <td>0% a 27,5% do pró-labore</td>
    </tr>
    <tr>
      <td>GPS/INSS</td>
      <td>11% sobre o pró-labore</td>
    </tr>
  </tbody>
</table>

<p><strong>Simulação com NFS-e de R$ 12.750,01 e pró-labore de R$ 3.000,00:</strong></p>

<ul>
  <li>Contador: R$ 89,00</li>
  <li>DAS (6%): R$ 765,01</li>
  <li>DARF: R$ 95,20</li>
  <li>GPS/INSS (11%): R$ 330,00</li>
  <li><strong>Total de custos: R$ 1.279,21</strong></li>
  <li><strong>Saldo disponível: R$ 11.470,80</strong></li>
</ul>

<p><strong>Sugestão de divisão mensal do saldo:</strong></p>

<table>
  <thead>
    <tr>
      <th>Destino</th>
      <th>Valor</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Reserva para férias</td>
      <td>R$ 706,03</td>
    </tr>
    <tr>
      <td>Reserva para 13º</td>
      <td>R$ 469,36</td>
    </tr>
    <tr>
      <td>Transporte</td>
      <td>R$ 198,00</td>
    </tr>
    <tr>
      <td>Alimentação</td>
      <td>R$ 660,00</td>
    </tr>
    <tr>
      <td>Plano de saúde</td>
      <td>R$ 450,00</td>
    </tr>
    <tr>
      <td>INSS (teto)</td>
      <td>R$ 713,09</td>
    </tr>
    <tr>
      <td>Reserva emergência / FGTS / aposentadoria</td>
      <td>R$ 2.800,00</td>
    </tr>
  </tbody>
</table>

<p>Com a divisão completa acima, você teria entre <strong>R$ 5.996,48</strong> e <strong>R$ 7.106,77</strong> livres por mês para despesas pessoais — além de acumular <strong>R$ 33.600,00 de reserva por ano</strong> (R$ 2.800,00 × 12), que pode ser investida em renda fixa, renda variável ou usada para aquisição de bens à vista.</p>

<div class="conclusion">
  <h2>CLT ou PJ?</h2>
  <p>Não existe resposta certa para todos. A escolha depende do seu perfil financeiro, estabilidade profissional e objetivos de longo prazo.</p>
  <p>O <strong>CLT</strong> oferece segurança, previsibilidade e benefícios automáticos — ideal para quem está começando a carreira ou ainda está construindo reservas e educação financeira.</p>
  <p>O <strong>PJ</strong> oferece maior controle sobre o próprio dinheiro e potencial de acumulação maior — mas exige disciplina financeira, gestão ativa e tolerância ao risco de períodos sem contrato.</p>
  <p>Em ambos os casos, o número que importa não é o salário bruto — é o que sobra no final do mês e o que você faz com esse excedente.</p>
</div>]]></content><author><name>Guilherme</name></author><category term="Career" /><category term="clt" /><category term="pj" /><category term="carreira" /><category term="financeiro" /><category term="impostos" /><category term="mei" /><category term="inss" /><category term="fgts" /><category term="salario" /><category term="ti" /><category term="desenvolvedor" /><summary type="html"><![CDATA[Entenda as diferenças entre CLT e PJ, quais as obrigações e benefícios de cada regime, e como calcular quando um é mais vantajoso que o outro para desenvolvedores de TI.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://guilherme.stracini.com.br/blog/assets/img/posts/work.jpg" /><media:content medium="image" url="https://guilherme.stracini.com.br/blog/assets/img/posts/work.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Lista de Bancos Brasileiros</title><link href="https://guilherme.stracini.com.br/blog/artigos/lista-bancos-brasileiros/" rel="alternate" type="text/html" title="Lista de Bancos Brasileiros" /><published>2020-01-21T00:00:00+00:00</published><updated>2020-01-21T00:00:00+00:00</updated><id>https://guilherme.stracini.com.br/blog/artigos/lista-bancos-brasileiros</id><content type="html" xml:base="https://guilherme.stracini.com.br/blog/artigos/lista-bancos-brasileiros/"><![CDATA[<p>Manter um sistema atualizado com os bancos existentes no Brasil é uma tarefa árdua e difícil? Não mais. Confira este repositório no GitHub, criado em meados de 2017, que mantém uma lista atualizada dos bancos comerciais brasileiros, incluindo informações sobre PIX, DOC, TED e portabilidade de salário.</p>

<blockquote>
  <p><strong>Atualização (Abril/2024):</strong> Atualmente estão disponíveis mais de 400 bancos na lista.</p>
</blockquote>

<p>A lista está disponível em 5 formatos diferentes e contém informações de diversos sistemas que compõem o SFN (Sistema Financeiro Nacional):</p>

<ul>
  <li><strong>CSV</strong> — Comma Separated Values</li>
  <li><strong>JSON</strong> — JavaScript Object Notation</li>
  <li><strong>Markdown</strong> — Markup language</li>
  <li><strong>SQL</strong> — Structured Query Language</li>
  <li><strong>XML</strong> — eXtensible Markup Language</li>
</ul>

<p>Acesse a documentação e as listas no GitHub:</p>

<p><a href="https://guilherme.stracini.com.br/BancosBrasileiros/" target="_blank">guilherme.stracini.com.br/BancosBrasileiros</a></p>

<p><a href="https://github.com/guibranco/BancosBrasileiros" target="_blank"><img src="https://github-readme-stats-guibranco.vercel.app/api/pin/?username=guibranco&amp;repo=BancosBrasileiros&amp;show_owner=true&amp;show_forks=false&amp;show_issues=true" alt="Bancos Brasileiros" /></a></p>]]></content><author><name>Guilherme</name></author><category term="Coding" /><category term="github" /><category term="open-source" /><category term="bancos" /><category term="brasil" /><category term="api" /><category term="dados" /><category term="json" /><category term="csv" /><category term="xml" /><category term="sfn" /><summary type="html"><![CDATA[Um repositório no GitHub com lista atualizada dos bancos comerciais brasileiros, incluindo informações sobre PIX, DOC, TED e portabilidade de salário, disponível em 5 formatos.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://guilherme.stracini.com.br/blog/assets/img/posts/logo-bancos-brasileiros.png" /><media:content medium="image" url="https://guilherme.stracini.com.br/blog/assets/img/posts/logo-bancos-brasileiros.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>