Curriculum Vitae

 

Profile

Applications Software Engineer, with experience in Mobile Development (Symbian, Android and iOS with live Apps) and Embedded Systems (Middleware, libraries and Application layers), gained in 14 years of industry. Programming skills for various operating systems with RT requirements including Embedded Linux with C/C++ and Python, using different development boards (like Beagle Board, Raspberry Pi) and covering every aspect of Software Development life cycle, from prototype to product.

 

Areas of Expertise

Skills on embedded systems:

C, C++ and Python; embedded Linux

Mobile Development:

Android and iOS (live apps); Symbian

Working experience with:

bash, Makefiles, PHP, MySQL, eCos, MQX

Bluetooth 4.0 (BLE); GPS/AGPS; UML

Development Tools:

Code repositories: cvs, svn, mercurial, git

Debugging: gdb, Lauterbach, arm-MultiICE

Bug tracking: bugzilla, mantis, clear case

IDEs: Eclipse, CodeWarrior, IAR, MS Visual Studio, XCode

Code Analyser: Coverity Prevent

Code Review: Crucible

 


Employment History


 

AGORA SecureWare, Manno, Switzerland

Position: Mobile Developer

Dates: May 2014 - present

Enhancing and maintaining existing iPad application; design and development of newer version; creation of a library to store data on device with encryption.


Cambridge Silicon Radio, Cambridge, UK

Position: Android BLE consultant

Dates: October 2013 - May 2015

Porting of a BLE proximity/positioning library from iOS to Android, using Java and C++ (NDK);
taking care of security and encryption functionalities, test cases and writing demo Android
applications. BLE beacons were from CSR and through the library it was possible to configure them in different ways, including with encryption.


Plastic Logic, Cambridge, UK

Position: Embedded Software Consultant

Dates: August - October 2013

Linux embedded C development on BeagleBone boards, to drive demo and tests on Plastic Logic displays.


Qualcomm, Cambridge - UK

Position: Mobile Learning Tech Specialist

Dates: March 2013 - now

 

Design and development of an iOS application to guide the user through the Qualcomm museum of San Diego in both scenarios: when on site (with the help of Bluetooth Low Energy devices to establish the positioning and propose dynamically contents) and off site. UX team provided guidelines for graphics therefore I had to code all customized widgets rather than using standard ones.

Beacons used where from Qualcomm. The museum had a particular shape therefore the signal from beacons was not regular, so I had to do a calibration app which would gather data and send me logs, so that I could fine tune the application behaviour remotely.


Novalia Ltd, Cambridge - UK

Position: Lead Software Engineer

Dates: August 2011 - February 2013

 

Organisation and introduction of software development process (including code repository and Wiki documentation), acting as Team Leader (Scrum Master) to interface with top management and ensure high quality and on-time deliverables.

Designed and implemented solutions to connect and bring to life Novalia's posters into internet.

Various platforms development including embedded C for Bluetooth Low Energy, Python applications on Linux (BeagleBoards, Raspberry Pi and PC), iOS, Android and Web (PHP and MySQL) and other research platforms as Freescale with MQX RTOS.

Study of use case scenarios, requirements formulation and active participation on hardware and tools selections to implement final solution.

 


Polatis, Cambridge - UK

Position: Senior Embedded Software Engineer

Dates: October 2010 -  August 2011

Improving existing software running into Polatis Optical Network Switches and porting  it from eCos into an embedded Linux ARM board.
Caring of multiple platforms building process (Makefiles to support Linux PC and Arm, Cygwin, Ecos) .
Working on boot loader customisation (RedBoot), building of customised kernel and file system for Linux embedded.
Refactoring of existing Switch simulator for Linux and Windows PC (wxWidgets in C++).
Occasional debugging of Microwindows based tools; creation of Python testing scripts and help on improving efficiency and software process (as with distribute compilation, virtualisation and set up of Mantis).


Airvana, Cambridge - UK

Position: Senior Software Engineer

Dates: July 2008 - August 2010

Implementing software for Airvana UMTS Femtocell, giving assistance to test team and field engineers. Dealing with system team concerning specifications. Mentoring of trainees.

Main responsibilities:

* Quality of Service - using WindRiver Interpeak stack under uClinux and Linux IP stack for ARM.

* Service API – Design and implementation of APIs to be used through UDP sockets to interact with the femtocell from a remote location.

* Test Suite development for Service API - Design and implementation of a Python test suite.

* Automatic code generation – scripting to auto-generate C++ code from XML data models.

 


NemeriX, Cambridge - UK

Position: Senior Application Software Engineer

Dates: May 2006 - July 2008

Porting of NemeriX GPS hosted solution software framework into demo target and customer platforms. Creation of bridge layers (providing interfaces to OS typical functionalities and to comms), optimizing the CPU for low power management and memory footprint.

Giving assistance to FAE and working with customer providing support to build applications on top of NemeriX framework. Project manager activities.

Main projects:

* Symbian 9.1, S60 3rd Edition – framework porting and interface to NemeriX GPS chip via Bluetooth (using Nokia N80);

* Linux (PC) – using POSIX and SystemV libraries, framework porting and interface to GPS via serial coms. Creation of a Live CD for FAE to demonstrate our software.

* Linux OMAP board (OSK 5912);

* eCos RTOS – customer device (ARM9) and customer driven project – aside development work, covered also the project management and customer technical assistance roles;

* SDK building and scripting for automatic SDK generation (using Python) of GPS Hosted Solution SW for WinCE, WinXP, eCos portings.

 


Nokia Research Centre, Helsinki - FIN

Position: Research Software Engineer

Dates: January 2001 - April 2006

Researcher in Software Application Technology Lab. Most relevant projects worked on:

* Port of Python for the S60 platform: Symbian C++ programming and Python internals. Contribution to the interpreter port and responsibility role for the design and implementation of extension modules (database connectivity, messaging, sockets including Bluetooth and UI framework and widgets). More details about this project can be found at: http://sourceforge.net/projects/pys60/

* Python for S60 test suite: design and implementation of Python scripts for testing run time environment and modules;

* Building of distributed phone book application prototype: J2ME MIDP2 design and programming for Symbian S60/S80.

* Eclipse IDE integration with Symbian SDK and porting of S60 emulator to Linux: Project Manager role.

 


Education


 

April 2000: Bachelor degree in Computer Science at the Universita' degli Studi di Camerino (MC - Italy), graduated with final score of 70/70 (seventy out of seventy).

Final Thesis: “A Java interpreter for a rules language to transform XML data”.
It consists of design and development of an interpreter (written in JavaCC) for a new language able to perform operations between relational databases (SQL) and XML documents.