6 puntos por GN⁺ 2025-08-03 | 3 comentarios | Compartir por WhatsApp
  • Viví por más de un año con el problema de condición de carrera de búsqueda de Mintlify sin lograr mejorarlo y me resultó molesto
  • Aunque era fundador de Trieve, el proveedor del motor de búsqueda de Mintlify, en mi rol de proveedor no podía acceder al código directamente y no podía corregir el problema
  • Al final, después de unirme a Mintlify, resolví el problema directamente usando AbortController para cancelar consultas de búsqueda y sincronizar resultados
  • Resalto que, si hubiera sido código abierto, habría podido arreglarlo de inmediato con un PR, lo que muestra la ventaja real del open source
  • Volví a sentir la satisfacción y la importancia de mejorar un producto al corregirlo en persona, incluso si se trata de una molestia pequeña

La historia de arreglarlo al unirme al equipo porque no podía hacer un PR

El bug de búsqueda de Mintlify que molestó por más de un año

  • En la función de búsqueda de Mintlify, por una condición de carrera, las consultas se procesan duplicadas y se muestran resultados de búsqueda erróneos mientras el usuario está escribiendo
  • Aunque soy fundador de Trieve, proveedor del motor de búsqueda de Mintlify, no podía corregirlo de forma directa por no tener acceso a la base de código
  • Reporté el problema varias veces en un canal compartido de Slack, pero por baja prioridad quedó sin atender durante mucho tiempo
  • Cada vez que la experiencia de búsqueda de Trieve se veía mal en Mintlify, sentía presión por mi orgullo personal como fundador y por la imagen de la marca

Me uní al equipo para resolverlo

  • Al incorporar a Mintlify, pude tener acceso directo a la base de código
  • Implementé AbortController dentro de la función de búsqueda para mejorarla, de modo que se pueda interrumpir inmediatamente la consulta anterior
  • Ahora, cada vez que el usuario escribe, solo se refleja la búsqueda más reciente, por lo que siempre se obtienen resultados precisos y actualizados
  • La satisfacción de poder arreglarlo directamente después de un problema incómodo que duró tanto tiempo es enorme
  • Al igual que George Hotz, que entró por un tiempo en Twitter para corregir el popup de inicio de sesión, le doy valor a una mentalidad hacker/empresarial de solucionar directamente los problemas cuando aparecen
  • Estas experiencias de solución directa y práctica de problemas me han llevado a seguir una mejor dirección profesional

El valor práctico del código abierto

  • Personalmente, prefiero desarrollar y usar software de código abierto
  • Si fuera open source, un desarrollador externo podría enviar un pull request (PR) para corregir errores o mejorar una función
  • Si la búsqueda de Mintlify hubiera sido código abierto, este problema mantenido por un año podría haberse resuelto de inmediato con un PR
  • En el modelo de código cerrado hay la limitación de que solo se puede mejorar cuando se tiene acceso al código
  • Reconozco el valor de la "asignación de permisos inmediata" que ofrece el código abierto, y también entiendo las diferencias en el modelo de negocio de cada empresa

La satisfacción de mejorar directamente

  • La razón por la que la búsqueda de Mintlify es ahora más fluida y reactiva es esta mejora
  • Al corregir un bug pequeño que me inquietaba por mucho tiempo, sentí la satisfacción de contribuir al progreso del producto
  • A través de esta experiencia comprendí que arreglar de forma repetida incluso problemas pequeños vuelve al producto cada vez mejor
  • Cambios pequeños corregidos de forma directa se acumulan y mejoran la experiencia de uso de manera exponencial
  • Quiero seguir construyendo mejores productos mediante la acumulación de estas mejoras pequeñas y continuas

3 comentarios

 
yangeok 2025-08-05

jajajaja, te respeto muchísimo

 
kimjoin2 2025-08-04

Desarrollador jefe

 
GN⁺ 2025-08-03
Comentarios en Hacker News
  • Hace tiempo me suspendieron una cuenta de Amazon por sospecha de fraude; era una cuenta muy vieja y me habían borrado el correo y el número de teléfono tras varias filtraciones de bases de datos. Después de que me contrataron, contacté internamente a alguien del equipo antifraude de Amazon y resolví rápido el desbloqueo de la cuenta; cuando pregunté por soporte al cliente, no sirvió de nada.

    • Es la parte más irritante de Amazon. Si encuentro un producto en Reddit u otra reseña, normalmente termino en un enlace de amazon.com. Ahí me pide cambiar a la cuenta en dólares estadounidenses y, para hacer el pedido, luego tengo que volver a cambiar a la cuenta de Alemania/euros. Es demasiado engorroso. Ojalá simplemente te dejaran ver libremente por región; quizá bastaría con pedirte cambiar el perfil solo al momento de ordenar. También estaría bien tener la opción de comprarle a vendedores de tu región.

    • Interesante; todavía tengo un teléfono descompuesto de mi onboarding en Google. Internamente, a nadie le importa. Había una herramienta con la que podía arreglarlo yo mismo, pero también tenía un aviso de que usarla sin permiso era motivo de despido.

    • También tuve la experiencia de no poder recuperar mi cuenta de Facebook durante 9 meses, hasta que por casualidad terminé haciendo trabajo interno y la desbloquearon de inmediato.

    • Quiero vivir un momento así de épico en la vida.

    • Ojalá yo también hubiera tenido esa suerte. Perdí mi cuenta de Amazon porque un solo dígito al inicio de mi número internacional estaba mal registrado. Por eso no podía usar la verificación por SMS y, justo antes, también se había descompuesto el teléfono donde tenía la app de OTP.

  • Si Google Maps quiere contratarme para que las distancias salgan solo en km, mi contacto está en mi perfil de HN. Creo que en 20 años he cambiado de millas a km unas 500 veces. Es absurdo que una empresa que analiza tanto a sus usuarios falle en algo tan básico.

    • Lo realmente absurdo es haberlo hecho 500 veces. Me hace imaginar cómo fracasa en una prueba A/B por baja participación de usuarios. Se siente como haber pasado 7 entrevistas y subido 1 PR para terminar así.

    • Quisiera encontrar a la persona responsable de hacer que todo el mapa se acerque en “modo tamaño real 1 cm = 1 cm” y aplicarlo a todo el viaje, para darle un golpe. Probablemente sea la misma persona que deja que el coche se salga de la pantalla cuando haces zoom manual y que, al presionar “recentrar”, te vuelve a forzar el zoom original. Hasta los navegadores de 2005 ya resolvían esto.

    • Durante un viaje a México inicié sesión, pero Google Flights seguía cambiando de dólares a pesos cada vez que abría una pestaña nueva. De verdad parece que no les importa.

    • Cuando trabajaba en Google hace 10 años, reporté este problema por el formulario interno de feedback y nunca obtuve respuesta. Después de eso reporté este bug cada año por el feedback de Google Maps; algunos años incluso lo mandé dos veces. A estas alturas ya es un bug vergonzoso.

    • También me interesaría trabajar en algo relacionado con gmaps. Me gustaría que para trayectos de más de una hora también cacheara con anticipación la ruta de regreso. Muchas veces toca recordar el camino cuando no hay señal y eso complica todo.

  • Es gracioso ver cómo un chiste viejo se vuelve realidad. Tengo otra petición: agreguen margen izquierdo. Leer texto pegado totalmente al borde de la pantalla se siente un poco incómodo.

    • Siguiendo los enlaces del post, vi un caso de alguien que en Apple implementó la función para borrar automáticamente los pases vencidos y renunció justo después. Ahora pienso que cada vez que use esa función debería darle las gracias mentalmente. Era un problema realmente molesto.

    • En broma, mejor habría que contratar directamente al OP para que lo arregle.

    • A mí no me gustan mucho los sitios que desperdician espacio en pantalla.

    • A mí me gusta la alineación a la izquierda; siento que ahí es donde el texto debería estar.

  • Explica que añadió AbortController a una debounced search function para interrumpir la consulta anterior cada vez que el usuario mete una nueva entrada. Lo que más molesta es que el filtro o la búsqueda se apliquen antes de que el usuario termine de escribir. Ojalá esperaran a que termine por completo.

    • La búsqueda de logs de Grafana, cuando cambias el filtro de logs que está aplicado, te cobra por cantidad de consultas cada vez que cambias una sola letra. Por eso tuve que cambiar mis hábitos de uso de UX. El costo no se cobra por la cadena completa que buscas, sino por la cantidad de caracteres.

    • Cuando implementé la función de búsqueda en tiempo real en mi blog, hacía que primero terminaran todas las sugerencias de búsqueda anteriores y luego enviaba la nueva solicitud. Me parece una forma razonable de evitar carga en el servidor y mantener la capacidad de respuesta.

    • En especial odio esto en los sitios de reservaciones. Los filtros aparecen en la barra lateral izquierda y, si no caben todos en la pantalla, cada vez que mueves algo te regresa hacia arriba, carga, y los filtros se vuelven de solo lectura, así que tienes que esperar a que termine todo para apenas poder agregar el siguiente.

    • Creo que un buen punto medio es esperar unos cientos de milisegundos después de que el usuario deje de escribir antes de enviar la consulta. O también se puede mandar la consulta pero no mostrar resultados hasta que deje de escribir.

    • De verdad odio ese comportamiento. Es como si un editor de código muy fancy hiciera sonar una alerta cada vez que tecleas una letra. Si al escribir 'i' y 'f' te aparece inmediatamente “¡la sentencia if-then no está cerrada!”, aunque claramente sigues escribiendo, es una reacción exagerada. Mejor que la alerta salga cuando ya terminaste; en la mayoría de lenguajes o herramientas termino desactivando esas alertas en tiempo real y prefiero ver errores solo al compilar o ejecutar. LSP (Language Server Protocol) debería calmarse.

  • La calidad del software ya es tan baja que, si un bug te molesta, ahora parece más fácil conseguir trabajo ahí y arreglarlo tú mismo. Me hace pensar en la historia del programador que arregló el problema de carga de GTA 5; incluso GTA 5, con todo ese dinero, no lo tuvo fácil para mejorar la calidad.

    • Yo lo veo menos como un problema de calidad y más como uno de prioridades. Las empresas eligen primero lo que el equipo quiere hacer antes que lo que quieren los usuarios. Falta prueba con usuarios reales y experimentación con datos. En realidad, este caso no es tanto la solución del problema como una muestra del problema real. Seguramente hay issues mucho más útiles, pero una persona terminó agregando solo la función que ella quería.

    • A quienes gastaban mucho dinero en las tarjetas de GTA:O no les importaban los tiempos de carga. Yo me enojé, cronometré el tiempo y descubrí que pasaba más tiempo viendo pantallas de carga que en misiones reales, así que terminé dejando el juego por completo.

  • Bromean con si tú serás esa persona del meme de internet.

  • Me da curiosidad porque en el artículo no se menciona para nada la parte de la contratación. Se ve más como “había algo que me molestaba y lo arreglé gracias a que entré a la empresa”, así que parece que falta la parte clave de la historia.

    • Supongo que la empresa del autor fue adquirida por donde trabaja ahora, así que imagino que fue un acquihire.
  • En cambio, yo trabajé antes en un lugar donde los abogados de PI hacían imposible abrir PRs a código open source. Aun así, si explicabas con detalle los valores exactos de entrada y el número de línea del bug, podías convencer a alguien de que lo arreglara directamente. Era como ofrecer reportes de QA (aseguramiento de calidad) gratis en vez de código.

  • Esto me recuerda a la legendaria historia de George Hotz uniéndose brevemente a Twitter en 2022 y resolviendo lo del popup de inicio de sesión. Pero no lo recuerdo igual: según yo, George Hotz decía que “podía arreglar la búsqueda”, se fue casi de inmediato y al final se consoló quitando solo el popup.

    • Esta vez me distraje un rato investigando otra vez sobre George Hotz, los patent trolls y comma.ai. Comma.AI de George Hotz permite agregar funciones de nivel Autopilot a la mayoría de los autos fabricados en los últimos 10 años —incluso Tesla— con un smartphone “comma 3x” de $999, un conector OBD-II y un arnés de cableado de $99. El costo total es $1098, está como open source en GitHub e incluso soporta acceso por ssh al vehículo. La suscripción opcional en la nube cuesta $10/mes (SIM propia) o $24/mes (con datos del vendedor), aunque todavía no tiene una función equivalente a Tesla Sentry Mode y eso sigue abierto como issue #29912. El Sentry Mode original de Tesla consume 250W —con una batería de 80kWh baja del 80% al 30% en 7 días—; si openpilot usara menos de 5W, creo que sería mucho más eficiente.

    • Yo recuerdo que George Hotz presumió que había entrado a Twitter, no hizo nada y luego se fue en silencio. Me parece vergonzoso y algo que él mismo se buscó.

    • Dice que corrigió el texto para que fuera más preciso y, al mismo tiempo, bajó el blog por un bug de Github Pages.

    • Según recuerdo, al final le propuso a Elon rehacer todo Twitter.

  • Personalmente, hasta pensé en postularme a Discord para intentar mandar un PR que convirtiera los emojis gigantes en una opción con interruptor. No solo yo: todo el servidor lo pide con desesperación.

    • No sé si sirva, pero yo lo esquivo temporalmente poniéndole un punto al emoji después. No le sirve a los usuarios nuevos, pero a mí me funciona como parche.

    • Discord es una app de Electron, así que en teoría debería poder modificarse con un mod del lado del cliente. Eso sí, no sé qué tanto riesgo haya de que te suspendan la cuenta.

    • También hay un comentario preguntando a qué se refiere; por ejemplo, explica que sí existe una opción para desactivar la conversión automática de emoticonos como :) .