Embedded Software Engineer in ST Microelectronics, site of Castelletto di Cornaredo (Milan area, Italy). My team is involved in the design, development and production of customized ASICs based on proprietary technology. These ASICs are targeted mainly toward industrial control, consumer electronics (smartphones, tablets), gaming (game consoles) and automotive (car radio).
I am currently developing part of the firmware of a Car Radio. The firmware is built to run on a CortexR4 processor. A CortexM3 is embedded on the same System-on-Chip (SoC) to provide support for the power management.
Previously, I was in charge of the development of bootrom, drivers and auxiliary FWs for a new SoC based on the CortexA53 processor and designed for gaming market. In this context I’m the reference for USB driver and the audio firmware. I was also part of the team charged of the design and development of power management firmware. Audio and power control are both build to run on a CortexM4 service processors.
I started in ST three years ago joining the silicon validation team. Here I was in charge of the tests on ARM processors (CortexA9), interconnect, memories and commercial IPs (USB, Ethernet, …).
In my field of activity, I work frequently in laboratory and I’m familiar with the common lab instruments. I’m also able to read schematics and gerber files, to propose changes and to perform reworks on pcb. I use hardware and software emulators (Mentor Veloce, ARM and IPs TLM models), RTL simulation (VSIM, Mentor Questa simulator), debugging tools (Lauterbach, J-Link).
I worked as Embedded Software engineer in Thales Alenia Space, site of Vimodrone (Milan area, Italy) in the ‘on-board computer and data handling’ division.
I had the responsibility of the low-level SW development process for satellite navigation computers in compliance to ECSS standards (SW criticality C and D). As specified, the activities ranged among the tasks of specification, design, implementation, integration, validation and documentation.
Some of the project in which I've been actively involved are here listed:
(ESA living planet programme). The site of Milan was in charge to develop the navigation and data-handling computers (prototypes and flight models) of the three satellites of SWARM program. My work was mainly related to the validation of low level SW and to the investigation on the HW issues arose during environmental and electrical test campaign.
(ESA robotic exploration of mars). I was involved in the development of the early european Mars rover. I worked on specifications and design of low-level software of the navigation coprocessor module.
In the scope of EXOMARS program, I worked also on the navigation and data handling computer of the descent module. I was in charge of the specification, design and development of the basic software (bootstrap and low-level handlers) and I was in charge of part of the design of HW/SW layer of the FPGAs.
- EPICA NEXT. I was involved in the validation process for the new flight SoC based on Leon3 processor (Sparc v8). Specifically I had the responsibility of the validation of Spacewire and RMAP interfaces accordingly to ESA ECSS requirements.
- TOPNET: study of the feasibility of the remote test of different parts of a satellite, to be done by means of SpaceWire busses emulated through intranet connections. This communication channel has been verified by the interconnection of three satellite units located respectively in Cannes, Toulouse and Milan. In the scope of this projects I developed the application SW of the unit located in Milan, implemented ‘bare-metal’ on a board equipped with an early EPICA NEXT prototype.
from October 2007 to December 2008: ALTRAN Italia - Software Engineer
I worked as consultant for Altran in the Thales Alenia Space company of Milan from which afterward I've been hired.
During this period I worked as SW engineer and I followed the development process of the ambedded flight software of satellite navigation computers.
from March 2006 to September 2007 : LSI Logic - Software Engineer
Embedded firmware developer for the consumer electronics division of LSI site of Agrate (Milan area, Italy). I was involved in the development of firmware for LSI SoC targeted to digital television market.
In LSI I’ve had the opportunity to work on several hi-tech projects based on HD DTV, in a multinational and multicultural environment.
I was in charge of the development of a middleware firmwares for digital TV decoders. The system was based on VxWorks and SPARC processor.
from Maj 2004 to March 2006: AP Systems - Software Engineer
APSystems is a italian company operating in telecommunication and information services.
I worked on analysis and development of software solutions for RF mobile systems GSM/GPRS used in applications like fleet-control, tele-command and tele-control.
My work mainly coped with specifications and feasibility studies, software design and development, prototyping (hw and sw) and customer assistance.
from July 2003 to April 2004: Municipality of Corbetta - military service
I attended the 10 months of civil service (mandatory for all the Italian male citizens) in the municipality of Corbetta.
car/bus driver, entertainer, office support, data entry, …
20.12.2002: master degree in Telecommunication engineering, oriented toward Signal and Image Processing, Politecnico of Milan with a final score of 91/100.
1996: High School Diploma in Electronic and Telecommunication Technologies at ITIS Alessandrini of Vittuone (MI, Italy), with a final score of 56/60.
Thesys “Multi-Interferogram Slope Estimation”, concerning the development of a quickand-reliable algorithm for the estimation of local frequency from several SAR RADARs images. It was finalized to obtain a 3D model of the observed area and wanted to be a ‘light’ alternative to the well known estimation processes (like the ones based on Interferogram). It was entirely developed in C and tested with the aids of MATLAB.
“Regolarizzation and Preconditioning applied to Tomografic data”, developed in MATLAB during “Remote metering and Electromagnetic Diagnostic” course.
Utility Image Elaboration Plug-in developed in Java for image processing, for “Image Processing and Transmition” course.
Development of a quick filter that enfatize the presence of metal pipes in the ground on GPR (Ground Penetration Radar) real and simulated data. Code has been developed using MATLAB for the interface and C for the core, “RADAR Teory”.
Italian: mother tongue
English: good written and spoken.
French: base knowledge.
German: poor (attended a first level course)
SPARC processors (v7 and v8): ERC32, Leon2, Leon3, EpicaNext, all used extensively in space applications;
ARMv7 and ARMv8 processors: CortexA9 (dual-core), CortexA53 (quad-core), CortexR4, CortexM3, CortexM4.
(embedded): RTEMS, FreeRTOS, T-Kernel, VxWorks, (host): Windows, Linux, Dos
C/C++, SPARC Assembler (v7 and v8), ARMv7 and ARMv8 Assembler, ADA, Matlab/Octave, VHDL, Verilog, python.
IDEs (like Eclipse, VisualStudio (6, .NET) and other text editors), StarUML, Artisan Studio, IBM Rational Test Realtime, IBM Rational Doors, IBM Rational Rhapsody, Cygwin, Mingw
cvs, git, svn (TortoiseSVN), IBM Rational ClearCase
gnu toolchain (gcc, ld, ar, …), arm toolchain (armcc, ..)
(ARM) AMBA bus, SpaceWire (& RMAP), MIL-STD-1553b, Ethernet (G-MII/RMII/RGMII/SMII), CAN, USB, memory I/F and controllers (SRAM & FLASH) and other.
Mentor Veloce Emulation, Mentor Questa, VSIM, and proprietary SoC simulator based on SystemC TLM models.
Common laboratory instruments (multimeter, oscilloscope, logic state analyzer, …), debuggers (Lauterbach, SEGGER J-Link)
EXTRA PROFESSIONAL ACTIVITIES & HOBBIES
Volunteering (ambulance first aid rescuer), mountainbike, hiking, travels, reading