Curriculum Vitae

I reached the moon, I spoke too soon...

Personal Information:

Name: Mario Torre

Date of Birth:  1975-09-13 (ISO 8601 format)

Place of birth: Salerno, Italy.

Current Contact Information:

Mario Torre, Rue Verte, 9, 1205 Genèeve, Switzerland. Tel: +41 767 144744. Email: neugens [DOT] limasoftware [AT] gmail [DOT] com ([stuff] is my wild goose chase at reducing spam...)

PGP Key ID: 80F240CF (http://subkeys.pgp.net/) - Fingerprint: BA39 9666 94EC 8B73 27FA  FC7C 4086 63E3 80F2 40CF

Other resources

http://www.linkedin.com/in/neugens

Education

I Studied Computer Science in University of Salerno, I manage to arrive to the very last exams, but never finished so far... maybe one day.

I have a "Master Breve in Cultura Di Impresa", A master in Enterpise Management from the Bocconi University, Milan.

High School in Salerno, Liceo Scientifico Statale F. Severi.

Skills

Languages (non programming): Italian (mother language) and English, very good both written and oral, and currently daily used at work and in life as my primary language (yes, I do have Italian accent, but it's not so strong). I'm learning German, and understand Spanish and Portugues (I can read and understand Portugues better than Spanish, and have short conversations, but I don't do much training so people have to speak very slow with me).

Languages (programming): I Actively program in C, and have knowledge Python and bash scripting. I prefer tools like CMake, Scons and ant over Makefiles and Configure, especially when those tools are intended to be used in a very controlled build environment: I believe is a matter of sanity to use the correct tool for the correct task. I very actively program in Java, in fact my daily job since some years now is to develop the java class library (see expereinces for details), I also have experiences in Midlet and Xlet programming; although J2ME is not any more directly my area of expertise (but I developed quite few thing and a library that, although not maintained, is still quite useful: https://limamobilelibrary.dev.java.net/),  I'm still working on many of the hidden details, as I'm developing for my company various clean room implementations for JSRs (including the CDC and the Personal Basis Profile, as well as all the related JSRs). I also have experiences with OpenGL (2.x and 3.2) and OpenGL ES (1.x and 2.0) and graphics programming concepts in general. I'm interested in functional programming languages like Scala, Haskell and especially Clojure,  which looks very clean and nice, but I honestly don't have much experiences with them yet.

Operating Systems: GNU/Linux and other Unix variants, VxWorks, and other strange OS. At aicas GmbH, I'm responsible and maintainer for the QNX port of our Target Native Layer (including Graphics). I do have passive knowledge of MacOS (will develop more skills here as soon as my new Mac arrives :), very passive knowledge on MS Windows. There are many good expert on this out there, I don't usually develop software on Windows and I'm not really interested in that; although of course at times I need to give up this freedom, I avoid whenever I can, or try to set smart workaroundto help in the time consuming task or using Windows for anything serious. If you are considering to contact me for a job offer, please consider also that Windows is way more expensive than any other OS, and please, don't ask me to use the Windows shell for any reason! :)

Environment: Standard GNU/Unix tools, GCC, Make, vi (But I'm an Emacs user when I don't use NetBeans), ant, Eclipse, NetBeans, CVS, Mercurial, SVN, Bugzilla... you can add more, I use all the standard Unix tools after all, and I am confident in learning new stuff as I need. I have experience of plugin programming for Eclipse and ant (namely, ant tasks).

Team Roles: I did pretty much all the team roles; the two most common are Programmer and Senior Software Engineer, Project Manager for at least two important projects. I have organised task for students and trainees, and I'm Mentoring for the Google Summer Of Code. I am maintainer of the IcedRobot project.

Social and Hobbies: I always dream to be able to maintain a blog about Cell BE and Playstation 3, where to add information about parallel and multiprocessor programming; I really think the future of computing is in the mix of general and special purpose processor, like the Cell BE or the programmable GPUs (nVidia CUDA and OpenCL are the way to go, they should  still make it a bit easier for the average programmer in my opinion). The problem is that I don't have the time I was hoping for this project, so scattered entries are more often than not located on my "real" blog at http://jroller.com/neugens/, where I speak about everything, not just programming (most of the time, it's about life in fact).

I am a very active contributor to the FLOSS universe, as you can read in the Experiences section below. I work in strict contact with the various communities, from Fedora (contributing bug fixes, ideas and spreading the Distribution as much as I can) to specific projects, especially the Java related ones (OpenJDK and GNU Classpath above all). I understand very well the importance of the relationship with the various Communities and even if it's not an official task, is part of my daily job to contribute patches upstream, signal problems, help with find solution, because it's in the best interest of all the parties involved (and it's a lot of fun!).

Life: I'm not married yet, but I love my beautiful, sweet fiancé :)

Experiences

Worked for various different companies and organisations in small and large project teams. I like to move between projects or switch roles on the same project. This gives me a good overview of the organisation I am working for and the product that has to be delivered. I work on many really large projects, like OpenJDK and GNU Classpath. I'm not scared to learn new things or to touch very difficult and unknown areas. I work well in teams and I usually bring some of the famous Italian style in the place of work :) 

  • 2011-01
Java Architect at JPMorgan Chase, Geneva
Java Architect at JPMorgan Chase, Geneva.
  • 2011-03-24
DroidCon.de: Present the IcedRobot at the DroidCon Berlin.
    • 2011-02-05
    FOSDEM 11: Present the IcedRobot project, a project to bring the Android framework and to
    execute Android compiled application under OpenJDK.
    • 2010-12
    Maintainer of the IcedRobot project.
    • 2010-05 - 2010-12
    Responsible for the AWT and Graphics pipelines in the aicas implementation of the CDC and Personal Basis Profile specification.
    I was responsible to create the OpenGL and OpenKODE based drawing and rasterizing pipelines as well as a pure Java based rasterizer for BufferedImages.
    Part of the task was to produce Java bindings for OpenKODE, port Jogl and a subset of the jsr239 to the target operating system (a custom QNX 6.4.1 and 6.5.0).
    • 2010-08
    Partial port of OpenJDK class library code to CDC and PBP specification. We used a mix of OpenJDK and GNU Classpath code.
    • 2010-07
    Port LWUIT on CDC plus Personal Based Profile VM. Part of the task was to improve the LWUIT code to take advantage of hardware acceleration of our OpenGL graphics pipeline.
    • 2010-06
    Initial implementation of the XletManager interface for the PBP and JavaTV specifications.
    • 2010-05
    Selected as "Birds of a Feather" speaker at Java One 2010, for the second consecutive year, with the presentation "Graphics Stack Unleashed: a walkthrough to port AWT and Swing in a Tight Economy" held in San Francisco, on Sept. 21th. Although the subject is similar to last year, this presentation was more involved with the specific, practical, aspects. We have discussed many things that are critical for the Embedded Market (but not only), especially in this period of general economical crisis.
    • 2010-01
    Port of AWT and Swing on Microware OS9  (http://jroller.com/neugens/entry/os9_s published on March 2010)
    • 2009-10
    • 2009-02-27
    Selected as "Birds of a Feather" speaker at Java One 2009, with the presentation "A Lightweight Approach to Port JDK(TM) Software GUI Library to Unsupported Mobile/Desktop Devices", held in San Francisco on 2nd of June 2009.
    • 2009-02-07 -  2009-02-09
    FOSDEM 09: Presentation about one year of development fo the Caciocavallo project: http://www.fosdem.org/2009/schedule/events/java_caciocavallo. You can find slides here:
    http://www.limasoftware.net/neugens/downloads/classpath/caciocavallo/Cacio_Presentation_2.pdf
    • 2008-09-29
    OpenJDK Innovators' challenge 2008.
    Classified 3th with the Caciocavallo project: http://www.sun.com/aboutsun/pr/2008-09/sunflash.20080929.3.xml
    The project is about implementing, and refactoring the existing implementation, the AWT Peer code in OpenJDK so that it can be easily ported to other platforms, with minimal code rewriting. The project was already successfully used in production  to implement new graphics peers that use the DirectFB toolkit, the WindML toolkit and a minimal subset of the X11 xlib API.
    • 2008-03-10 - Current 
    aicas GmbH, Software Engineer, various roles.
    I am maintainer of internally used libraries like Escher (http://escher.sf.net) and the Escher peers from GNU Classpath (http://www.classapth.org), I worked to port Jogl, the OpenGL bindings for Java (https://jogl.dev.java.net/) to other peers in both Classpath and OpenJDK, and to other Operating Systems, like VxWorks. I am responsible for the implementation of the GLX protocol in Escher.
    I also co-maintain patchsets for back contribution between the JamaicaVM (main aicas GmbH product) and the GNU Classpath and OpenJDK projects.
    I co-managed the OpenJDK Challenge project (code name Caciocavallo: http://openjdk.java.net/project/caciocavallo/).
    I am responsible for all the currently implemented Graphics Peers used internally, like the LibSDL and the QNX GF ports.
    I am helping restructuring the internal process for building and testing software, as well as the introduction of Mercurial as a Source Management System, giving presentations and helping other developers to get used to the new system.
    Finally, I'm responsible for Students and Trainees.
    • 2008-02-23 - 2008-02-24
    FOSDEM 2008, Bruxelles, aicas GmbH, Free Software Foundation, GNU Classpath, Sun and Others.
    Presentation for Free Java event, Cool Stuff section, http://wiki.debian.org/Java/DevJam/2008/Fosdem.
    • 2007-10-15 - 2007-11-01
    GNU Classpath - Free Software Foundation, Red Hat and Others, Open Source Project.
    Port to IcedTea and OpenJDK the GConf backend initially developed for the GNU Classpath project.
    •  2007-04-01 - 2007-10-05
    GNU Classpath - Free Software Foundation, Google Inc., Open Source Project.
    Develop javax.sound providers based on the GStreamer framework. This task was part of the Google Summer of Code 2007.
    •  2007-02-01 - 2007-04-01
    GNU Classpath - Free Software Foundation, Open Source Project.
    Developer for the new, more robust and efficient DecimalFormat Class, used byt the java.util.text package and by the Swing code to format decimal numbers. 
    •  2007-01-01 - 2007-02-xx
    GNU Classpath - Free Software Foundation, Open Source Project.
    Developer and maintainer for the Desktop API, which let application programmers to call Desktop specific applications seamlessly by Java application. Also ported the peer to OpenJDK.
    •  2006-06-xx - 2007-12-31
    GNU Classpath - Free Software Foundation, Open Source Project.
    Developer and Mantainer of the GConf based Preference backend for Java.
    The project was peer reviewed and was really useful to develop the ability to communicate with different people. I've learned how to ask and react to feedback in a large, community based, project.

    •  2007-11-01 - 2007-10-05
    Public Administration, Free Lance.
    Develop a plan to integrate GNU Linux and FLOSS software in the Public Administration.The job, done under a collaborative basis, was an attempt to introduce FLOSS software in the PA. As a result, I did a series of conferences about the subject.
    •  2006-06-xx - 2006-12-xx
    TTN Trasporti s.rl. - Chief of IT Data Center and System Administration.
    Develop and deploy Customer Relationship Management software.
    •  2006-06-xx - 2006-12-xx
    TTN Trasporti s.rl. - Chief of IT Data Center and System Administration.
    System Administration, setup, configuration and tuning of resources (MySQL, PostgreSQL, Apache, Sendmail), with several installations of Red Hat Linux ES 4.
    • 2006-09-xx
    CNR, Istituto Scientifico di Alimentazione, Avellino, Italy,  System Administration.
    Install, configure and deploy Red Hat Linux ES 4 on server computers at CNR, Istituto Scientifico di Alimentazione. Service configuration includes Samba, Firewall, Apache Web Server, basic SeLinux policy update, Hardware Raid management (convertion from Raid 5 to Raid 0 on a running system).2005 - 05/07/2005
    • 2005-06 - 2005-07
    Planet CCRMA - Open Source Project.
    I've helped the switch from a Fedora core 3 based based distribution to a Fedora core 4 based distribution, fixing compiler problems and testing software.
    • 2005-xx-xx - 2007-xx-xx
    Writer and Technical Writer, various on line magazine, and http://www.losfoglio.it
    Contribute Articles for OnLine Journal. The articles usually focuses to the Free/Open Source World, in particoular to the OLPC project and the introduction of Linux in the Public Administration.
    •  2001-xx-xx - 2002
    IT Consultant, Public Image, Nocera.
    Develop and Deploy an eCommerce Application based on Java, Struts and Web Services.
    •  2001-xx-xx - 2002
    IT Consultant, Public Image, Nocera.
    LimaPHP was an old project to build a web application for ECommerce. The project is now dead, but the engine we developed is still used as a template engine for some web sites.
    • 1998 - 2004
    Employee Supervisor, Rent Management Show, Nocera. 
    Employee Supervisor for Rent Management Show, Audio Service.