Disporre di un curriculum aggiornato è una necessità fondamentale, come lo sono il guanciale nella carbonara o la schiuma in un bel boccale di birra (e non mi spingo oltre coi paragoni). Purtroppo però non ci si pensa mai, finché non serve. E quando serve, ci si accorge che l’ultima versione risale a un’epoca in cui usavi ancora MSN Messenger.
Tutto è iniziato con questa consapevolezza: il mio CV era fermo da due anni. Nel cuore della notte, un’illuminazione: «Domani mattina lo aggiorno e lo risistemo!».
Se la memoria non mi inganna, l’ultima copia è, per pura comodità aziendale, un documento Word. Scrivere qualsiasi cosa in Word che non sia una lista della spesa è come scolpire il David con un piede di porco: teoricamente possibile, ma praticamente una tortura che offende sia l’artista che il materiale.
La domanda successiva è stata ovvia: «E adesso come lo riscrivo?».
Qui il mio cervello ha intrapreso la sua consueta deriva iper-tecnologica. In passato, per ovviare alla necessità aziendale di tenere aggiornati i curricula, avevo architettato una soluzione degna della NASA, paragonata a una realtà di appena dieci persone. L’idea era semplice: scrivere i CV in LaTeX, versionarli in un repository Git e usare le pipeline di automazione (tipo quelle di GitLab) per compilare automaticamente un PDF ad ogni commit sul branch principale.
Volendo replicare questa follia per me stesso, a casa, mi servirebbe: un server GitLab, un runner con installata l’intera suite TeX Live (che non è proprio un peso piuma) e una pipeline .gitlab-ci.yml configurata a puntino. Tutto questo per produrre un singolo documento.
Ma non contento, ho pensato: «E se invece usassi Markdown, per semplificare la scrittura, e poi convertissi in PDF via Pandoc?». In pratica, stavo complicando ulteriormente un’idea già di per sé eccessivamente complicata. Stavo progettando l’automazione di un processo di produzione senza aver ancora deciso cosa produrre, né in che forma. È come progettare un robot che impiatti lasagne prima di avere una ricetta, degli ingredienti o anche solo una padella.
Prima ancora di accendere il computer, ho avuto un’altra rivelazione devastante: nel CV è indicato il mio sito web, sia come link che nel dominio dell’email. Chiunque lo leggesse potrebbe cliccarci e trovarsi davanti un sito la cui estetica ricorda i blog dei primi anni Duemila. Ecco allora che il prurito di rifare il CV si è istantaneamente trasformato nel prurito, ben più grave, di rifare l’intero sito.
Fortunatamente, un barlume di sanità mentale (o forse solo un riverbero di pigrizia) ha avuto la meglio. Ho chiuso tutto e sono andato a farmi un caffè, forse anche due.
Questo episodio, riassunto per amor di sintesi, è l’emblema di ciò che accade quando si perde di vista l’obiettivo per inseguire il metodo. Si finisce per paralizzarsi, contemplando soluzioni architettonicamente affascinanti ma che, in realtà, sono solo dei dettagli differibili. È un vizio che ho spesso con i miei side project: mi alzo il sabato mattina carico di entusiasmo per un’idea, e la domenica sera mi ritrovo con una pila di diagrammi di flusso, repository vuoti e zero progressi concreti.
La soluzione? Semplificare. Fare il minimo passo indispensabile per avanzare verso la meta, anche se piccolo. I dettagli, le ottimizzazioni e le automazioni spettacolari verranno dopo, a obiettivo raggiunto.
Armato di questa (speriamo) nuova filosofia, mi sono messo a cercare una soluzione concreta per il mio problema originale: scrivere un buon CV. Mi è tornato in mente un vecchio video del sempre ottimo Corey M. Schafer, in cui usava script Python, template Jinja2 e file JSON per generare un CV in HTML. Ottimo per un sito web, meno per un PDF dall’aspetto curato.
Proprio in quel video, però, Schafer citava due progetti promettenti: jsonresume.org e rendercv.com.
Jsonresume propone un formato aperto basato su JSON per definire i dati del proprio curriculum, separando il contenuto dalla presentazione. Rendercv, invece, è un tool che prende un file YAML e, utilizzando motori di template in Python (incluso LaTeX sotto il cofano), genera PDF di ottima qualità.
Sono queste le strade che ho deciso di esplorare. Non richiedono di configurare server, runner o pipeline. Partono dal cuore del problema: i tuoi dati, la tua storia. L’automazione, se mai servirà, verrà dopo.
E su come utilizzarli nella pratica, e su quale dei due si sia rivelato più efficace per le mie esigenze, beh… ci sarà un prossimo post. Per ora, il mio obiettivo è fare quel primo, piccolo passo: aprire un editor e iniziare a scrivere il file sorgente, YAML o JSON.