Embeber google fotos/Código últimas entradas

Mostrando las entradas con la etiqueta arquitectura de software. Mostrar todas las entradas
Mostrando las entradas con la etiqueta arquitectura de software. Mostrar todas las entradas

miércoles, 8 de mayo de 2024

Entrevistas Técnica

En la búsqueda de trabajo parece que no todo es miel sobre hojuelas, al final del día uno se vende a una empresa y esta tiene diversos procesos para comprarlo a uno. En esta ocasión gracias a la recomendación de mi cuñado terminé siendo entrevistado para Globant y justo hace una semana sucedió la entrevista técnica. 

El entrevistador era egresado del tecnológico de Zacatepec, quien no sepa Zacatepec es un municipio del estado de Morelos, muy cercano a la CDMX, así que no es de extrañar que muchos egresados terminen trabajando para empresas de CDMX. Cuando trabajé para Equifax varios colegas eran de dicho instituto y la mayoría con muy buenos resultados laborales. Quien me vino a la mente fue un colega que se llama Ernesto García y que era super ñoño, así que sabía que me iba a tocar alguien ñoño y godín comprometido con su empresa, cosa que sucedió mi entrevistador fue de esas personas que no reflejan expresión alguna, que saben que están en cierta forma en el cenit laboral. La reunión tuvo varias etapas, la primera fue la presentación y hablar un poco de mi experiencia laboral, posteriormente se pasó a preguntas "técnicas" sobre Java y patrones de diseños para finalmente rematar con un code challenge. Sobre las preguntas técnicas el entrevistador me agarró en curva con dos básicamente: una que habla sobre que características tienen las interfaces funcionales y la otra sobre en qué difiere un BFF de un micro servicio que usa como paradigma de diseño Domain Driven.

En el caso del code challenge, básicamente me pidió hacer una implementación del ordenamiento de burbuja, aquí debo mencionar que los nervios se apoderaron de mi y realmente no codifiqué a gusto, primero intenté una solución generada por Perplexity con alucinación y todo, pero por lo mismo que no fue óptima al analizarla y hacer las ejecuciones, caí en cuenta que era mucho mejor resolver el problema a mano y entenderlo que usar la IA por lo que la entrega del programa se extendió un poca más de lo esperado. Eso sin contar que el entrevistador mucho antes mencionó que tenía que irse a una junta y que estaría revisando el código esporádicamente fuera de la reunión.

En mi caso entiendo la dificultad de las entrevistas, en mi experiencia he estado más del lado del entrevistador que del entrevistado y por lo general como parte de la entrevista dejo un code challenge y usualmente me desconecto, avisando que tiene hasta cierta hora para enviarme por correo dicha prueba. No obstante fue curioso estar ahora del otro lado sufriendo lo que otros sufrían y justo en esa tónica encontré un artículo interesante: Retiring a great interview problem.

Sobre las interfaces funcionales comparto dos referencias:

Sobre domain driven design:

Sobre bubble sort:


lunes, 15 de enero de 2024

Arquitecto o no arquitecto

 De nuevo la empresa busca posicionarme como Arquitecto en proyectos y es aquí donde la mente idiota que escucha empieza a sugerirme cursos y demás. El viernes me dio un ataque de ansiedad, pues el síndrome del impostor hace las suyas y más después de una entrevista, en donde personalmente creo que tuve más atino que el gobierno por erradicar a los merolicos de los colchones viejos. Una parte de mi quisiera moverse a inteligencia artificial, pero la parte realista me recuerda mi experiencia laboral. Así que imagino que es inevitable agarrar al toro por los cuernos y afrontar la realidad de ser Arquitecto. 

Por cierto una muy buena fuente para documentarse en patrones de arquitectura es la que ofrece el imperio de software: Azure architecture en particular en esta sección: azure architecture patterns

viernes, 22 de julio de 2022

Descubrimientos y reencuentros

Es el último penúltimo día laboral, tenía rato de que no se me solicitase trabajar tiempo extra en un día de descanso. Curiosamente cuan ley de Murphy en tiempos se ha juntado la presión que tiene Lynk para sacar a producción ciertas funcionalidades, junto con la mudanza y la operación de mi madre. Así que seguramente la semana que viene será una semana un tanto pesada. 

Optional or not Optional

Codificando nuevamente me he topado con el uso de ciertas ñoñerías de JAVA, como lo es el uso de Optional. Esto pareciese ligeramente complicado de entender al inicio, ya que es una especie de "metaclase" o encebollamiento. Sin embargo no deja de ser una buena nadería para manejar el temible "null pointer exception". Otra interesante liga puede consultarse acá

Ci-ci-ci-ciiircuit breaker

Suena como el famoso "combo breaker" de killer instinct, pero ahora en un contexto Godín de TI. Entendiendo algunos patrones implementados en cierto "stream processor" usando Kafka me topé con algo llamado "Circuit Breaker" que es uno de tantos patrones que se usan para microservicios. La monería que tiene esta implementación es que bajo ciertas condiciones de excepción se vuelve a hacer cierto número de intentos antes de dar por terminado con excepción en el peor de los casos y funcionando en el mejor de los casos.

viernes, 22 de abril de 2022

El maravilloso mago ñoño

Hace un par de días tuve una especie de entrevista con la empresa con la que vamos a trabajar codo con codo para labores arquitectónicas de software, unos días antes varias veces me desperté tenso con los brazos dormidos supongo que por la tensión. Indagué un poco sobre la empresa y me topé que andan buscando un mago, digo un arquitecto, en dicha empresa y quizás por esa razón me vino a la mente el siguiente episodio de los Simpsons

Espero no sucumbir ante una lengua viva, aprovechando su visita les sugiero esta publicacion: 97 things every Software Architect should know

viernes, 18 de marzo de 2022

Acaba la semana con un debraye Azerí

Terminó la semana de entrenamiento intensivo en la nueva empresa y los patrones humanos se repiten como una danza hipnótica, obvio hay nuevos acordes, pero el dejavú se siente en algunos instantes. Por cierto la rola que comparto la escuché al estar viendo una receta de unos pastes de papa rellenos de carne y cubiertos de carne al horno.

Sobre el entrenamiento intensivo todo danza de manera ágil, siendo esta la metodología de moda para la administración de proyectos de software. Un poco antes de que acabase el día siguiendo el consejo del diablito (Ernesto para los cuates) solicité una plática con Miguel Enríquez: @eldermael. A grandes rasgos los consejos que esbozamos fueron conseguir libros como Building Evolutionary Architecture, Building Microservices entre otros. También sugirió algunas conversaciones que conforme las vaya escuchando las postearé. Un aspecto interesante es la distribución del trabajo y objetivos alineados totalmente con lo que busca la empresa de un arquitecto. Dicha distribución quedaría:

1/3 Juntas, en este aspecto es bien sabido que por ello los arquitectos usualmente son personas con experiencia es decir cuya madurez a sosegado sus caballos desbocados para asistir y escuchar a todos los interlocutores, en mi experiencia siempre es deseable escuchar y entender todos los puntos de vista antes de tomar una decisión e incluso sopesar dicha decisión ante los interlocutores.

1/3 Mentoría, adoptar patrones de software no siempre es sencillo y se requiere colaborar con los desarrolladores para elaborar pruebas de concepto o prototipados que corroboren que cierta arquitectura es la adecuada. Así el desarrollador aprende y el arquitecto también. Uno tiene que ganarse el respeto mutuo y la mentoría es un paso indiscutible, si es con unas cervezas mucho mejor.

1/3 Código, esta sugerencia me recordó a Ken Hall, el arquitecto escocés, no hay arquitecto(profesional) que se respete sino sabe codificar, como arquitecto uno tiene que estar en las trincheras y sufrir todos esos detalles que como desarrollador uno sufre que van desde configurar x herramienta hasta resolver y problema. 

Esta plática me dejo el sabor de boca de si huele a pato, sabe a pato y parece pato, claramente es pato, aunque siempre hay que tener la mente abierta a lo inesperado.

Por cierto la rola Azerí

Y uno de los videos donde sale Miguel Enríquez



jueves, 10 de marzo de 2022

La búsqueda del grial en software

En esta nueva iteración laboral como arquitecto de software me he dado a la tarea de formalizar mucho del conocimiento que uno trae tras varios años de trabajar en la industria del software, tras todos estos años uno pasa por distintas etapas, metodologías, etcétera con el fin de lograr una casa virtual que se ajuste a las necesidades del cliente, que cumpla con ciertos requisitos como funcional, estética, eficiente y demás. Este par de días que me he acostumbrado a la nueva empresa, pasé un buen rato buscando algún curso interesante que me refresque ideas o proponga nuevos conceptos. Tras un sinfín de cuestiones terminé dando con un sitio que habla de una "nueva manera" de bosquejar los sistemas de software. Y es el video que comparto a continuación.

Me queda claro que hay mucha variabilidad por que los sistemas de software van cambiando conforme cambian las tecnologías y los aproximamientos a resolver las necesidades de la "casa virtual" que uno construya. Es esto que hace complicado un cuerpo robusto y que se preste a todo tipo de gurús que ofrecen dicho grial. Como buenos arquitectos, haciendo el símil, debemos de buscar diagramar de manera que sea clara y se tomen en cuenta todas las perspectivas de dicha casa: funcionalidad, restricciones...

Más información acá: c4model