diff --git a/.gitignore b/.gitignore index 47e94d5..3b8f713 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,7 @@ _site/ *.hi *.o /site +*.aux +*.log +*.out +*.pdf diff --git a/Tito_Sacchi_CV.tex b/Tito_Sacchi_CV.tex new file mode 100644 index 0000000..9791a38 --- /dev/null +++ b/Tito_Sacchi_CV.tex @@ -0,0 +1,271 @@ +% vim: et:ts=2:sts=2:sw=2 +\documentclass[parskip=half,oneside]{scrartcl} +\usepackage[italian]{babel} +\usepackage[pdfusetitle,colorlinks=true,urlcolor=blue]{hyperref} +\usepackage[dvipsnames]{xcolor} +\usepackage{fontspec} +\usepackage{tabularx} +\usepackage{makecell} +\usepackage{eso-pic} +\AddToShipoutPictureFG{ + \AtPageUpperLeft{% + \raisebox{-\height}{% + \color{customcolor}\rule{1cm}{\pageheight} + }% + }% +} + +\KOMAoption{DIV}{14} +\KOMAoption{BCOR}{0pt} +\KOMAoption{fontsize}{11pt} +\KOMAoption{paper}{A4} +\KOMAoption{footnotes}{multiple} +\pagestyle{empty} +\RedeclareSectionCommand[ + runin=false, + beforeskip=0.6\baselineskip, + afterskip=-\baselineskip]{section} +\RedeclareSectionCommand[ + runin=false, + beforeskip=0.5\baselineskip, + afterskip=-0.5\baselineskip]{subsection} +\RedeclareSectionCommand[ + runin=true, + beforeskip=0pt, + afterskip=0.5em]{subsubsection} +\renewcommand*{\sectionformat}{} +\renewcommand*{\subsectionformat}{} +\renewcommand*{\subsubsectionformat}{} +\addtokomafont{section}{\color{customcolor}} +\addtokomafont{subsection}{\color{customcolor}} +\addtokomafont{subsubsection}{\color{customcolor}} +\makeatletter +\renewcommand{\sectionlinesformat}[4]{ + \Ifstr{#1}{section}{% + \parbox[t]{\linewidth}{% + \@hangfrom{\hskip #2#3}{#4}\par% + {\color{customcolor}\rule[\baselineskip]{\textwidth}{0.2mm}}% + }% + }{% + \@hangfrom{\hskip #2#3}{#4}% + }% +} +\makeatother + +\author{Tito Sacchi} +\title{Curriculum Vitae} +\date{\today} + +\newfontfamily\algsfamily{Alegreya Sans} +\newfontfamily\algscfamily{Alegreya Sans SC} +% \addtokomafont{title}{\algscfamily} +% \addtokomafont{author}{\algsfamily} +\addtokomafont{section}{\algscfamily} +\addtokomafont{subsection}{\sffamily} +\addtokomafont{subsubsection}{\sffamily} + +\colorlet{customcolor}{MidnightBlue} + +% Private information +\newcommand{\titosphone}{\texttt{REDACTED}} + +\begin{document} +% Header +{\algscfamily \huge {\color{customcolor}{Curriculum Vitae}}} +{\algscfamily \LARGE {\Large di} {\algscfamily{Tito Sacchi}}} +% {\algscfamily (conforme al modello EUROPASS)} +\\{\color{customcolor} \rule[\baselineskip]{\textwidth}{0.3mm}} +\vspace{-2.5\baselineskip} + +\section{Informazioni generali e contatti} +\vspace{-.5\baselineskip} +\begin{tabularx}{\textwidth}{ + >{\hsize=.20\hsize\linewidth=\hsize}X + >{\hsize=.30\hsize\linewidth=\hsize}X| + >{\hsize=.20\hsize\linewidth=\hsize}X + >{\hsize=.30\hsize\linewidth=\hsize}X + } + \textbf{\color{customcolor}{\sffamily Data di nascita}} +& 26/08/2004 +& \textbf{\color{customcolor}{\sffamily Nazionalit\`a}} +& Italiana \\ + \textbf{\color{customcolor}{\sffamily Sito web}} +& {\small \url{https://tilde.team/~tito}} +& \textbf{\color{customcolor}{\sffamily Cellulare}} +& \titosphone \\ + \textbf{\color{customcolor}{\sffamily Indirizzo e-mail}} +& \href{mailto:tito.sakki@gmail.com}{\texttt{\small tito.sakki@gmail.com}} +& \textbf{\color{customcolor}{\sffamily Chiave PGP}} +& \href{https://keys.openpgp.org/vks/v1/by-fingerprint/7CC99B02EB82D0C72CBC5AB86BED3002CF25C4D2}{\texttt{0x6BED3002CF25C4D2}} \\ + \textbf{\color{customcolor}{\sffamily Keybase}} +& \href{https://keybase.io/tauroh}{\textsf{tauroh}} +& \textbf{\color{customcolor}{\sffamily GitHub}} +& \href{https://github.com/jabberabbe}{\textsf{jabberabbe}} \\ +\end{tabularx} + +\section{Presentazione} +Frequento il liceo scientifico e nutro un forte interesse verso l'informatica -- +specialmente la sicurezza e la programmazione funzionale -- e la matematica. +Cerco opportunit\`a di svolgere stage presso aziende del settore nell'ambito del +progetto di alternanza scuola-lavoro (PCTO) previsto nel triennio della +formazione superiore. + +\section{Istruzione e formazione} +\begin{tabularx}{\textwidth}{p{0.2\textwidth}|l} +\textsf{09/2015 -- 06/2018} & +\makecell[Xt]{\hphantom{}% + {\usekomafont{subsection}Licenza di scuola media (secondaria di I grado)}\\ + \textit{Scuola superiore di I grado ``S. Boezio''}\\ + \\ + Indirizzo: Via C. Simonetta, 19, 27100 Pavia (Italia)\\ + \small{\url{https://icacerbi.edu.it/scuole-secondarie-i-grado/secondaria-boezio}}\\ + Voto finale: 10/10 con lode\\ + \vspace{0.5\baselineskip} +} \\ +\textsf{09/2018 -- Attuale} & +\makecell[Xt]{\hphantom{}% + {\usekomafont{subsection}Liceo scientifico (ammissione alla classe IV)}\\ + \textit{Liceo scientifico ``T. Taramelli''}\\ + \\ + Indirizzo: Via L. Mascheroni, 53, 27100 Pavia (Italia)\\ + \small{\url{https://www.istaramellifoscolo.edu.it}}\\ + Media attuale delle valutazioni: 9,5 +} \\ +\end{tabularx} + +\section{Competenze} +\subsubsection{Framework e linguaggi di programmazione} +Haskell; C/C++; Rust; Python; SQL; Assembly x86; Coq; Shell UNIX; JavaScript/React + +\subsubsection{Sysadmin} +Docker; systemd; server OpenVPN, WireGuard, NGINX, PostgreSQL; networking e firewall setup su Linux + +\subsubsection{DevOps} +Git; CI/CD; Docker + +\subsubsection{Software} +Wolfram Mathematica; MATLAB; Adobe Photoshop; QGIS/PostGIS; \LaTeX + +\section{Pubblicazioni} +\subsection{Lucciole d'Italia (lampyridae.it)} +\url{https://lampyridae.it} + +Progetto in compartecipazione con il prof. Giuseppe Camerini volto a documentare +la distribuzione e la biologia delle specie di lampiridi sul territorio +italiano, analogamente a quanto svolto in altri Paesi da associazioni analoghe. +Mi occupo della gestione tecnica e della creazione del sito web; ho partecipato +alla stesura dei testi divulgativi; alcune delle fotografie (artistiche e +documentative) pubblicate sul sito sono miei scatti. + +\subsection{Convex approximation of quantum channels} +\textit{Phys. Rev. A 96, 032311 (2017)}\\ +\href{https://doi.org/10.1103/PhysRevA.96.032311}{\textsf{DOI:10.1103/PhysRevA.96.032311}}\\ +Massimiliano F. Sacchi, Tito Sacchi. + +Ho collaborato alla pubblicazione di questo paper in Quantum Information. Mi +sono occupato dello sviluppo del software di ottimizzazione numerica utilizzando +Wolfram Mathematica come ambiente di calcolo. + +\subsection{Bounding the Classical Capacity of Multilevel Damping Quantum Channels} +\textit{Adv. Quantum Technol. 3, 2000013 (2020)}\\ +\href{https://doi.org/10.1002/qute.202000013}{\textsf{DOI:10.1002/qute.202000013}}\\ +Chiara Macchiavello, Massimiliano F. Sacchi, Tito Sacchi. + +Ho implementato l'algoritmo per il calcolo numerico della capacità di canale. Ho +utilizzato Haskell per il core di algebra lineare, con alcune funzioni in C +supportate dalla GNU Scientific Library. Ho interfacciato il software con +Wolfram Mathematica per ease-of-use da parte degli altri autori. + +\section{Progetti} +\subsection{CyberChallenge.IT 2021} +Ho partecipato al progetto \href{https://cyberchallenge.it}{CyberChallenge.IT} +proposto dal CINI nell'edizione del 2021, rivolto a studenti universitari e +delle superiori, presso il Politecnico di Milano. +Ho superato la fase di ammissione presso il Politecnico, che ha accolto 20 +studenti su oltre 400 candidati. +Ho quindi seguito le 72 ore di addestramento sino alla gara locale del +03/06/2021 (terzo classificato). + +Ho quindi preso parte alla squadra che ha rappresentato il Politecnico di Milano +alla finale nazionale a squadre del 07/07/2021. +Ho collaborato con i miei compagni di squadra nella programmazione dei tool che +abbiamo utilizzato e ho svolto il ruolo di sysadmin (mi sono occupato del +deployment su container e macchine virtuali degli strumenti e della configurazione della +rete). +La nostra squadra si \`e classificata quarta. + +CyberChallenge mi ha lasciato un acceso interesse verso le competizioni CTF, +a cui partecipo spesso con la squadra del Politecnico di Milano (Tower of +Hanoi). Mi piace particolarmente la sicurezza dei binari e la crittografia (per +il suo legame con l'algebra astratta). + +\subsection{Olimpiadi di Cybersecurity (prima edizione, 2021)} +In quanto studente delle scuole superiori partecipante a CyberChallenge.IT, sono +stato invitato a prendere parte il 12/06/2021 alla competizione nazionale della prima edizione +delle Olimpiadi di Cybersecurity organizzate dal CINI, classificandomi al +secondo posto (\url{https://olicyber.it/nazionale}). Questa prima edizione ha +coinvolto 182 istituti superiori federati e 1150 studenti. +La competizione ha avuto una forte risonanza mediatica con diffusione sulla +stampa nazionale% +\footnote{\url{https://www.wired.it/attualita/scuola/2021/06/15/cybersecurity-olimpiadi-italia-vincitori/}}% +\footnote{\url{https://www.repubblica.it/tecnologia/2021/06/15/news/olicyber_ecco_il_medagliere_delle_prime_olimpiadi_italiane_di_cybersicurezza-306190140/}}. + +\section{Hobby e interessi} +\subsection{Matematica} +Coltivo la passione per la matematica da quando ero bambino e sono da sempre +affascinato dall'astrazione e dalla deduzione formale. Progressivamente ho +adottato un metodo di studio sempre più rigoroso e sono riuscito a far +convergere matematica e computer science teorica avvicinandomi particolarmente +alla logica e ad aree di interesse molto astratte e vicine ad essa, come la +teoria delle categorie e la teoria dei tipi. Questi argomenti si legano +all'informatica poiché mostrano interessanti parallelismi con linguaggi +puramente funzionali di collocazione sia accademica sia applicativa come Haskell +e con proof assistant come Coq e Agda. + +Anche riguardo questi interessi più astratti mi piace imparare applicando: ho +sviluppato una parziale formalizzazione nel proof assistant Coq di alcune +strutture condivise tra teoria delle categorie e fisica introdotte inizialmente +da B. Coecke e S. Abramsky dell'Università di Oxford +(\href{https://doi.org/10.1109/LICS.2004.1319636}{\textsf{DOI:10.1109/LICS.2004.1319636}}) +e poi ampiamente estese da altri ricercatori negli anni +successivi. I miei file sono reperibili al repository +\url{https://github.com/jabberabbe/CatQM}. + +Faccio parte della squadra delle Olimpiadi della Matematica del mio Liceo sin dal +primo anno. Nei tre anni in cui ho partecipato ci siamo qualificati sempre alle +semifinali nazionali e nell'edizione 2020/2021 abbiamo preso parte alla finale a +squadre (36esimo posto). + +\subsection{Informatica} +Parallelamente alla matematica, da tempo mi dedico all'informatica da più punti +di vista, dalla gestione di un piccolo homelab e server personale alla CS +astratta. Ho dato il mio contributo al progetto open-source ShellCheck +(\url{https://github.com/koalaman/shellcheck}) e da poco ho iniziato a +collaborare allo sviluppo del compilatore Haskell +(\href{https://gitlab.haskell.org/ghc/ghc}{GHC}), sfruttando l'accogliente +community di contributor e mentor che circonda il progetto. Mi è sempre piaciuto +esplorare il funzionamento interno di ogni linguaggio, sistema operativo e +software che uso e per questo un'altra mia prospettiva, ora che sono stato +introdotto alla cybersecurity, è quella di partecipare a programmi di bug +bounty. + +\subsection{Musica} +Suono il pianoforte da oltre dieci anni e di recente ho iniziato a studiare la +chitarra elettrica, per ampliare il mio background di musicista classico. +Tra il repertorio classico ho una particolare preferenza per il periodo +romantico. + +\subsection{Sport} +Ho praticato nuoto agonistico per quattro stagioni (2015-2019) e sono salito sul +podio di svariate competizioni regionali con la mia squadra; ora pratico canoa a +livello amatoriale presso il Centro Universitario Sportivo di Pavia. + +\subsection{Fotografia} +Negli ultimi anni ho sviluppato un particolare interesse per la fotografia, sia +per lo scatto sul campo, sia per la post-produzione e l'editing digitale. +Ho una preferenza per la fotografia naturalistica; alcune delle mie foto, +scattate in Oltrep\`o, si possono trovare sul sito +\href{https://lampyridae.it}{\texttt{lampyridae.it}} che ho sviluppato insieme al mio +docente di scienze naturali. + +\end{document} diff --git a/index.html b/index.html index 485ce66..458f976 100644 --- a/index.html +++ b/index.html @@ -11,8 +11,11 @@

Write me at tito@tilde.team. You can - find some (hopefully) accurate contact information on the contact page. + find some (hopefully) accurate contact information on the + contact page. + A copy of my CV is available here (in + Italian). Some sensitive information is stripped; send me an email if you want + the complete file.


diff --git a/site.hs b/site.hs index 1bb8d6d..7f37885 100644 --- a/site.hs +++ b/site.hs @@ -2,7 +2,9 @@ {-# LANGUAGE OverloadedStrings #-} import Control.Monad.State import Hakyll +import System.Process import Text.Pandoc.Extensions +import System.FilePath import Text.Pandoc.Options main :: IO () @@ -20,7 +22,7 @@ main = hakyllWith config $ do tags <- buildTags "posts/*" (fromCapture "tags/*.html") match "index.html" $ do - route $ setExtension "html" + route $ idRoute compile $ do posts <- loadAll "posts/*" >>= recentFirst >>= pure . (take 5) let ctx = listField "posts" (postCtx tags) (pure posts) @@ -60,7 +62,7 @@ main = hakyllWith config $ do >>= relativizeUrls create ["posts.html"] $ do - route idRoute + route $ idRoute compile $ do posts <- loadAll "posts/*" >>= recentFirst let ctx = constField "title" "Posts" @@ -71,6 +73,21 @@ main = hakyllWith config $ do >>= loadAndApplyTemplate "templates/default.html" ctx >>= relativizeUrls + match "Tito_Sacchi_CV.tex" $ do + route $ setExtension "pdf" + compile $ getResourceBody >>= lualatex + +lualatex :: Item String -> Compiler (Item TmpFile) +lualatex texSource = do + TmpFile toplevel <- newTmpFile "tmp.tex" + unsafeCompiler $ do + writeFile toplevel $ itemBody texSource + void $ system $ unwords + [ "lualatex", "-halt-on-error" + , "-output-directory", takeDirectory toplevel + , toplevel, ">/dev/null", "2>&1"] + makeItem $ TmpFile $ toplevel `replaceExtension` "pdf" + config :: Configuration config = defaultConfiguration { deployCommand = "rsync -avP --delete \