Cap. 03

Código legado

La alarma sonó a las seis y cuarto. Diego estiró la mano sin abrir los ojos, un radio reloj, de esos con los números rojos que se ven borrosos cuando estás muy cerca, de esos que se consiguen en cualquier Kmart por doce dólares. Lo tenía desde el apartamento.

El apartamento. Así lo pensaba, tres años después: el apartamento. Antes estaba la casa en Bergen County, el pasto que cortaba los sábados, el garaje donde guardaba una bicicleta que nunca usó. Después vinieron los papeles y los abogados y la conversación donde ninguno de los dos levantó la voz, y ahora estaba esto: dos ambientes en el cuarto piso de un edificio en Newark Avenue, Jersey City. Un sillón, un equipo de música, CDs en una repisa. Una taza en el fregadero porque solo tenía dos y la otra estaba en la alacena. Las paredes eran blancas. Nunca les había puesto nada.

Hizo café en la hornalla, una moka italiana que su exmujer no había querido en el divorcio, probablemente lo único en la cocina con algo de historia. El café era fuerte y estaba demasiado caliente. Lo tomó parado en la encimera, mirando la escalera de incendios y la parte de atrás de otro edificio que era exactamente igual al suyo.

Cuarenta y nueve años, pensó. No era la primera vez. Sin ningún sentimiento en particular. Solo el número, ahí, como un código de lote. Abril estaba por la mitad, diez días hábiles desde el aniversario de Kurt, diez mañanas idénticas. La vidriera de la disquería en Newark la habían desarmado en algún momento de la semana pasada.

Lucas venía el sábado. Cada dos fines de semana, llueva o truene, el único ritmo en el calendario de Diego que no era procesamiento por lotes.

Se duchó, se vistió: pantalones caqui y un polo azul, la chaqueta de jean con forro de franela encima de todo porque la mañana estaba fría y abril en Jersey City no era abril en ningún lugar donde él elegiría estar — y caminó tres cuadras hasta la estación del PATH. El andén olía a metal y lluvia. El de las 7:18 llegó a horario, lo cual era inusual.

La oficina estaba en un edificio mediano cerca de Journal Square, de esos con un lobby que intentó verse moderno en 1994 y nunca lo volvió a intentar. El ascensor tenía un cartel pegado adentro: FUERA DE SERVICIO — USE ASCENSOR 2. Ese cartel estaba ahí desde que Diego empezó. El ascensor 2 funcionaba bien.

Mutual Guaranty Insurance ocupaba el séptimo y octavo piso. Diego trabajaba en el séptimo, en una fila de cubículos contra la ventana que daba a la cochera de otro edificio. Su escritorio tenía una torre beige debajo, un monitor encima, un teléfono que casi nunca usaba, y una foto enmarcada de Lucas de hacía cuatro años, cuando todavía parecía un niño. El monitor tardaba treinta segundos en prender después de apretar el botón, hasta que se asentaba en su zumbido bajo, el sonido de la máquina acordándose para qué servía. La pantalla de inicio era el mismo azul que probablemente tuvo siempre. Diego había dejado de notarlo.

Mantenía sistemas de procesamiento por lotes. COBOL, mayormente, con algo de SQL pegando las piezas. Los reclamos llegaban durante la noche desde las sucursales del noreste, se encolaban en archivos planos, se ordenaban y validaban con los jobs de Diego, y después se mandaban adonde tuvieran que ir: algunos a procesamiento interno, algunos a la empresa de procesamiento de excedentes, un lugar chico en Kansas que se llamaba Heartland Data Services. Los jobs corrían con un schedule. El schedule no había cambiado en dos años. Nada del trabajo de Diego cambiaba nunca, que era la parte que más le gustaba.

Se logueó, levantó los logs del run nocturno, scrolleó. Verde, verde, verde. Todos los jobs completados. Se reclinó y tomó su segundo café del día, el café de la oficina, que era peor que el suyo, lo cual ya era decir bastante.

Jeff de contabilidad se paró en la puerta de su cubículo. —Diego. ¿Viste a los Knicks anoche?

—No.

—Perdieron por diecinueve.

—Suena correcto.

Jeff se quedó un segundo más. Después se apoyó contra la pared del cubículo.

—¿Te enteraste de lo del lugar en Ohio? Datamark, Dataline, algo así. Empresa de procesamiento.

—No.

—Los marcaron en una auditoría de compliance. La certificación de outsourcing no les cerró, algo del vendor chain que no coincidía con los specs declarados. Linda de legales estaba hablando de eso. Dijo que les llegó una carta de la Oficina de Cumplimiento Tecnológico, les congelaron las operaciones seis semanas mientras lo resolvían.

—Ah.

—Aparentemente está pasando más seguido. Algo del ciclo de revisión de los treinta años que se viene — están endureciendo las auditorías de cara a eso. Linda dijo que hasta a los proveedores regionales los están mirando.

—Suena a dolor de cabeza —dijo Diego.

Jeff decidió que esa era toda la conversación, y se fue.

A Diego le caía bien Jeff. Le caía bien la mayoría de la gente de ahí. Llevaba seis años en Mutual Guaranty y podía nombrar a cada persona del piso y lo que hacía, y ninguno de ellos había estado jamás en su apartamento y ninguno iba a estar. Ese era el arreglo. Lucas era la excepción. Lucas tenía un cajón. El trabajo pagaba cincuenta y ocho mil al año y no le pedía nada que él no supiera dar.

Para las diez y media había revisado los logs, corregido un error de formato de fecha en uno de los scripts de validación, y estaba leyendo la documentación de un módulo de batch que él mismo había escrito dieciocho meses atrás porque los comentarios eran escuetos y no confiaba en su propia memoria. La mañana pasó.

La llamada llegó a las cuatro y cuarenta, cuando Diego ya estaba pensando en el tren de vuelta.

El teléfono del escritorio sonó. La línea interna, la del ring corto que significaba que era alguien del edificio. Atendió.

—Diego, soy Dave.

Dave Kessler. Gerente del séptimo piso. Jefe aceptable. No micromanejaba, no inspiraba. El tipo de gerente que mandaba mails con listas itemizadas y esperaba lo mismo de vuelta.

—Tengo reclamos sentados en la cola —dijo Dave—. Muchos. Operaciones lo marcó hace una hora.

Diego frunció el ceño. —Mis batches corrieron bien anoche. Los revisé esta mañana.

—No digo que no. Digo que hay un backlog. Ítems sin procesar, capaz cuatrocientos, sentados en la cola de ingreso ahora mismo. Janet piensa que es un tema de clave duplicada, registros rechazados en el insert.

—No tiene sentido. La validación atrapa duplicados antes de que lleguen a la cola.

—Bueno, algo los puso ahí. ¿Podés revisarlo antes de irte?

Diego miró el reloj del monitor. Cuatro cuarenta y dos. El PATH de las 5:15 lo dejaba en casa a las seis. Si se quedaba, era el de las 6:45. La comida china del lugar de la esquina iba a estar fría para cuando se sentara.

—Sí —dijo—. Lo reviso.

Cortó y abrió la cola de ingreso. Dave tenía razón — 412 registros sin procesar, marcados como duplicados. Diego abrió los primeros diez. No eran duplicados. Eran reclamos legítimos, todos de la misma fuente: la procesadora de excedentes, Heartland Data Services, la empresa de Wichita que manejaba el batch fuera de horario.

El problema era el timing. El batch nocturno de Diego había mandado un lote de reclamos a Heartland a las 11:00 PM hora del este, como estaba programado. Heartland tenía que procesarlos y devolver los resultados a media mañana. Ese era el ritmo, hacía años. Pero los resultados no habían vuelto a media mañana.

Habían vuelto a las 11:47 PM. La misma noche. El propio batch de Diego todavía estaba corriendo cuando los resultados de Heartland llegaron. Las dos salidas colisionaron. El sistema marcó todo como duplicado porque no podía conciliar dos conjuntos de resultados para el mismo input llegando casi simultáneamente.

Diego se quedó mirando los timestamps. Su primer pensamiento fue que Heartland tenía un backlog, quizás habían estado caídos un día o dos, algo había pasado en Kansas, y tiraron todo junto cuando volvieron a estar online. Un corte de luz, un crash de servidor, una tormenta de nieve. Algo de lo que él no se habría enterado porque no miraba las noticias y no leía el diario y hacía rato que había dejado de importarle lo que pasaba en lugares donde nunca había estado.

Pero los números tampoco soportaban eso. Los reclamos se habían mandado a las 11:00 PM y vuelto a las 11:47. Eso no era un volcado de backlog. Un volcado de backlog sería desprolijo, repartido en horas, mezclado con el trabajo de otros días. Esto era limpio. Cuarenta y siete minutos, de principio a fin. Como si hubieran estado esperando que lleguen los archivos y los hubieran procesado en el acto.

Sabía lo que corría Heartland. Había visto la declaración TPA — cada procesador tenía una entrada en archivo. Un procesador de lotes en ese hardware no liquidaba cuatrocientos reclamos en cuarenta y siete minutos. No sin saltarse pasos, y los resultados estaban completos y correctos.

Nada cerraba hoy. Ni la cola, ni el turnaround limpio de cuarenta y siete minutos que no se parecía a ningún backlog que hubiera visto. Diego se refregó los ojos. Pasaban las cinco. El PATH de las 5:15 ya se había ido.

Arregló la cola. Le llevó una hora: retagueando duplicados manualmente, limpiando los flags, reenviando los que no se habían procesado localmente. Trabajo aburrido. El tipo de trabajo que no tendría que haber sido necesario porque nunca antes había sido necesario.

Se puso la chaqueta. Al salir paró en la puerta de Dave. Estaba abierta. Dave hablaba por teléfono, reclinado en la silla, asintiendo a quien fuera que estuviera del otro lado. Diego se quedó parado en el marco con la planilla en la mano — la que había hecho mientras arreglaba la cola, la de los timestamps que no cerraban. Dave lo vio. Levantó un dedo. Un minuto.

Diego esperó. Dave seguía asintiendo. El reloj en la pared detrás del escritorio de Dave marcaba las 6:34. El PATH de las 6:45 salía en once minutos. Dave dijo "sí, sí" en el teléfono y anotó algo en su bloc sin levantar la vista.

Diego dobló la planilla, se la metió en el bolsillo de la chaqueta y caminó hacia el ascensor.

El apartamento estaba oscuro cuando llegó. Siempre estaba oscuro cuando llegaba, porque no había nadie más para prender las luces.

Había una nota debajo de la puerta. La señora Kaminsky del 2B, escrita en el dorso de un sobre de Con Edison:

┌─────────────────────────────────────┐
│  CON EDISON          ████████-██    │
│  4 Irving Pl, New York NY 10003     │
└─────────────────────────────────────┘

17 de abril, 1996²

Se cayó internet de nuevo. Sos el
único que sabe arreglarlo.
¡¡¡Gracias!!!

                    — Mrs. K, 2B

Tres signos de exclamación.

Dejó las llaves en la encimera y bajó al sótano. La espalda se le trabó en el tercer escalón, un nudo debajo del omóplato derecho que venía ahí desde febrero. Paró, respiró. Cuarenta y nueve años. La caja de conexión estaba detrás del termotanque, una cosa de plástico beige con cuatro luces que parpadeaban y daba servicio a todo el edificio. El cable coaxial se había aflojado del splitter. Lo empujó de vuelta, esperó a que las luces hicieran el ciclo, y se quedó parado ahí en el olor a cemento húmedo hasta que la cuarta luz quedó fija. Cinco minutos. Lo había hecho tantas veces que podría haberlo hecho sin las luces prendidas.

De vuelta arriba, abrió la nevera. Medio tupper de lo mein de hacía dos días. Lo olió, decidió que estaba bien, lo comió frío parado en la encimera. Podía escuchar a la pareja de arriba discutiendo por algo, la voz de ella subiendo, la de él aplanándose. A través de la pared, la televisión de Mrs. Kaminsky estaba demasiado fuerte.

Puso un CD, Jagged Little Pill, porque estaba en todos lados igual, en cada radio, en cada local, y el álbum era bueno a pesar de eso. El primer tema llenó el apartamento y lo hizo sentir menos como una sala de espera.

Se sentó en el sillón. El sillón era donde comía, donde leía, donde a veces se quedaba dormido con la tele prendida.

Una calle después de la lluvia. Una disquería que olía a plástico y cartón. El sonido de una guitarra a través de una pared, y alguien diciendo algo que hizo reír a alguien, de esas risas que vienen del estómago y sorprenden al que las hace. Un pasillo que olía a ajo, la reja de hierro, el timbre roto. Un sillón que no era este sillón, en una habitación que no era esta habitación, en un lugar que era suyo de maneras que este apartamento nunca iba a ser.

Sonó el teléfono.

—Papá.

—Lucas.

—¿Me podés buscar el sábado? Mamá tiene una cosa.

—¿A qué hora?

—Como a las diez. Tengo cosas en casa que necesito llevar.

—Dale.

Una pausa. Diego podía escuchar algo de fondo. Música, o una tele, o las dos cosas. Lucas tenía diecisiete años y vivía en un mundo de ruido de fondo.

—Eh, pa, ¿sabés de reproductores de CD que no saltan?

—¿Cómo que no saltan?

—El primo de Sofía tiene una cosa, parece un discman, chiquito, con auriculares, pero no salta nunca. Ni aunque lo sacudas. Y es mucho más fino que el tuyo.

—Eso es un MiniDisc —dijo Diego—. Existen hace años.

—No, no es un MiniDisc. No tiene disco. No tiene nada adentro. Lo abrió y solo hay, tipo, un chip.

—El sábado a las diez —dijo Diego—. Traé una campera.

Cortó. Un MiniDisc tenía un disco. Ese era el punto — un disco chico en un cartucho. Lo que Lucas describía no tenía ninguno. Diego había mirado todos los reproductores portátiles en la góndola de Sears hacía tres navidades, calculando precios de regalos que no podía pagar. Ninguno funcionaba sin un medio.

No volvió a llamar.

Lucas encontraba cosas que lo entusiasmaban. El mes pasado eran unas zapatillas, el anterior una rueda de skate hecha de un material que no podía nombrar. Pronto no iba a necesitar las visitas del sábado. Probablemente ya no las necesitaba.

El contestador tenía una luz parpadeando. Ya sabía quién era: Silvina, su hermana, llamando desde Quilmes. Llamaba cada dos semanas. Él le devolvía la llamada cada tres. Los mensajes de voz se apagaban en un "bueno, nada, eso" cuando se quedaba sin cosas para decir, que era raro. Apretó el botón para guardar sin escuchar.

Prendió la computadora. Al menos la conexión andaba, una cosa que no tenía que arreglar dos veces en la misma noche. Abrió la bandeja de entrada.

Tres mensajes. Una oferta de tarjeta de crédito. Un newsletter de un grupo de usuarios COBOL al que se había suscrito y nunca leía. Y uno de Lucía.

Asunto: de vuelta en milán. acá también todo es igual.

Lo abrió.

Llegué el martes. La lluvia acá es más fría. Mi padre se ve más viejo cada vez, que ya sé que así funciona el tiempo pero igual me jode. La universidad no cambió. La mina del café de abajo me trae el pedido mal. Pedí un cortado y me trajo un latte. De nuevo. Creo que lo hace a propósito, como una declaración sobre argentinas que vuelven y pretenden que las cosas estén como las dejaron.

¿Cómo está Jersey City? ¿Sigue en pie?

Diego lo leyó dos veces. Movió el cursor al cuadro de respuesta.

Pensó en escribir algo sobre el backlog. Sobre los cuarenta y siete minutos. Sobre Heartland procesando cuatrocientos reclamos en menos tiempo del que lleva ver una película. Pensó en escribir: ¿alguna vez notás cosas que no terminan de encajar, y después decidís que encajan igual porque es más fácil?

No escribió nada de eso.

Abrió un archivo nuevo, el editor de texto plano, el que usaba para notas que nadie pedía. Tipeó el número: 47. Después la fecha. Después Heartland. Lo miró tres segundos. Tres líneas en una pantalla blanca. Seleccionó todo y lo borró. El archivo se cerró sin preguntar si quería guardar, porque no había nada que guardar.

Pensó en entrar al sistema de la oficina para revisar esos timestamps de nuevo, pero la conexión del edificio apenas aguantaba el mail. Los cuarenta y siete minutos iban a tener que esperar hasta mañana.

Apagó el monitor. Alanis seguía sonando. Los cuarenta y siete minutos seguían ahí, debajo de todo, callados y fuera de lugar.

Diego terminó el lo mein. No le contestó a Lucía.

La Parte 1 continúa con cinco capítulos más.

Dejá tu mail y te aviso cuando estén listos.

Also in English.