6 pontos por GN⁺ 2025-08-03 | 3 comentários | Compartilhar no WhatsApp
  • Viveram-se mais de um ano com o problema de condição de corrida na busca do Mintlify sem conseguir melhorá-lo
  • Embora eu seja fundador da Trieve, a provedora do mecanismo de busca da Mintlify, não conseguia corrigir o problema diretamente por estar em posição de fornecedor, sem acesso ao código
  • No fim, depois de ingressar na Mintlify, resolvi diretamente o problema de cancelamento de consultas e sincronização de resultados usando AbortController
  • Destaquei que, se fosse open source, seria possível corrigir isso imediatamente por meio de um PR, enfatizando a vantagem concreta do código aberto
  • Mais uma vez, percebi a satisfação e a importância de melhorar o produto ao consertar pessoalmente até mesmo um incômodo pequeno

Não pude submeter um PR, então entrei para corrigir

O bug de busca da Mintlify que incomodou por mais de um ano

  • Na função de busca do Mintlify, uma condição de corrida fazia com que as queries fossem processadas em duplicidade e expunha resultados errados enquanto o usuário digitava
  • Eu era fundador da Trieve, o fornecedor (terceirizado) do mecanismo de busca do Mintlify, mas não tinha acesso à base de código, então não podia corrigir diretamente
  • O problema foi levantado várias vezes no canal compartilhado do Slack, mas como ficou com baixa prioridade, ficou abandonado por muito tempo
  • Toda vez que a experiência de busca da Trieve parecia ruim na Mintlify, eu sentia um peso no meu orgulho pessoal e na imagem da marca

Solucionei diretamente ao entrar para o time

  • Ao me juntar ao Mintlify, passei a ter acesso direto à base de código
  • Melhorei a função de busca implementando AbortController, fazendo com que as consultas de busca anteriores fossem interrompidas imediatamente
  • Agora, a cada vez que o usuário digita, apenas os resultados de busca mais recentes são aplicados, então sempre é possível ver resultados precisos e atualizados
  • A satisfação de consertar diretamente um problema que incomodava há tanto tempo é enorme
  • Como George Hotz, que entrou no Twitter por pouco tempo para consertar o pop-up de login, atribuo valor à postura de agir de forma hacker/empreendedora ao resolver problemas diretamente quando eles aparecem
  • Esse tipo de experiência prática e concreta de resolução de problemas me leva para uma carreira melhor

O valor prático do código aberto

  • Tenho preferência pessoal pelo desenvolvimento e uso de software de código aberto
  • Se fosse open source, a estrutura permitiria que um desenvolvedor externo enviasse Pull Requests (PR) com correções de bugs ou melhorias de funcionalidade
  • Se a busca da Mintlify fosse open source, esse problema mantido por um ano poderia ter sido resolvido imediatamente com PR
  • No modelo de fonte fechada, há a limitação de que só se pode melhorar com acesso ao código
  • Mesmo reconhecendo o valor de "concessão imediata de permissões" no ambiente open source, também entendo as diferenças de modelo de negócio de cada empresa

A satisfação de melhorar diretamente

  • A razão pela qual a busca da Mintlify ficou mais suave e responsiva é justamente essa melhoria
  • Ao corrigir diretamente um pequeno bug que ficou incomodando por muito tempo, senti a satisfação de contribuir para a evolução do produto
  • Por meio dessa experiência, percebi que o processo de corrigir repetidamente até mesmo problemas pequenos e triviais torna o produto muito melhor
  • Pequenas mudanças feitas diretamente se acumulam e levam a uma melhoria acelerada da experiência do usuário
  • Espero continuar fazendo produtos melhores por meio do acúmulo dessas pequenas melhorias

3 comentários

 
yangeok 2025-08-05

kkkkkkk, eu te respeito muito

 
kimjoin2 2025-08-04

Um desenvolvedor de alto nível

 
GN⁺ 2025-08-03
Comentários do Hacker News
  • Há um tempo minha conta da Amazon foi suspensa por suspeita de fraude; era uma conta antiga, e eu tinha removido e-mail e telefone depois de vários vazamentos de dados. Depois de ser contratado, entrei em contato internamente com alguém da equipe antifraude da Amazon e resolvi rapidamente o desbloqueio da conta; quando falei com o suporte ao cliente, não adiantou nada.

    • Essa é a parte mais irritante da Amazon. Quando encontro um produto no Reddit ou em outras reviews, geralmente acabo indo para um link da amazon.com. Aí ela pede para mudar para a conta em dólar americano e, para fazer o pedido, preciso voltar para a conta da Alemanha/em euros. Esse processo é muito incômodo. Seria bom se deixassem a navegação livre entre regiões e só pedissem para mudar o perfil na hora de comprar. Também seria bom ter uma opção para comprar de vendedores da região.

    • Interessante. Ainda tenho um celular quebrado da integração quando entrei no Google; ninguém internamente se importa. Havia uma ferramenta para corrigir isso por conta própria, mas também vinha com um aviso dizendo que usar sem permissão poderia resultar em demissão.

    • Também tive uma conta do Facebook que não consegui desbloquear por 9 meses, e aí acabei trabalhando internamente por acaso e ela foi desbloqueada na hora.

    • Queria viver um momento épico assim na vida.

    • Também queria ter essa sorte. Perdi minha conta da Amazon porque um único dígito no começo do meu número internacional foi registrado errado. Por isso não consegui usar a verificação por SMS, e o celular com o app de OTP tinha acabado de quebrar.

  • Se o Google Maps me contratar para fazer as distâncias aparecerem só em km, meu contato está no meu perfil do HN. Acho que já troquei de milhas para km umas 500 vezes em 20 anos. É absurdo uma empresa que analisa usuários errar algo tão básico.

    • O mais absurdo mesmo é ter feito isso 500 vezes. Dá até para imaginar um A/B test fracassando por baixa participação do usuário. Sensação de fazer 7 entrevistas e abrir 1 PR para isso.

    • Eu queria encontrar a pessoa responsável por fazer o mapa inteiro ampliar para um “modo tamanho real 1 cm = 1 cm” e aplicar isso à viagem toda, e dar um tapa nela. Provavelmente é a mesma pessoa que deixa o carro sair da tela quando você dá zoom manualmente e, quando aperta “recentralizar”, força o zoom de volta para o original. Até GPS de 2005 já resolviam isso.

    • Viajei para o México e, mesmo logado, o Google Flights mudava de dólar para peso toda vez que eu abria uma nova aba. Parece que realmente não ligam.

    • Quando eu trabalhava no Google, 10 anos atrás, relatei esse problema em um formulário interno de feedback e nunca recebi resposta. Depois disso, passei a reportar esse bug todos os anos pelo feedback do Google Maps; em alguns anos, mandei duas vezes. Agora já virou um bug genuinamente constrangedor.

    • Também tenho interesse em trabalhar no gmaps. Seria bom se trajetos com mais de 1 hora já deixassem armazenado em cache também o caminho de volta. Muitas vezes fico numa situação ruim quando o sinal some e preciso lembrar a rota.

  • É engraçado ver uma piada antiga virar realidade. Tem um pedido para adicionar (de novo) uma margem à esquerda; ler texto colado na borda da tela é meio desconfortável.

    • Seguindo os links do post, vi um caso de alguém na Apple que implementou a exclusão automática de passes expirados e saiu logo depois. Agora acho que vou agradecer mentalmente a essa pessoa sempre que usar esse recurso. Era um problema realmente irritante.

    • Brincadeira: talvez fosse melhor ser contratado diretamente pelo OP para consertar isso.

    • Eu não gosto muito de sites que desperdiçam espaço na tela.

    • Eu gosto de texto alinhado à esquerda; para mim é ali que texto deve ficar.

  • Explica que adicionou AbortController à debounced search function para interromper a consulta anterior cada vez que o usuário digita algo novo. O mais irritante é quando o filtro ou a busca é aplicada antes de a pessoa terminar de digitar; eu queria que esperassem até a digitação acabar de vez.

    • A busca de logs do Grafana cobra por número de consultas sempre que você altera o filtro de logs atual, então mudar um caractere gera cobrança a cada tecla. Isso chegou ao ponto de mudar meus hábitos de uso de UX, porque o custo vinha pelo número de caracteres digitados, e não pela string completa buscada.

    • Quando implementei busca em tempo real no meu blog, eu deixava todas as sugestões da busca anterior terminarem antes de enviar uma nova solicitação. Achei um jeito razoável de evitar carga no servidor e ainda manter a responsividade.

    • Odeio especialmente isso em sites de reserva. Os filtros ficam numa barra lateral à esquerda e, se não couberem todos na tela, toda vez que você mexe em um o site rola para cima, carrega, transforma os filtros em somente leitura, e você precisa esperar tudo terminar para só então adicionar o próximo.

    • Acho que um bom meio-termo é esperar algumas centenas de milissegundos depois que o usuário para de digitar antes de enviar a consulta. Ou então enviar a consulta, mas só mostrar os resultados quando a digitação parar.

    • Odeio esse comportamento. É como um editor de código todo cheio de firulas que toca um alerta a cada letra digitada. Se você digita i e f e ele já avisa “a instrução if-then não foi fechada!”, é sensível demais mesmo sabendo que você ainda está digitando. É melhor mostrar o aviso só depois que tudo estiver escrito. Na maioria das linguagens e ferramentas, eu desativo esse tipo de alerta em tempo real e deixo para ver erros só na hora de buildar/executar. O LSP (Language Server Protocol) precisa se acalmar.

  • Hoje em dia a qualidade do software está tão baixa que, se um bug incomoda, às vezes é mais fácil ser contratado e corrigir você mesmo. Isso me lembra a história do programador que resolveu o problema de carregamento do GTA 5; até um GTA 5 com tanto dinheiro por trás não conseguia melhorar a qualidade com facilidade.

    • Eu vejo isso não como problema de qualidade, mas de prioridade. As empresas escolhem primeiro o que o time quer fazer, e não o que os usuários querem. Falta teste com usuários reais e experimento com dados. Na prática, este caso é menos uma solução do problema e mais um recorte do problema real. Provavelmente existem questões muito mais úteis, mas uma pessoa acabou adicionando só a funcionalidade que ela queria.

    • As pessoas que gastavam muito dinheiro em cartões do GTA:O não se importavam com o tempo de carregamento. Eu fiquei tão irritado que cronometrei e percebi que passava mais tempo na tela de loading do que nas missões, e acabei largando o jogo.

  • Piada perguntando se por acaso você é aquela pessoa do meme da internet.

  • Fiquei curioso porque a parte da contratação não é mencionada em nenhum momento no artigo. Parece mais “algo me irritava, entrei na empresa e corrigi” do que uma história completa; parece que falta a parte principal.

    • Acho que a empresa do autor foi adquirida pela empresa onde ele trabalha agora, então imagino que tenha sido um acquihire.
  • Em contrapartida, já trabalhei em um lugar onde, por causa dos advogados de PI, era impossível abrir PR para código open source. Mesmo assim, se eu descrevesse bem os valores de entrada e o número da linha com bug, conseguia convencer alguém a corrigir diretamente. Era como oferecer relatórios de QA (garantia de qualidade) de graça em vez de código.

  • Isso me lembrou a história lendária de George Hotz entrando brevemente no Twitter em 2022 e resolvendo o problema do pop-up de login. Mas eu lembrava diferente: George Hotz dizia que podia “consertar a busca”, saiu quase imediatamente e, no fim, só removeu o pop-up como consolo.

    • Dessa vez acabei mergulhando de novo por um momento em George Hotz, patent trolls e a comma.ai. A Comma.AI do George Hotz oferece um smartphone “comma 3x” de $999, um conector OBD-II e um chicote de fiação de $99 para adicionar recursos de nível Autopilot à maioria dos carros fabricados nos últimos 10 anos (até Tesla). O custo total é $1098, é open source no GitHub e ainda permite acesso ao carro via ssh. A assinatura opcional de nuvem custa $10/mês (SIM próprio) ou $24/mês (com dados da operadora incluídos). Só que ainda não existe algo equivalente ao Tesla Sentry Mode, e isso continua aberto como issue #29912. O Sentry Mode original da Tesla consome 250W — numa bateria de 80kWh, isso faz cair de 80% para 30% em 7 dias — então, se o openpilot usasse menos de 5W, seria muito mais eficiente.

    • Lembro de George Hotz se gabando de ter entrado no Twitter, não fazendo nada e saindo discretamente. Achei constrangedor e meio merecido.

    • Corrigi o texto para ficar mais preciso e, ao mesmo tempo, acabei tirando o próprio blog do ar por causa de um bug do Github Pages.

    • Pelo que lembro, no fim ele sugeriu ao Elon reconstruir o Twitter inteiro.

  • Pessoalmente, eu quase me candidatei a uma vaga no Discord só para mandar um PR transformando emojis gigantes em uma configuração opcional. Não sou só eu; o servidor inteiro vem pedindo isso desesperadamente.

    • Não sei se ajuda, mas eu mesmo contorno isso colocando um ponto final depois do emoji. Não serve para usuários novos, mas para mim é um quebra-galho.

    • O Discord é um app em Electron, então teoricamente daria para mudar isso com um mod do lado do cliente. Só não sei qual é o risco de banimento da conta.

    • Também houve um comentário perguntando o que isso significa; por exemplo, explicando que já existe uma opção para desativar a conversão automática de emoticons como :).