Notes on work and on life, timestamped like telemetry. These entries are still drafts: the outline is here, the writing is next.
2026workdraftFighting the compiler for redundancy
The C compiler kept merging my redundant network copies. Tiny weight perturbations stopped it.
Outline
Why Triple Modular Redundancy needs three separate copies in memory
Finding out the compiler had deduplicated them
The perturbation workaround and how I checked it didn’t hurt accuracy
2022–2026lifedraftItalian, from zero to B1
Learning Italian while studying engineering in Turin.
Outline
Arriving without the language
What helped, what didn’t
The moment it started to feel normal
Oct 2024workdraftTaking over a stack that didn't drive
Becoming manager of H2 PolitO's autonomous driving software division and rebuilding the stack on ROS2.
Outline
The state of the software on day one
Deciding what to keep and what to rewrite
Running a 10-person team as a student
2021workdraftWriting an experiment proposal for DESY II
Leading a team in CERN's Beamline for Schools and writing our proposal for the DESY II beamline.
Outline
How the team formed
The experiment idea and what we wanted to measure
What writing a real proposal taught me
2019–2020lifedraftA year in the United States
An exchange year on a full scholarship from the U.S. Department of State's YES Program.
Outline
Getting selected for the YES Program
The host town, the school, the first weeks
What changed when I came back
Box 03 · Edge AI
Keeping neural networks reliable when bits flip
Edge AI Reliability Research Intern · Politecnico di Torino with STMicroelectronics · Jan – Apr 2026
Small neural networks now run directly on microcontrollers, including automotive-grade chips like ST's Stellar E. Out in the field, radiation or ageing can flip a bit in the stored weights and quietly change what the network answers. Our project added reliability checks and automatic hardening to ST Edge AI Core, the tool that turns a trained model into C code for the chip, so any developer can harden any model for whichever chip they choose.
Mean accuracy drop under faults3.30%→0.19%
Activity recognition network on the Stellar E, with its most critical layer protected by sTMR.
How it works
Modeltrained network
→
GenerateC code · stedgeai
→
Inject faultsbit flips in weights
→
Critical layeraccuracy drop per layer
→
HardensTMR or Clip
↺ back to generate, until the target is met · outlined steps were my part
Inject faults into the weights and measure how much accuracy each layer loses.
Protect the most critical layer: sTMR (three copies and a majority vote) or Clip (cap each activation at the largest value seen in normal use).
Generate the C code again and repeat the fault campaign to prove it worked.
Redrawn from Fig. 1 of the paper.
My part
The model side. I wrote the scripts that open up a trained model, rebuild its critical layer (three copies plus a voter, or bounded activations), and get the ST tool to generate bare-metal C code for the Stellar E from the result.
Automated model validation straight from raw NumPy validation data.
A Linux sidecar install that keeps legacy Python environments working alongside the tool.
The hard part
The ST tool is built to save memory. When it saw three identical copies of a layer, it merged them into one, which silently undid the redundancy. The fix was to nudge each copy's weights by a negligible amount, so the tool keeps three separate buffers, and then patch the generated C file so the copies are identical again.
peak 1.0 · bound 1.2
Illustration, not measured data. A bit flip turns one activation into a huge spike. Clip bounds it to the range the layer normally produces, so the spike never reaches the next layer.
Results
Mean accuracy drop under faults (lower is better)
Network
Version
Drop
Activity recognitionaccelerometer · 4 classes
Unprotected
3.30%
sTMR
0.19%
Clip
– no ReLU layers to clip
Hand posturetime-of-flight · 8 classes
Unprotected
2.01%
sTMR
0.24%
Clip
1.01%
Audio eventsaudio · 10 classes
Unprotected
2.23%
sTMR
0.97%
Clip
1.77%
sTMR gives the strongest protection but costs 1.5–2.8× memory. Clip halves the damage with no extra memory and only 1.004× execution time.
Data from Table II of the paper. Faults: stuck-at bits in the 16 most significant bits of the weights, sampled for 99% confidence and a 5% error margin.
Publication
An Edge AI Industrial Environment Supporting Reliability Assessment and EnhancementG. Vilar de Farias, A. Celik, J. E. Rodriguez Condia, D. Pau, M. Sonza Reorda · Second author · IEEE International Conference on Omni-layer Intelligent Systems (COINS) 2026IEEE XploreOpen version on IRISCode on GitHub
PythonCPyTorchKerasNumPyST Edge AI CoreStellar EsTMRClip
Box 04 · Embedded
ESP32 tools on the bench
Small M5Stack devices built around the ESP32. These are tools I make for myself: quick prototypes and raw sensor data, before any filtering.
Slot 01details pending
Device
What it measures
Why I built it
Code
Slot 02details pending
Device
What it measures
Why I built it
Code
Slot 03details pending
Device
What it measures
Why I built it
Code
Planned: one of these devices will stream a live reading from my desk onto this site.
Box 05 · H2PolitO
Bringing Juno's autonomous driving back to life
H2 PolitO, Politecnico di Torino student team · Autonomous driving division · Member Oct 2023 – Oct 2024 · Division manager Oct 2024 – Nov 2025
Juno is H2 PolitO's bioethanol-powered urban car. Our division's job is to make it drive itself in the Shell Eco-marathon autonomous driving category. When I took over, the division was two people and a stack that barely ran. A year later it had a full team and a system that works inside the car.
People in the division2→10
From when I took over to the end of my time as manager.
Camera latency45→32 ms
ZED 2i pipeline, ROS 1 → ROS 2, on the Jetson.
On board Juno during a test run: the steering wheel, the Jetson's screen and the track outside.
What I found
Everything ran on ROS 1, which was reaching end of life.
The CAN network was never stable, and most of the time we couldn't even SSH into the Jetson.
None of the libraries or models were up to date, so different parts failed all the time.
What we rebuilt
ZED 2istereo · depth · IMU
→
PerceptionYOLO · TensorRT · Jetson
→
Planningpath
→
Controlsteering · CAN
All nodes on ROS 2 · whole stack in Docker
Moved all 20 ROS 1 nodes to ROS 2, with lifecycle nodes and up-to-date libraries for the Jetson.
Built the system around a ZED 2i stereo camera instead of the old RealSense. It streams at 60 fps, and we use its depth and its internal motion sensors.
Ran object detection on the Jetson with TensorRT at half precision (FP16), after comparing YOLOv8 and YOLO12 models.
Packaged the whole stack in Docker, with a Git repository that test-builds automatically on a PC and on the Jetson.
Added the safety-pedal interface the Shell Eco-marathon rules now require.
My part
Making the system reliable and every part work together. I reviewed the members' work and guided how to approach each problem; some weeks that meant seven full days on the car. I also kept the division in step with the rest of the team, because Juno is built first for the fuel-economy challenges.
What I'm proudest of
The people. We recruited, everyone worked very hard, and together we built the whole system and integrated it into the car. The division is still growing, and the team now builds on it with GPS and LiDAR.
Trackside
The team with Juno in the Shell Eco-marathon paddock.Debugging from Juno's roof, next to the track.Getting Juno ready on track.In the pits.
Black and white to match the site; point at a photo, or tap it, to see it in colour.
Juno
Fuel
Bioethanol (combustion engine)
Chassis
Carbon-fibre monocoque
Empty mass
129 kg
Size
2880 × 1220 × 1170 mm
Results
Shell Eco-marathon, autonomous driving: 3rd place 2024 · 2025 run cut short by mechanical problems
The Juno you drive on this site steers with a kinematic bicycle model in the car park. When you click a bay, it parks itself along a smooth spline path, reversing out the same way.
ROS 2NVIDIA JetsonTensorRTYOLOZED 2iDockerCICAN
Box 06 · Race weekends
Race weekends
Competitions, hackathons and challenges, kept like a results sheet.
Pos
Event
Year
Entry
P3
Shell Eco-marathonAutonomous driving categoryTook part again in 2025; the run was cut short by mechanical problems. Juno in box 05
2024
H2 PolitO
P2
Best Hackathon by Reale MutuaHUDA: Hybrid Underwriting Approach with DNA AnalysisWrite-up below.
2024
Team of 4
FIN
FISU Torino Brainstorm ChallengeWrite-up pending.
—
Team finalist
PART
NASA Space Apps ChallengeWrite-up pending.
2023
Participant
LEAD
CERN Beamline for SchoolsWrote an experiment proposal for the DESY II beamline.
2021
Team lead
P = position · FIN = finalist · PART = participant
Best Hackathon by Reale Mutua · 2nd place · 2024
HUDA: Hybrid Underwriting Approach with DNA Analysis
A team of four, designing how an insurer could price policies more fairly by adding genetic data, collected only with explicit consent, to the usual risk features. Three models work together:
Supervised learning predicts how likely a customer is to file a claim.
Clustering groups customers into risk segments.
Reinforcement learning adjusts premiums as new data comes in.
Every premium comes with an explanation (explainable AI), and the design follows the GDPR rules for genetic data: explicit consent, collecting only what's needed, and the extra protection genetic data gets as sensitive personal data.
My part: a bit of everything. I worked on the machine learning design, the research and slides, and the data and GDPR side, and I pitched the project on stage.
Team 7 on the results screen.Presenting our project.