I am an NLP engineer at Artificialy, in Lugano. I work on the production side of large language models: making them cheaper to serve through quantization, post-training them for specific tasks, and building the evaluation that tells us whether any of it actually helped.
I got here from a small village in the south of Italy, through Politecnico di Milano, where I did my master's thesis in reinforcement learning with Professor Restelli, before RL became the thing everybody does for post-training. I am the kind of engineer who wants the basic building blocks solid before assembling anything on top, which is why I rebuilt GPT-2 from scratch on weekends instead of reading about it.
The funnier version streams token by token at cris96spa-latent-space.com, empowered by GPT-2 forward pass (PDF resume cannot do inference).
| field | value |
|---|---|
base_model |
decoder-only human, one attention head |
pretraining |
MSc in Computer Science & Engineering, Politecnico di Milano, cum laude |
fine_tuning |
production LLMs at Artificialy - quantization and inference runtimes (vLLM, TensorRT), SFT / DPO / GRPO, evaluation pipelines |
objective |
training-loss curves going down. I could watch them for the rest of my life |
temperature |
0 |
evals |
table football: SOTA. Dragon Ball: Sparking! Zero: ask Federico for a reference |
known_limitations |
red and green share an embedding. R is out of vocabulary |
| repo | what it is |
|---|---|
| latent-space | My site. Animates a real GPT-2 forward pass and streams my bio token by token. |
| LLMs-from-scratch | GPT-2 rebuilt from the tensor up - tokenizer, attention, training loop. Knowing why beats knowing that. |
| fyt | My girlfriend was running her thesis experiments in R. I hate R. The deal: she stops, I build her the framework. Here it is. |
| teleportMPD | Master's thesis: Teleport MDPs, a formal account of why curricula work in RL where sparse rewards leave vanilla PPO wandering. |
| hackapizza | 2nd place at Hackapizza 2025: a RAG agent that turns Galactic Federation food law into a knowledge graph, so nobody orders the illegal pizza. |
| LeetCode | NeetCode 250 in Python, with a progress table kept honest by a script, not by vibes. |
The rest lives in the repositories tab; the projects page has the director's cut.
stack:
daily: [python, pytorch, fastapi, pydantic, polars, uv, ruff]
llm: [transformers, vllm, tensorrt, langgraph, mlflow]
infra: [docker, gcp, aws, github-actions]
frontend: [react, typescript] # Claude wrote it. My CSS loss never converged
r: null # see fytlatent space · LinkedIn · email · resume
Written at temperature 0.



