lunes, 13 de enero de 2014

Resumen de mi carrera profesional hasta hoy

Day 8: Take some time today to reflect on your career. Jot down a timeline of it, including all the ups and downs. What was your best experience? And the worst? What would you like your future to look like, in terms of your career? If you’re a young man and haven’t started in yet, focus on that future part. What do you want your work to look like?

Esto es más que apto para los tiempos que estoy viviendo. Empecemos:

12/09/2010 a 11/08/2011: Prácticas en Skyworks
Supuestamente era Ingeniero de Procesos. En la práctica era más algo como "olvida casi todo lo que estudiaste, tal vez probabilidad y estadística te sirva". Mi mayor aportación fueron quizás el montón de gráficas que hice sobre como posicionar wafers. Hasta eso fue un buen acercamiento a el proceso de ensamblado de los semicondcutores que hacen ahí. También, me fui demasiado rápido, apenás me iban a dar algunas cosas más serias, enseñar a operar máquinas, etc. Otra cosa es que me interesaran o me sirvieran. Las amistades no estuvieron mal, pero evidentemente, no eran nada para la posteridad. Quizás lo que más me sirvió después de haber salido, fue el acercamiento leve que tuve a las bases de datos. Al menos me inspiraron los suficiente para tomarlas como optativa en la uni. Bueno, también aprendí a odiar el ambiente de trabajo de las máquilas.

13/03/2012 a 09/05/2012: Medio tiempo en BTS
No tenía ni un mes de haber llegado de Austria, y ya tenía un trabajo de medio tiempo. Sorprendí a varios, yo creo que hasta a mí mismo, y me la creí mucho. Le entré a lo mejor muy a ciegas, sin mucho conocimiento real de lo que me iban a poner a hacer. La neta todo salió muy mal aquí, mala elección de ellos, mala elección mía, y, en mi opinión, pésima dirección. Quizás eran una empresa muy nueva y/o pequeña, pero sentía que no tenían muy bien estructurado que hacer con el estudiante de medio tiempo. Me ponían a hacer demos llenos de conceptos que no entendía, cuyas aplicaciones no imaginaba, y luego me soltaban cosas que no sabía hacer, con deadlines. Nunca hubo alguien sentado a un lado de mí, enseñándome cómo se hacían las cosas, y no obtenía muy buenas respuestas cuando iba a preguntarles. Usé mi tiempo en las clases de Python de Google y flasheando custom ROMs en mi Nexus S, porque estaba harto de ir a sentarme 4 horas para aburrirme. Cuando estaba pensando en renunciar, ellos mismos me dijeron que sentían que las cosas no estaban funcionando, así que los dos terminamos la relación con mucho gusto.

01/08/2012 a 06/09/2012: Medio tiempo en SAIT
Esto fue rarísimo. La amiga de un tío (¿?) les pasó mi CV, les gustó, me hicieron una entrevista equisona, les gusté, y luego de un exámen chafilla de lógica (que al parecer decía que yo era muy inteligente), decidieron contratarme. Era básicamente customer support, tanto a domicilio como por teléfono. También hacer planeaciones enteras sobre como iban a migrar las actividades del cliente a la solución que hacía la la empresa. Era ridículamente obvio que estaba sobre calificado para este trabajo, incluso una de las jefas una vez me dijo que tal vez un día quisiera moverme a desarrollo, en vez de soporte. Well derp. Ese día nunca llegó, porque por fin me llamaron de Intel. Quizás lo que más aprendí en el cortísimo tiempo que estuve aquí... Fue... Mmm... ¿Que al Beto y al Bimbo les gusta ir a trabajar a Starbucks?

16/09/2012 a 15/09/2013: Primer internship en Intel
UFF. El mejor hasta ahorita. Mucho he escrito ya sobre todo, menos de lo que realmente hice de trabajo:

A la semana de haber llegado, me pusieron a trabajar en un script que se iba a usar para leer una variable tipo lista de otro archivo, iba a recibir una lista enorme de una tupla que contenía un int de tamaño, y luego un número, a veces en hexadecimal. Había que meter ese número en little endian en una estructura del tamaño que indicaba el int, y al terminar, escribirlo todo a un archivo .bin, obviamente, en binario. Luego le añadieron escribirlo en otro formato, .inf, y ya no en little endian. Fue mi primera tarea, solo sabía Python por lo que había aprendido por mi cuenta, pero la saqué adelante de manera decente. Al final de mi internship, mi manáger me diría que desde ahí se llevó una muy buena primera impresión de mí. No me imaginaba que a la larga, Python iba a ser mi pan de cada día en Intel (sin albur). Hasta la fecha, se sigue usando.

Luego hice algunas Windows Forms con C# y Visual Studio. Sencillas, era una especie de formulario que llenabas, te mostraba toda la info en una tabla, y después podías insertar más información en forma de líneas, editar, copiar, etc., antes de que te generara un archivo de text con todas las filas. Servía para preparar testlists, pues tenías que organizar toda la info del test que ibas a correr, y cada línea era una iteración. Era más fácil así que estar llenando un archivito de texto a pata.

Luego estuve ayudando a levantar plataformas en el laboratorio. Fue interesante, me ayudó a entender un poco más el hardware con el que nos enfrentábamos.

Después estuve ejecutando pruebas. Era muy sencillo, pues era una IP que no daba muchos problemas. Era más un trabajo de disciplina, estar al pendiente, y luego reportar resultados. A veces necesitaba algo especial, y tenía que ponerme de acuerdo con otras personas para habilitar juntos features especiales. Todo era con gringos, así que al menos tuve la experiencia de esta interacción.

Un poco después, me pusieron a trabajar en otro grupo que agregaba temperatura y marginación de voltaje a las pruebas. Para esto, era necesario interactuar con unos controladres de temperatura, así que alguien en Austin se aventó unas librerías bien perras en C y no sé qué más para controlarlos desde Python. Ya luego yo usé esa librería para crear una clase de Python, y manejar los controladores como si fueran objetos, con métodos como stop, measure, etc. También los siguen usando.

Luego, llegó una oportunidad dorada. Estábamos a punto de migrar a una nueva herramienta de automatización, que iba a necesitar un montón de scripts en Python. Levanté la mano para ayudar, y me dieron luz verde. Desde ahí hasta que acabé este internship, me estuve dedicando principalmente a esto. Lo primero que hice fue un script que bajaba las versiones correctas de softwares necesarios para la ejecución. Descomprimía, ejecutaba archivos .exe, hacía cleanup, etc. También trabajé más con SVN. Tuve un ligero acercamiento a unit testing. La neta era bien feliz, programando tipo on demand, cuando me preguntaban si sabía como se podía hacer algo, lo buscaba en Google, hacía unas pruebas para entender cómo funcionaba, y luego les decía que si y desarrollábamos algo nuevo. Había un montón de código ya hecho en nuestro repo, y podías aventarte cosas bien rápido que le podían servir a la gente. Era tan feliz.

Un poco antes de acabar este internship, mi jefe me puso un mini assignment de unas gráficas para una página web. Me eché un clavado en PHP/HTML/CSS/Javascript. No sabía nada de nada, pero a la semana, ya era capaz de usar una librería de Javascript que había encontrado por ahí, y estaba graficando lo que me pedían. Lo dejé a medias por mi fin de contrato, pero ahí realmente sentí que la mayor habilidad que había forjado en este internship, era la capacidad de investigar, entender, y aplicar cosas nuevas.

01/10/2013 a 15/01/2014: Segundo internship en Intel
Más corto, pero más bonito e intenso. Ahora si nos conocíamos, sabíamos cuáles eran mis fortalezas y mis debilidades. Me pusieron otra vez con lo de temperatura y voltaje, pero ésta vez, éramos un grupo más nutrido y estructurado. Estaba ahí por request personal, y cuando me presentaron a los nuevos, me echaron un montón de flores. Me sentía súper motivado para ésta segunda vuelta, y qué bueno, porque iba a requerir mucho más desgaste del que esperaba.
Esta vez hice una mezcla más de ejecución y programar. Mitad y mitad, yo diría. Hubo quedadas hasta la media noche y trabajo en fines de semana. Lo bueno es que trabajé con gente tan chila, que me pesó mucho menos. Tuve acercamientos con Android, aprendí algunos truquillos de monkeyrunner, adb y shell.  Seguí aprendiendo de Python, obviamente, pero también me tuve que meter más con cosas de Linux y bash y del diablo (tcl). Hice varias cosillas interesantes que, presiento, van a seguir usando un buen rato. También hice grandes amistades, que ahora si, yo creo que van a ser mucho más largas que las de trabajas pasados.

Más o menos eso resume mi experiencia profesional. Definitivamente quiero llevar mi carrera en una camino entre la ingeniería de software y IT. Quiero programar, pero no pasar horas en una discusión filosófica sobre la manera correcta de nombrar la variable de un file descriptor. O 15 horas a la semana en code reviews. Prefiero un trabajo más de exploración, tipo "ocupamos algo que haga esto y aquello, pero con estas limitantes, y que corra en tal ambiente, ¿cómo le haremos?". O buscar maneras de mejorar las actividades actuales mediante programación. La informática como la conocí en Europa es quizás mi mejor opción. Por lo pronto, para aplicar a nuevos trabajos, y lo más importante, a los trabajos que me gustan, necesito ponerme a estudiar cosas más actuales y comerciales. Incluso básicas. Más C/C++/C#, lenguajes web, Android... Por un lado me da gusto que voy a tener mucho tiempo para enfocarme en esto. Por otro lado, me da miedo de que sea demasiado tiempo.

2 comentarios:

  1. Vaya, yo también quiero ser programador, aunque me enfoque mas a web development. Ahora como nuevas metas tengo las de aprender Python para back-end y mejorar en C# y C++. Estoy estudiando Ing. Mecatronica en Tijuana, me gusta, pero no enseñan tanta programación como me gustaría así que pues, ni modo, pero ahí esta Google que no se raja. Así es como aprendí todo lo de programación.

    Suerte!

    ResponderEliminar
  2. La neta si. Digo, no estoy muy orgulloso de eso, pero lo que mejor he aprendido, lo he aprendido fuera de la escuela.

    Saludos!

    ResponderEliminar

Deja algo lindo, especial, original y coherente =)