O dia a dia real de quem carlos trabalha em uma empresa de tecnologia
carlos trabalha em uma empresa de tecnologia e agora o que acontece
A maioria das pessoas tem uma visão romântica do que é trabalhar em tech. Pensa em open space, mesa com monitor duplo, café grátis e código limpo sendo escrito em silêncio. A realidade é bem diferente. Você entra numa empresa de tecnologia e, nos primeiros meses, passa mais tempo entendendo o que já existe do que criando algo novo. Herança técnica, documentação que não reflete o código, decisões que foram tomadas há três anos sem registro algum. Isso é normal. Todo mundo passa por isso. O problema real começa quando você precisa fazer algo funcionar no dia seguinte e ninguém lembra como o sistema é configurado. Eu passei por isso em 2019, num projeto de migração de banco de dados. O código dizia que usávamos Postgres, mas os logs de erro mostravam conexões caindo com erros de driver MySQL. Depois de duas noites investigando, descobri que o ambiente de produção tinha sido sobrescrito por um container Docker que alguém esqueceu rodando num servidor secundário. A solução foi encontrar o arquivo docker-compose original num repositório antigo, validar as variáveis de ambiente com o time de infra e subir um novo container com a configuração correta. Levei quatro horas. Ninguém tinha anotado aquilo em lugar nenhum.
Isso te ensina uma coisa que não ensinam em lugar nenhum: a maior parte do trabalho em tecnologia não é programar. É navegar por sistemas que outras pessoas construíram e que, muitas vezes, elas mesmas já esqueceram como funcionam. Se você não tem paciência para isso, a carreira em tech vai ser frustrante desde o início.
Como se organizar quando tudo parece estar desenhado às pressas
O primeiro passo é simples, mas a maioria dos recém-chegados ignora. Comece documentando o que você descobre no seu primeiro mês. Não precisa ser bonito. Um arquivo markdown num repositório interno, uma nota no Notion, o que for. Anote como o deploy é feito, onde estão as credenciais, qual o fluxo de dados entre os serviços principais. Essa documentação vai te salvar quando o sistema quebrar no sábado à noite e você for a única pessoa disponível. Segundo ponto: entenda o pipeline de deploy antes de mais nada. Quantos ambientes existem? Por que existem? Qual a frequência de release? Quantas vezes eu vi gente nova tentar debugar um erro que só acontecia em homologação, quando o problema era que ela estava olhando para o código do ambiente certo, mas ignorando que a branch de deploy estava travada há duas semanas por causa de um teste que quebrava de propósito.
Se você quer construir software nesse ramo, precisa dominar pelo menos três áreas que não são programação pura. A primeira é infraestrutura básica. Saber o que é um Load Balancer, entender como funciona o DNS, conhecer o básico de redes (TCP vs UDP, portas, HTTP vs HTTPS). Sem isso, você fica preso achando que o problema é no código quando na verdade é uma regra de firewall bloqueando uma requisição interna. A segunda é versionamento de banco de dado. Migration scripts, rollbacks, estratégias de deploy zero-downtime. Eu já vi gente remover coluna em produção sem um rollback script porque ninguém havia pensado nisso antes. O banco ficou inconsistent por seis horas até que alguém escreveu um workaround manual. Isso dá para evitar com uma cultura mínima de controle de versão aplicada também ao esquema do banco.
👉 Clique no botão abaixo para saber mais sobre o assunto!
A terceira é monitoramento. Você precisa saber ler logs, entender métricas de latência e configurar alertas que realmente importam. Alerta de CPU alta é útil. Alerta de erro 500 por minuto é essencial. A diferença entre os dois separa quem resolvedor de problemas de quem só apaga incêndio.
O que ninguém te conta sobre carreira em empresas de tecnologia
Revisão de código nunca é só sobre o código. Tem gente que acha que code review serve para encontrar bugs. Serve, mas principalmente para compartilhar conhecimento. Quando você pede revisão, está na verdade convidando alguém a entrar na sua cabeça e a te ajudar a ver o que você não viu. O melhor time que eu já trabalhou tinha revisores que não corriam só a sintaxe. Eles perguntavam. "Por que essa função recebe esse parâmetro?" "Você considerou o caso de timeout aqui?" Essas perguntas vale mais do que qualquer lint passava. Sprints não funcionam como todo mundo espera. A estimativa de horas que você coloca num ticket raramente corresponde à realidade. Não porque você esteja sendo ruim, mas porque sempre existe aquele edge case que ninguém imaginava. Um serviço de terceiros mudou a API de repente. Um dado precisou ser migrado de uma tabela pra outra. Um teste de integração quebrou sem motivo aparente. O segredo é manter a margem. Se você acha que leva dois dias, reserve três. Se acha que leva uma semana, reserve doze dias úteis. A psicologia por trás disso é simples: todo mundo superestima o que consegue fazer num dia, mas subestima o quanto imprevisto aparece durante a semana.
Se você trabalha em remoto ou híbrido, a comunicação escrita vira sua principal ferramenta. E a maioria das pessoas não sabe escrever para resolver problemas técnicos. Um bug report bom tem três partes: o que aconteceu, o que você já tentou e o que você espera que aconteça. Sem essas três, você gasta meia hora de conversa para chegar onde um texto bem escrito resolveria em dois minutos. Eu uso esse formato até hoje e meu tempo médio de resolução de issues caiu de dois dias para seis horas em média. Outra coisa que ninguém fala: a tecnologia que sua empresa usa hoje provavelmente vai ser substituída em dois ou três anos. frameworks mudam, bibliotecas são abandonadas, integrações deixam de funcionar. O que te mantém empregável não é saber React ou Node ou Python. É saber aprender rápido. Quando minha equipe precisou migrar de REST para GraphQL num prazo apertado, ninguém sabia a nova stack. Passamos duas semanas estudando, testando e errando. No final, entregamos. A sensação boa que fica não é a entrega em si, mas a certeza de que a gente era capaz de fazer algo que ninguém sabia fazer antes.
Para quem está começando agora, o caminho mais direto é: pegue um projeto pequeno, rode ele localmente, quebre algo proposital, conserte. Repita. Ninguém aprende lendo documentação. Aprendemos mexendo. E no meio do caminho, você vai descobrir que carlos trabalha em uma empresa de tecnologia e que esse trabalho, mais do que código, é sobre resolver problemas com recursos limitados, sob pressão e, às vezes, sozinho.