Entradas

Buscar empleo en tiempos de IA: de la abundancia al desierto

Buscar empleo en tiempos de IA: de la abundancia al desierto ENSAYO — MERCADO LABORAL TECH Buscar empleo en tiempos de IA: de la abundancia al desierto Hace cuatro años sobraban las conversaciones. Hoy sobra el ruido. Una mirada honesta a cómo cambió la búsqueda de trabajo en software entre el boom de la pandemia y el desierto algorítmico de ahora. 24+ años en desarrollo de software · Notas desde la búsqueda activa Hace cuatro años, en plena pandemia, buscar trabajo como desarrollador de software se sentía casi como elegir entre ofertas. Las empresas competían por talento, l...

Apenas las vi hoy... Wow

Keyed Services en .NET 8: Registrando y Resolviendo Dependencias con Claves Desde .NET 8, el contenedor de Inyección de Dependencias (DI) de Microsoft incorpora una característica muy esperada por la comunidad: los Keyed Services (servicios con clave). Esta funcionalidad permite registrar múltiples implementaciones de la misma interfaz y resolverlas usando una clave específica, sin recurrir a trucos como fábricas manuales o el patrón Strategy implementado a mano. En este post vamos a ver qué son, qué problema resuelven, cómo se registran y resuelven, y un ejemplo práctico de uso real. ¿Qué problema resuelven? Antes de .NET 8, si tenías varias implementaciones de una misma interfaz (por ejemplo, distintos proveedores de notificaciones: Email, SMS, Push), el contenedor de DI solo te devolvía la última registrada al pedir IServiceProvider.GetService<INotificador>() . Para elegir una implementación específica, la mayoría de los desarrolladores recurríamos a: Registr...

Koalite: Sobre velocidad y coste de desarrollo

Koalite: Sobre velocidad y coste de desarrollo Koalite: Sobre velocidad y coste de desarrollo blog.koalite.com/2025/12/sobre-velocidad-y-coste-de-desarrollo Al desarrollar software, y más cuando se trata de un producto maduro, es habitual que surja la sensación de que «antes sacábamos cambios rápido y ahora todo va más lento» y, por tanto, se proponga «contratar más gente para volver a ir rápido». Desde fuera puede parecer que el equipo simplemente se ha vuelto menos eficiente. Desde dentro, normalmente lo que está pasando es bastante más mecánico y predecible: A medida que el software crece, su coste mínimo de mantenimiento y evolución sube. A medida que crece el equipo, la capacidad productiva media por persona decrece. Esto, que puede parecer algo exclusivo del mundo del desarrollo, se hace patente en muchas otras áreas. Por ejemplo, en el nivel de vida de una persona. La complejidad tiene un coste Cuando un software es pequeño, t...

Stop Naming Your Variables "Flag": The Art of Boolean Prefixes

Shallow Focus Flags — Stop Naming Your Variables "Flag" Shallow Focus Flags thatamazingprogrammer.com — Stop Naming Your Variables "Flag": The Art of Boolean Prefixes The Problem You inherit a codebase and find this: public class OrderProcessor { private bool open; private bool flag; private bool done; private bool status; public void Process(bool check) { if (open && flag) { flag = false; status = true; } if (done) { // what happens here? } } } Readable? No. What is open ? Is the store open? Should the file open? What is flag ? That's a variable screaming "I'll fix this later." And is done a question ("is it done?") or a command ("mark it done")? Boolean names are ambiguous land mines. They look innocent until you have to figure out what they mean during a 3 AM outage. ...

Programadores con producción neta negativa (NNPP)

Imagen
Cuando me topé por primera vez con el término NNPP (siglas de "Net Negative Producing Programmer") no puedo negar que me hizo cierta gracia. Cuanto menos, resultaba curioso pensar que podían existir desarrolladores cuyo saldo en las aportaciones a un proyecto resultara negativo, o lo que es lo mismo, que el valor de su producción fuera superado por el coste de los errores y defectos que introducían en las aplicaciones. Y con el término "desarrolladores" no me refiero exclusivamente a programadores; el concepto es válido para analistas, arquitectos, testers, o cualquier otro rol relacionado con la construcción de software. Aunque seguro que todos hemos trabajado con profesionales que consideramos desastrosos poco habilidosos en la ejecución de sus tareas, probablemente no hayamos reflexionado lo suficiente sobre el impacto que tiene esto en un proyecto, y el coste final que clientes, nuestra empresa, o nosotros mismos ...

Equipos de alto desempeño

En estos días me he puesto a pensar ¿Que es lo que hace realmente que un equipo sea eficiente?, después de pensar y leer unos artículos bastantes buenos, estuve de acuerdo con todos los puntos mencionados en estos artículos, uno de ellos menciona 9 pasos para formar equipos de alto desempeño . A continuación enumerare los 9 pasos. 1. Define un objetivo. Me parece el mas importante, tener un objetivo en común, no cuenta el obtener el salario al fin de mes. 2. Busca a las personas correctas. Rodéate de las personas correctas, la diversidad crea un conocimiento colectivo :). 3. Crea una estructura de trabajo. Se necesita de una estructura, reglas, roles, objetivos, estándares, etc.. 4. Comunica con claridad. Uno de los mas importantes y que muchos equipos fallan, comunicación “con claridad”, ser claro en todo, nunca esperar que los demás “infieran”, eso facilitara el trabajo y ahor...

Las 3 grandes virtudes de un programador: Pereza, Impaciencia y Arrogancia

Imagen
Don Larry Wall , el creador de Perl, escribió en Programming Perl estas 3 cualidades que todo programador debe de tener. Pereza La calidad que te hace ir por un gran esfuerzo para a la larga reducir el gasto de energía. Te hace escribir programas que ahorren trabajo y que otras personas encuentran útil, y documentar lo que escribes para que así no tengas que responder tantas preguntas sobre ello. Por lo tanto, esta es la primera gran virtud de un programador. Impaciencia La ira que sientes cuando la computadora esta siendo perezosa. Esto hace que escribas programas que no solamente reaccionen a tus necesidades, sino que hasta las anticipen. O por lo menos pretendan hacerlo. Por lo tanto, esta es la segunda gran virtud de un programador. Arrogancia Orgullo excesivo, el tipo de cosa por el cual Zeus te castiga. Esta calidad te hace escribir (y mantener) programas sobre los cuales otras personas no quieran hablar mal. Por lo tanto, es...