Recapitulando 2023 – Parte 1

¡Hola blog! Tanto tiempo sin leernos.

Vamos directo al grano. ¿Qué ha pasado en todo este tiempo? Creo que es el periodo más largo que he dejado de escribir desde que inició este sitio hace poco más de 19 años, así que me toca exponer en detalle.

La vida de adulto. Sí, eso fue lo que pasó y ha estado pasando. Parece meme, mentira o excusa barata, pero ya había hablado al respecto antes, solamente que ahora se puso en modo jarcor, y casi casi andaba pariendo chayotes.

Híjole, ¿por dónde comenzar?

Mis hijos están creciendo, lo cual es normal, pero la atención que el menor demanda es infinitamente mayor a la que el mayor requería cuando tenía esa edad. Yo era de las personas que decían que me había tocado suerte con mi hijo mayor porque en general nunca sentí que me pidiera ese nivel de atención (y vaya que pasaba mucho tiempo con él)… Bueno, pues parece que todo se juntó para con el menor. Sí, no voy a negar que la edad me ha hecho también no tener el mismo nivel de paciencia que hace 5 años, pero cuando me pongo a pensar que hasta a mi esposa la ha sacado de quicio y cada uno de nosotros ahora sí pide, o mejor dicho, exige “tiempo fuera” para al menos respirar un rato sin tener al lado al menor diciendo “mamá” o “papá”, me doy cuenta que ambos estamos totalmente exhaustos, y que sí, necesitamos vacaciones sin niños.

Obviamente el crecimiento de los niños ha traído nuevas y maravillosas experiencias que, aun con el cansancio expresado anteriormente, me recuerdan la dicha que es ser padre, y al mismo tiempo me hace respetar al 100% a las personas que deciden no serlo, y también me hacen entender por completo lo chido que es ser tío (o lo que será ser abuelo en su momento) ya que nada más tienes que ver el lado “bonito” de los chamacos, y cuando se portan mal o hay que regañarlos, le pasas la batuta a los papás y te quitas del apuro.

El caso es que debido a esa demanda de atención de ambos de mis hijos, he tenido que ser todavía más selectivo en las actividades que hago, y a la que no le di mucha prioridad fue precisamente al blog, no porque no quisiera, sino porque sabía que me costaría trabajo sentarme a escribir sabiendo que un solo escrito me tomaría varios días, si no es que semanas, en poder concluirlo, y como que, al menos durante el verano y parte del otoño, nomás no se me antojaba del todo. En contraste, le di mucha más atención a los videojuegos, que se volvieron a convertir en la válvula de escape para todo el estrés generado por los altibajos de la vida cotidiana.

Pero, huelga decir, eso no fue lo único. Y aquí vienen los chismes. Y ya ni conté las veces en las que intenté escribir lo que sigue y terminé borrándolo porque no me gustaba el resultado, el tono, o simplemente decía “no, creo que todavía no”. Con todo, hay partes que no terminaron de gustarme, pero si seguía así definitivamente nunca iba a terminar.

Trabajo

Ah, la situación laboral. La gente de México en la actualidad se enfrenta a la horrible tradición de “ponerse la camiseta” y a lidiar con jefes o empresas que definitivamente no valen la pena, pero que terminan siendo muchas veces la única opción viable en lo que a trabajar se refiere. Y miren que después de haber estado 20 años ya por acá he visto desde fuera cómo las empresas y patrones mexicanos han cambiado la cultura laboral del país y se han prácticamente institucionalizado las horas nalga, las horas extra gratis, la exigencia de propinas, la disponibilidad 24/7, etc., etc. Sin embargo, en todos lados se cuecen habas, y Japón no es la excepción. Ya lo expresé de forma por demás detallada en el escrito titulado “Luz”, y hay incontables historias en internet sobre lo excesivo de la cultura laboral japonesa y las peripecias por las que uno pasa por provenir de otra cultura.

Por razones más personales que otra cosa, rara vez comento sobre la empresa en la que estoy actualmente trabajando. No se trata ni de ocultar, ni de vanagloriar, ni de quemar a nadie. Es simplemente parte de la vida personal que no necesariamente tengo que compartir, y al mismo tiempo es por respeto a la misma compañía, pero secreto no es. Incluso con todo lo que me pasó en la empresa para la que trabajaba en la que pasó todo lo que comento en el escrito “Luz” arriba mencionado, no escribí al respecto hasta tiempo después, y miren que tuve mucho, pero mucho que contar, y preferí hacerlo de un jalón (nada más dense una vuelta para que vean qué tan largo es ese escrito). 

En esta primera de dos partes voy a hablar un poco sobre el trabajo anterior al actual. En la siguiente voy a detallar sobre el trabajo actual.

Para no perder la costumbre, vamos a llamar a las empresas con letras griegas. Las letras del abecedario, al menos en este blog, están destinadas solamente para personas (ver “Amor en los tiempos del sushi” para referencia).

  • Empresa del escrito “Luz”: Eta. Y no, no es albur
  • Empresa anterior a la actual: Theta
  • Empresa actual: Iota

La historia en Theta, resumida lo más brevemente posible

Después de prácticamente huir de Eta (en serio, no es albur), esperaba que el trato a recibir en Theta fuera al menos un poco mejor. Total, había tocado fondo ya, y nada parecía poder acercarse siquiera a lo que viví en Eta.

Para mi buena fortuna, la cultura laboral en Theta resultó ser muchísimo mejor de lo que pude haber imaginado, sobre todo por el hecho de ser una empresa 100% japonesa, y de tener a muy pocos extranjeros trabajando. Desde el simple hecho de respetar las horas de salida, de pedir horas extra solamente cuando era realmente necesario, hasta la camaradería que sentía en el equipo, Theta resultó ser el cielo que buscaba después del infierno vivido en Eta (última vez que repito que no es albur :P).

Ahora bien, como la gran mayoría de los lectores se puede imaginar, el lugar no era perfecto. Uno de los principales problemas de los que acaecían en Theta eran de administración, pero no de un departamento en específico, sino en el trabajo que se supone que querían que hiciera. Y no era el único: dentro de la empresa estaba otro doctor, de origen finlandés, que ya había vivido la falta de administración hacia él. Siendo mucho más específico, más que falta de administración era falta de conocimiento de lo que querían que nosotros dos hiciéramos. El finlandés, a quien llamaré M, tenía ya varios años laborando ahí; pertenecía al equipo de investigación, y yo entré al equipo de desarrollo. Fui contratado con la idea de que haría trabajo de procesamiento de lenguaje natural (al que denominaré NLP, por sus siglas en inglés) porque la empresa tenía historia de hacerlo en conjunto con profesores de diferentes universidades de Japón, además de tener varios papers publicados en diferentes revistas especializadas, pero la mayoría de esos papers eran en cuestiones estadísticas, y esto era porque el equipo de investigación era precisamente sobre estadística aplicada a datos referentes a educación. M no venía específicamente de NLP ni de estadística, pero sí de una carrera referente a computación, y además de haber acudido a diversas conferencias nacionales e internacionales, había estado como co-autor de un paper relativo a NLP publicado cuando ya era él parte de Theta.

En resumen: la empresa no sabía realmente dónde ponerme. Mis conocimientos y experiencia en programación me ayudaban mucho para estar en el equipo de desarrollo y hacerla de ingeniero en sistemas, pero, aunque ya me habían dicho que habría trabajo como tal desde antes de contratarme,  la verdad es que yo había entrado ahí con una idea un poco diferente: pensaba que estaría con el equipo de investigación, y de vez en cuando ayudaría al área de desarrollo. Cuando entré, me pusieron inmediatamente en el equipo de desarrollo.

Ni modo. Venía huyendo de una empresa bastante estricta y de un jefe totalmente tóxico, así que lo menos que podía hacer era no quejarme. Ya habría oportunidad después de intentar cambiar de equipo.

Entre otras cosas que hice al inicio, la que más recuerdo es trabajar con un código ESPANTOSO en C#, hecho por un contratista. El código es de lo peor que he visto en todos los años que tengo desde la universidad hasta la actualidad: un spaghetti de más de 12,000 líneas de código que lo único que tenía estructurado eran los nombres de las funciones y las clases, porque el contenido de ellas era como para que mis maestros de la universidad le dijeran que tenía que repetir el semestre. Al principio no entendía por qué nadie quería meterse con ese código, hasta que me lo aventaron a mí y no tuve opción de decir que no. Descubrí la misteriosa causa que hacía que el código “a veces” tronara como ejote y “a veces” funcionara “”””bien”””” (noten el número de comillas), reporté el problema y lo arreglé (si les interesa saber más a detalle, déjenme un comentario y con gusto les respondo), además de darle forma al programa para que al menos fuera posible navegar a través de él sin perder cabello de la desesperación de no entender ni una pizca de lo que se supone que tenía que hacer. ¿Documentación en el código? 99% inexistente. No, no, no. Palabras no me alcanzan para describir el horror de haber visto, y sobre todo trabajado, con esa monstruosidad. Es más, si me hubieran dicho que el código fue hecho por un becario que todavía estaba en la universidad, le habría dado comentarios positivos por el esfuerzo realizado y me habría ofrecido a ayudarlo a mejorar. Pero lo que me parecía totalmente inexplicable es el hecho de que NADIE en la empresa había sido capaz de alzar la voz, reportar problemas con el código o de plano entrarle a arreglarlo; muchos lo vieron y todos corrieron. No culpo al contratista: nadie le dijo nada nunca y él seguía haciendo su chamba; las cosas salían, con un programa no optimizado y después de varios intentos, pero salían, y mientras hubiera resultados, la empresa estaba “feliz” y le continuaba pagando.

Después, mi conocimiento de Java hizo que me metieran al desarrollo y mantenimiento del sistema principal de la compañía, el cual tenía un código claro y conciso, además de tener suficiente documentación como para entender por qué habían elegido hacer tal o cual cosa. El problema era que mucho del código base había sido creado por los que ahora eran los mánagers en la empresa, y aunque todos tenían conocimientos sólidos en programación, ninguno lo tenía concretamente en Java, por lo que se aventaban “a pata” funciones o algoritmos para los que Java ya tenía una librería especializada o mejores y más robustas funciones; por ejemplo: el manejo de String. El código parecía más bien C, pero estaba bien hecho y estructurado, y salvo pequeñas optimizaciones, realmente hacerle un refactoring era innecesario.

Estuve 2 años trabajando exclusivamente con la gente de desarrollo, en los cuales tuve que trabajar con un equipo de contratistas que muy celosamente guardaban su “secreto” de un framework de PHP que habían creado ellos mismos y del que la empresa dependía enormemente. Mis jefes quisieron que “educara” en él, pero los contratistas se portaron por demás herméticos, no respondían mis preguntas, o si lo hacían, era de forma vaga. No los culpo: era su mina de oro. Era evidente cuando no tenían trabajo porque se la pasaban leyendo noticias en internet sin importar que todos los demás vieran que no estaban haciendo nada. Sacaban la chamba, y eso era lo que importaba.

Después de eso, fue un periodo más raro: eran pocas las tareas que me, o contando a mi colega finlandés, nos asignaban, lo que nos puso en una posición bastante extraña y cómoda a la vez: prácticamente nos pagaban por no hacer nada. Las juntas semanales eran nada más para escuchar a los que sí hacían investigación. ¿Nosotros? Nada que reportar, nada que nos fuera asignado. Es más, era tan evidente la forma en la que nos ignoraban que una vez me pidieron que investigara la forma de implementar un motor de búsqueda para uso interno de la compañía. Levanté un prototipo usando Apache Solr y le dije a la entonces mi mánager que lo revisara… Bueno, es momento en el que todavía sigo esperando esa revisión.

Creo que duré así más o menos un año. Literalmente me pagaban por ir a sentarme. Pero eso no significa que me la pasé todo el año sin hacer nada: aproveché el tiempo para tomar cursos en línea, actualizarme en mi área y ver las nuevas tendencias en ella.

Tiempo después, nos llevaron a un lugar donde había muchísima gente calificando exámenes (la empresa manejaba datos referentes a educación), y cuando vi lo que estaban haciendo, comenté que podrían ahorrar mucho dinero si automatizaban eso, porque la tecnología para reconocer escritos a mano ya existía. Alguien de “arriba” tomó el comentario en serio y se pusieron a investigar, y dado que teníamos muchos, pero muchos datos, no tomó mucho tiempo en que crearon una empresa subsidiaria que se dedicaría a aplicar inteligencia artificial a esos datos. El primer proyecto, como se pueden imaginar, era precisamente el de crear un sistema de reconocimiento de texto escrito a mano, y comenzó con un viaje que hice a Singapur para conocer a los otros miembros del equipo con el que trabajaría.

Lo que pasó después de eso y hasta que me cambié de trabajo lo dejo para otro escrito, porque definitivamente merece especial detalle. Solamente mencionaré que estuve en Theta por espacio de 6 años y medio.

Iota

Entré a trabajar en Iota en abril de 2019, en medio de mucha, pero exageradamente mucha incertidumbre y ansiedad de mi parte. Los últimos meses en Theta fueron por demás estresantes, por lo que comencé a buscar trabajo, a tener entrevistas y a rechazar ofertas en las que me pagarían menos de lo que percibía en ese entonces. La verdad no pensé dar el ancho cuando vi que en Iota buscaban personal con mi perfil, pero decidí de todas formas intentar, y al final fui el elegido entre un número de candidatos que nunca supe cuántos fueron (pero según la empresa había varios). Y digo “incertidumbre” y “ansiedad” precisamente porque pensé que era un fraude, que en pocos meses me despedirían por incompetente, y todo lo que el famoso “síndrome del impostor” conlleva.

Iota representaba un gran reto para mí, especialmente porque es una empresa de capital extranjero, lo que significaba que tendría que volverme a acostumbrar al estilo de trabajo “no japonés”. No era una tarea fácil: en Japón te acostumbran a que los superiores (léase “jefes”) siempre tienen la razón, a que la productividad es generalmente muy baja y a que tardan eternidades en tomar decisiones porque se pasan la bolita unos a otros para evitar tener responsabilidades. Pero a la vez, como trabajador, tienes mucha protección una vez que te conviertes en “Seishain”, es decir, en empleado de tiempo completo; una de ellas es que es muy difícil que te despidan (por lo general te presionan para que tú renuncies). Total, que tenía miedo, y poco a poco se comenzaba a “cocinar” el estado mental que me llevó a caer en depresión.

La empresa realmente ofrecía múltiples ventajas en comparación con las compañías japoneses que conocía y en las que había trabajado: 

  • Muchos más días de vacaciones al año
  • Horario relativamente flexible
  • “Snacks” y bebidas gratis
  • Comida gratis cada viernes (todo el equipo salía a comer y la cuenta la pagaba la empresa)
  • Facilidad para tomar días libres
  • Flexibilidad en las herramientas a utilizar

Obviamente había altibajos, y me tomó una buena cantidad de tiempo acostumbrarme. La empresa siempre se mostró comprensiva con las situaciones de cada empleado, y yo no era la excepción: se portaron muy bien con lo que tuve que vivir durante el embarazo de mi segundo hijo, recibí mucho apoyo moral cuando estuve en el peor momento de la depresión, no había problema en cambiar las horas de trabajo para poder atender pendientes de la casa. En fin, la verdad parecía que estaba viviendo un sueño, y lo mejor era que, en teoría, iba a estar en mi área, pues fui contratado bajo el título de Senior NLP Researcher.

Todo estuvo bien durante 4 años y medio… hasta octubre de este año.

En la siguiente parte relataré lo sucedido en los últimos meses.

7 Replies to “Recapitulando 2023 – Parte 1”

  1. Hola Manuel, se extrañan estas publicaciones, espero salga pronto la siguiente parte. La duda seria que hiciste para arreglar el problema en los fideos de C# jaja, bueno, me dio curiosidad saber mas detalles.

    En PHP cada quien crea su propio framework :P, o usan frameworks super raros que a duras penas tienen desarrollo activo o documentación, es una pega toparse con esos casos.

    Saludos.

    1. Holas 🙂

      Con gusto te explico más o menos que onda con el código en C#.

      Resulta que el código a veces funcionaba sin bronca, pero a veces tronaba, y nadie sabía por qué, ni siquiera el autor. La excusa que todos ponían y creían era que parte del procesamiento que se realizaba era usar el modelo Rasch (https://en.wikipedia.org/wiki/Rasch_model) para hacer unos cálculos.

      Cuando me eché el clavado al código, me encontré con que había un montón de funciones que prácticamente hacían lo mismo, salvo por un par de cosas. Y no hablo de 2 o 3 funciones, sino como de 6 o 7 que tenían una buena parte de código común, lo que significaba que podías sacar ese código y ponerlo en otra función y llamarlo en cada una de las funciones para evitar tanta repetición de código… pero el contratista no lo hacía. Pero eso no era la bronca del código: me encontré con que el código era recursivo, pero una recursión superprofunda que sea activaba dentro de una función que era llamada por otra función, que era llamada por otra función, que era llamada por otra función, que era llamada por otra función. No exagero. La bronca consistia en que la recursión no tenía condición de salida definitiva. El código funcionaba bien cuando, por obra y gracia divina, los datos que tenían que ser procesados hacían que el programa terminara sin salir de la recursión, mientras que cuando tronaba se debía a un stack overflow porque la recursión seguía y seguía y seguía.

      Lo más chusco del caso es que me tomó en total como 3 o 4 días en cambiar el código para que al menos no tronara, y cuando lo presenté, con todo y unit tests, el mánager me dijo que volviera a revisarlo con calma, porque él había estimado un total de 2 semanas para arreglar el problema, y si terminaba ahora, no tendría nada que ponerme a hacer :/

      Debo decir que no fue el único encuentro con este tipo de código que tuve en esa empresa, pero al menos los demás eran mucho más decentes, y varios de ellos estaban muy bien escritos y documentados… pero no usaban nada de las funciones de Java que les habrían facilitado la existencia y se ponían a manejar cadenas con índices, muy al estilo de C, lo cual no era incorrecto, pero hacía el código más complicado de lo que debía ser.

      Sobre PHP… Ya mejor ni comento. Las experiencias que he tenido con ese lenguaje no han sido para nada placenteras. Digo, su fuerte debe tener, pero es definitivamente un lenguaje con el que no me gustaría volver a trabajar.

      Saludos 😀

  2. Vaya, que mal momento pasaste. Aunque como comentas sin supervisión hizo lo que quiso el contratista. Al final lo que importaba era que “funcionará”.

    Referente a lo que comentas del código en Java suena a que las personas que escribieron el código usaron lo mínimo de Java sin revisar un poco más la documentación. Digo, el manejo de String son de las cosas escenciales al iniciar. A menos, pensando mal, que quisieran quemar tiempo conscientes de que iban a implementar cosas resueltas por el lenguaje.

    Saludos y gracias por compartir 🙂

  3. Normalmente no me llama la atención leer u oír experiencias de trabajo, pero con tus posts, Manuel, siempre pienso «quiero leer más». Gracias por compartir y creo que me voy a interesar más en historias de otros colegas.

    1. Gracias por tu comentario 🙂

      Generalmente suelo escribir sobre trabajo después de que ha pasado cierto tiempo, simplemente para evitar malos entendidos. Y aunque no he escrito realmente todo lo que me ha pasado, sí tengo muchas cosas que contar, tanto buenas como malas.

      Saludos.

  4. Zaz, nos dejaste como Ende… apenas una probadita… yo si quiero saber del programa, se me hace que por ahí lo leí en twitter en su momento, pero si me gustaría conocer las tripas o la mensera que hicieron y por supuesto lo que pasó en Singapur…

    Y de octubre para acá… ya me haz dejado en ascuas…

    Tu elección de letras griegas me deja con la pregunta por qué no empezar por alfa o por omega, pero creo intuir porque… interesante salida, ojala tengas oportunidad de escribir y comparto el segundo en mi caso también es más demandante… aprovecha que crecen bien rápido y luego en la adolescencia no quieren saber de tí.

    1. Hay mucho que contar, y sí, voy a tener más oportunidad de escribir todo con detalle. Lo de Singapur fue nada más el comienzo.

      Lo de octubre también lo voy a contar, pero creo que eso será en un punto a partir de marzo, para evitar cualquier tipo de bronca o altercado.

      Saludos

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.