Pietro Mele

Software developer / R&D

Mobile: +44.(0)752.6683.493 (U.K.), +39.328.8316515 (Italy)

pietrom16 at googlemail dot com
www.geocities.com/pietromele

Nationality: Italian
Marital Status: married
Current location: Abingdon, Oxfordshire, U.K.


Profile

Experienced and highly skilled C++ software developer. I am particularly interested in software for technical/scientific applications, also in a research and development environment. I like to follow the life of a project in all its phases, from analysis and design to development and testing. I am developing a modular spiking neural network in C++.


Technical Skills


- C/C++, Standard C++, STL (10 years)
- QT, OpenGL (VBOs), Boost (1 year)
- UML modeling, Object-Oriented analysis and design (6 years)
- Numerical methods, simulation
- Neural Networks, Spiking Neural Networks, Genetic Algorithms, Wavelets (8 years)
- SQL, PL/SQL, E-R (Entity Relationship) diagrams (2 years)
- UNIX (Linux, HP-UX, Solaris) (8 years), Windows
- Real Time: VxWorks/Tornado (1 year)
- IDEs: MS Visual C++, KDevelop, Source-Navigator, DDD
- Web: XHTML, XML, JavaScript, Quanta+, Nvu, Plone (3 years)
- Theoretical knowledge: Java, CORBA, Assembler, Forth, LISP, Prolog
- Others: gnuplot scripts


Interests

Simulation of neural networks and computational fluid dynamics, and coupling of these programs with databases. I am particularly interested in modular neural networks and in their "development" using genetic algorithms to model their structure. I used “wavelets” for pattern recognition simulating the way the brain performs the same task. Actually I am developing a project that simulates a network of “spiking neurons”, structured in layers and cortical columns.

Previously (I was 17 years old) I wrote a program to simulate fluid dynamics, making a mixture of finite differences and finite elements. In the same period I got interested in 3D vector graphics and I wrote a simple CAD program.

Please, go to my web site for details.


Lectures

- Siemens (Milan): “Overview of Spiking Neuron Models”, 2006
- Computer Science Department, University of Milano:
      - “Spiking Neurons and Learning Algorithms”, 2004, for the research staff.
      - “Introduction to Spiking Neurons”, 2004, for the “Intelligent Systems” course.
- “Introduction to the UML Modeling Language”, 2002.
- Italian National Research Council (CNR): “Modular Neural Networks and their Genetic Development”, 1998.


Professional Experiences

March 2008 - ANSYS, Inc. (U.K.) Software developer

Software development for the company's CAD/CAE/CFD products (C++, OpenGL, multiplatform).

January 2006 - January 2008 Siemens (Italy) Software developer

Software development for a BTS (Base Transceiver Station) simulator in the GSM network (C++/UML/Unix).
Design and development of a tool to decode the error messages generated by a set of hardware modules, with a multiplatform user interface (C++, Unix, Windows, XHTML, XForms).
Reverse engineering of a software package to write the documentation (C#, UML, Visual Paradigm).

May 2001 - December 2005 AISoftw@re S.p.A. Software developer

Software development in the medical field to manage images from devices such as Magnetic Resonance Imaging and Computed Tomography (C++/Unix/Linux/Windows).
Storage and retrieval of these images on data bases (SQL, Oracle, InterBase), and their analysis and interpretation using Haar wavelets.
Design of the company's web portal using the Plone package.
Software refactoring and UML modeling of the company's main package (Objecteering).

January 1997 - April 2001 Consultant Software developer

- ENEL (Italian main electrical power company): extension of the “Unified Clients Database” for the organization of the data about the 30 million customers of the company (PL/SQL, Oracle, Unix).
- LABEN S.p.A. (Alenia group): project commissioned by ESA (European Space Agency). Design of software for the International Space Station. In particular I developed a logger which has to manage the messages generated by the different sub-units of the ISS in a real-time environment (C/VxWorks/Unix/Solaris).
- Development of two computer programs for Gucci and Core Labs (a British company that operates in the oil field) using neural networks and “wavelets”. This software had to isolate parts of the soil or parts of a piece of leather on the basis of the observed texture, doing it with the same algorithm adapted to different training sets (C++/Unix/Windows).
- I developed software for the GSM network for Italtel and Siemens to perform automatic black-box testing of the BSD units.
- In Compaq I joined the CFMS (Compaq Fraud Management System) group.
- Design of a database to manage a small private hospital.


Education


University of Milano: Bachelor Degree in Computer Science; mark: 63/70 (2001)
   Thesis: “Analysis and Development of a Modular Neural Network based on "Mixture of Experts", and Comparison with Boosting Algorithms”.

High School: Scientific Lyceum; mark: 54/60


Foreign languages


- Italian: first language.
- English: fluent (both spoken and written).


Other Information

- Ready to move around Italy and abroad.


Details about my personal projects

CFD

At the age of 17, I had the chance to attend a flight course kept by the Italian Air Force. It was both theorical and practical, and after passing an exam I had the opportunity to fly a SIAI-Marchetti S208M airplane. That experience made me interested in flight dynamics, and, having just bought a computer, I started to study computational fluid dynamics and I developed a program (called CFD) that simulates the behaviour of air moving around an object.
At first I used the Euler's equations, and I noticed that the simulation was good for the first iterations, but then diverged no matter how small the time step was. Just a few years later, at the university, I found the reason of that behaviour: I had to use an implicit method instead of the intuitive, single step explicit method I used.
Later I developed a new version of my program, this time following a more conservative path, solving the potential equation.
(Pascal, MS-DOS)

Neuro

At the end of the '90s, I turned my attention at artificial intelligence, and taking a look at the connectionist and at the symbolic approaches, I choosed the first one.
While studying at the university, I started to develop my first program in this field: a neural network based on the Back-Propagation algorithm (Neuro1). As my interest kept growing, I wrote a program to simulate a modular neural network based on the “Mixture of Experts” algorithm (Neuro2), the subject of my thesis at the university.
As a next step, I wanted to get closer to the way real neurons work, keeping in consideration the computational costs involved; so I decided to adopt the Spiking Neuron Model (Neuro3).
This project is still under development. I divided it into a set of blocks, each of which represents a different level of detail. The lower level includes neurons, synapses, spikes, and the equations that control them; this is complete. The level above deals with neuron layers and cortical columns, and this is what I am working on right now. Next, at the highest level, I will divide the system into three components, that will use supervised, reinforcement and unsupervised learning, to simulate the behaviour of the cerebellum, the basal ganglia and the cortex, respectively. Then I will use a genetic algorithm to make some aspects of the structure evolve.
(Standard C++, QT, OpenGL, XHTML, JavaScript, XML, gnuplot, Tulip)



.
Hosted by www.Geocities.ws

1