Curriculum Vitæ
(updated on February 2017)

Altamore Michelangelo

Name: Michelangelo
Surname: Altamore

Place, Date of Birth:
Catania (Italy), February 9th, 1978

Emailmichelangelo@altamore.org
Mobile+39 320 948 66 63

Job profile description

Mobile developer over many platforms.

Summary

I received a five-year bachelor's degree in Computer Science in 2006. Since then I am working as a consultant for private corporations providing software development in fields such as telecommunications, mass retail and medical clinics.

I currently hold the role of iOS software developer for an agile team that adopts SCRUM methodology since early 2015. I have experience of other mobile platforms (Android, Windows Phone, BlackBerry) as well as on frontend web development.

I have a strong interest in the latest technological advancements of statically typed programming languages (Kotlin, Java 8, Swift 3), dynamic ones (Ruby, Javascript), programming paradigms (Object Oriented/Functional) and methodological approaches as Functional Reactive Programming (RxJava, RxSwift). Also, I became interested in the automation of processes, implementing an automated system for the build, deployment of software artifacts and server provisioning (Jenkins, Artifactory, Maven, Gradle, Scripting, Puppet, Vagrant).

Skills

Programming paradigms: Object Oriented, Functional

Programming languages: Kotlin, Java, Swift, Objective-C, C, C#, Ruby, Javascript

Frameworks: RxKotlin, RxJava, RxSwift, RxJs

Web stacks: Ruby on Rails, Node.js

Databases: Postgres, Redis, SQlite, MySQL, SQL Server, DB2 UDB

Version Control Systems: Git, Git-SVN, SVN

Platforms: Android, iOS, Windows Phone, MacOS X, Linux, Windows

Web/Application server: NGINX, Apache

Professional experiences

Period: 8-2016 – ongoing
Experience: Native iOS application development targeted at consumer market
Role: Mobile application developer
Client: Telecom Italia Lab
Objectives: Implementation of an iOS application that allows the user to set a secret PIN on a SIM, that can be associated to a credit card to access and/or purchase services offered by partners of Telecom Italia
Description: Development of a smartphone application that provides recognition services (SPID) based on SIM to access third party services: gain access to public administration services or payment for goods/services of business partners. The application provides other ancillary services (purchase of bus tickets and parking) and is also able to capture and virtualize loyalty cards
Technologies: Swift, RxSwift, iOS, Alamofire, Xcode, CocoaPods
Period: 1-2016 – 8-2016
Experience: Native android application development targeted at consumer market
Role: Mobile application developer
Client: Telecom Italia Lab
Objectives: Implementation of an Android application that allows the user to set a secret PIN on a SIM, that can be associated to a credit card to access and/or purchase services offered by partners of Telecom Italia
Description: Development of a smartphone application that provides recognition services (SPID) based on SIM to access third party services: gain access to public administration services or payment for goods/services of business partners. The application provides other ancillary services (purchase of bus tickets and parking) and is also able to capture and virtualize loyalty cards
Technologies: RxJava, EventBus, Retrofit, Java, Android Studio, Android
Period: 11-2015 – 12-2015
Experience: Development of a desktop application for acquiring identification token to be transferred via API after verification
Role: Desktop application developer
Client: Telecom Italia Lab
Objectives: Release an identification turnkey solution SDK to a third party
Description: Implementation of a Desktop PC application able to get an identification token via WebCam (QrCode) or a PC/SC NFC reader, check such token with a REST call and invoke user-customizable callback API
Technologies: Java, Swing/Awt
Period: 11-2015
Experience: Development of a desktop application for acquiring identification token to be transmitted to a USB Smartcard device equipped with an NFC interface
Role: Desktop application developer
Client: Telecom Italia Lab
Objectives: Implementation of a Desktop PC application that can receive tokens to be transferred to an USB SmartCard device equipped with an NFC interface
Description: Desktop PC application able to receive identification tokens via OpenID Mobile Connect and transfer them onto a USB device equipped with an NFC Smartcard interface capable of transmitting such tokens in HCE mode
Technologies: Java, JavaFx
Period: 10-2015 – 11-2015
Experience: Bluetooth Low Energy GATT profile customization for a client identification token- based solution
Role: Firmware software developer
Client: Telecom Italia Lab
Objectives: Enabling the use of Bluetooth Low Energy Technology, within the context of a turnkey solution identification via token internally developed
Description: Definition, design, configuration, implementation and installation of a GATT Profile, Service and Feature onto a firmware of a programmable BLE device connected to a PC in order to transfer tokens sent by a smartphone (iOS or Android) via BLE interface to the serial port of the personal computer and then be processed by a Desktop Application
Technologies: BlueGiga Proprietary Scripting Language, Java, Swing/AWT
Period: 8-2015 – 10-2015
Experience: Native mobile development Android 4.0 and higher
Role: Mobile application developer
Client: Telecom Italia Lab
Objectives: As part of a turnkey solution, implementation of an identification appliance through token developed internally using Android terminals to enable the identification through NFC technology (HCE), QrCode received via Bluetooth and Mobile Connect OpenID authentication
Description: Application for Android able to identificate a user through a Mobile Connect login. An SMS verify of the phone number associated with a customers data base in order to receive identification tokens that can be used for payment, turnstiles opening, ans so on
Technologies: OAuth, OpenID Connect, Android, Java
Period: 6-2015 – 08-2015
Experience: Native mobile development Android 4.0 and higher
Role: Mobile Application developer
Client: Telecom Italia Lab
Objectives: Design and implementation of an application for smartphones to manage internet traffic offers offered as coupons
Description: The application captures coupons via QR Code, by watching videos provided by Sponsor or by Scratch Card sold by the service provider. The coupons consist of hours or internet traffic and can be activated by the application itself. Coupons may be transfered to other TIM customers via the telephone number of the recipient or via NFC
Technologies: REST, Android, RecyclerView, CardView, Volley
Period: 4-2015 – 5-2015
Experience: Single page web application
Role: Javascript application developer
Client: Telecom Italia Lab
Objectives: Visual editor for the production of XML documents
Description: Implementation of a visual editor for the production of Widget type custom XML documents validated with a set of XSD schemas and downloadable as a zip file
Technologies: Jquery, Underscore, HTML5
Period: 1-2015 – 3-2015
Experience: Native mobile development Android 4.0 and higher
Role: Mobile application developer
Client: Telecom Italia Lab
Objectives: Evolutionary maintenance of a smartphone application to manage reservation for guests visits
Description: Customization and addition of features in the application upon user requests; design and implementation of smartphone application to manage the booking of corporate resources (classrooms meeting) and enable access to the resource (eg. opening enabling mechatronics for classroom meeting) devices via NFC; the application also allows the entry clearance in the company (eg. enabling opening turnstile via NFC) as a virtual reception service
Technologies: Android, RecyclerView, CardView
Period: 9-2014 – 12-2014
Experience: Full stack web server application provisioning
Role: Operations engineer
Client: Telecom Italia Lab
Objectives: VM Provisioning, service configurations and software deploy within UNIX environment
Description: Automated configuration and installation of a RDBMS, Application Server in a Java environment, deploy web application package
Technologies: Puppet, Vagrant, VMWare, VirtualBox, Ruby, Bash
Period: 6-2014 – 9-2014
Experience: Build automation of Android projects and libraries
Role: Build automation engineer
Client: Telecom Italia Lab
Objectives: Implementation of a centralized build system for team's projects with internal Issue Tracker integration
Description: Implementation of auxiliary scripts for a centralized application build
Technologies: Jenkins, Gradle, Maven, Android, Redmine, Ruby, Bash
Period: 2-2014 – 6-2014
Experience: Native mobile development Android 2.3 and higher
Role: Mobile application developer
Client: Telecom Italia Lab
Objectives: Design and implementation of a smartphone application for managing reservations of guests visits
Description: The application allows the entry clearance in the company on a specified date as virtual reception service; interfacing to back-end REST for delivery and consultation of bookings to authorized users
Technologies: Android, Fragments, REST
Period: 9-2013 – 2-2014
Experience: Native mobile development Android 2.3 and higher
Role: Mobile application developer
Client: Telecom Italia Lab
Objectives: Design and implementation of smartphone application to manage the booking of corporate resources (classrooms meeting) and enable access to the resource (eg. opening enabling mechatronics for classroom meeting) devices via NFC
Description: Design architecture to handle bookings of heterogeneous resources with different types of equipment and selection criteria; interfacing to back-end REST for delivery and consultation of bookings to authorized users
Technologies: Android, Fragments, REST
Period: 8-2013 – 9-2013
Experience: Native mobile development BlackBerry 7.1
Role: Mobile application developer
Client: Telecom Italia Lab
Objectives: Application for NFC equipped smartphones, for the management of smart cards (eg. Attendance badge business, credit card canteen, public transport badge); interface to a library developed to communicate to / from SIM NFC and NFC terminals (POS, detectors, etc ..)
Description: Allows through REST API back-end developed by third parties, the management of subscribed services (subscription request to a new service, removal subscription to one or more services, operations related to the individual as a subscribed service payments, sending identity in terminals, etc ..); management of PIN / PUK application integrated SIM Level
Technologies: Java Micro Edition, BlackBerry, NFC
Period: 5-2013 – 7-2013
Experience: Evolutionary development web application
Role: Web application developer
Client: Gruppo Tesi
Objectives: Components customization in web application for the management of customizable questionnaires oriented assessment and identification of company policies regarding privacy
Description: Personalization of .NET components for insertion and formal validation of formulas expressed with EXCEL syntax used for the calculation of the scores in the questionnaires
Technologies: C#, ASP.net, .NET, SQL Server, T-SQL
Period: 2-2013 – 4-2013
Experience: Web application development
Role: Front end web developer
Client: Banca Intesa San Paolo
Objectives: Customization components in CMS to manage corporate banking websites
Description: Customizing components javascript (carousel, WYSIWYG editor) Java Servlet in a content management system based on XML
Technologies: Javascript, jQuery, Java, JSP, Weblogic, J2E
Period: 1-2013 – 3-2013
Experience: Teaching of native Android applications development
Role: Android development teacher
Client: SCAI Torino
Objectives: Training on the development of Android applications in Java
Description: Dispensing a course to introduce the Android operating system, its components and their application programming techniques through a theoretical introduction accompanied by the development of a sample application that integrates ListView, database management, position management, maps, notifications, media, WebView and fragments
Technologies: Java, Android
Period: 10-2012 – 12-2012
Experience: iPhone application development
Role: iOS Mobile developer
Client: Telecom Italia Lab
Objectives: Implementation of a native mobile application for iPhone
Description: Implementation of a mobile application for iPhone for the use of aggregate information from social networks (Facebook, Twitter, FourSquare). The application shows the activities flow of the social circle, the user's contacts and a geographic location map with points of interest.
Technologies: Objective-C, iOS, UIKit
Period: 4-2012 – 9-2012
Experience: Development of a multi-platform mobile application
Role: Mobile developer
Client: Telecom Italia Lab
Objectives: Implementation of a multi-platform mobile application: Android, iPhone
Description: Implementation of a multi-platform mobile application on Android and iPhone for the use of aggregate information from social networks (Facebook, Twitter, FourSquare); the application shows the flow of the activities of the social circle, the user's contacts and a geographic location map with points of interest
Technologies: PhoneGap, jQuery Mobile, Sencha Touch
Period: 1-2012 – 4-2012
Experience: Windows Phone 7 application development
Role: Native mobile developer
Client: Vodafone Italia
Objectives: Implementation if a native Windows Phone 7 application (Vodafone SmartPass)
Description: Implementation of a mobile application on Windows Phone 7 for the use of payment services via prepaid virtual; the app makes available to the user access to information services, devices, self care and mobile couponing and advertising
Technologies: C#, XAML
Period: 11-2011 – 12-2011
Experience: iPhone app development with a multi-platform framework
Role: Mobile Developer
Client: Vodafone Italia
Objectives: Implementation of an application for iOS with a cross-platform framework
Description: Implementation of a mobile application platform iOS/iPhone for payment services via a virtual prepaid card; the app makes available to the user access to information services, devices, self care and mobile couponing and advertising
Technologies: Javascript, jQuery, Ruby, HTML/CSS, Rhomobile
Period: 9-2011 – 10-2011
Experience: Symbian app development with a multi-platform framework
Role: Mobile Developer
Client: Fondazione Veronesi
Objectives: Implementation of a mobile application on Symbian platform for Veronesi Foundation
Description: The application shows an agenda in which information about medical tests are displayed and recommended according on user's gender and age
Technologies: Javascript, jQuery, Ruby, HTML/CSS, Rhomobile
Period: 8-2011 – 9-2011
Experience: Facebook app development
Role: Full stack web developer
Client: Start up TLC
Objectives: Implementation of a Facebook application to manage a virtual currency
Description: Creation of a web application on the Facebook platform. The application allows the user to insert products that can be exchanged with other users via coupon
Technologies: Ruby, Ruby on Rails, Postgres, Javascript, jQuery, HTML/CSS
Period: 2-2010 – 9-2010
Experience: Web app development
Role: Full stack web developer
Client: Start up TLC
Objectives: Implementation of a web application for displaying meta-information about media content
Description: Implementation of a web application for displaying meta information related to digital content format MP21 profiled user; administrators can see on a control panel the number of times that the contents have been played, a time graph with reproductions for content in the last 30 days, while users can monitor the use of their digital content
Technologies: Ruby, Ruby on Rails, Postgres, Javascript, jQuery, jQuery UI, HTML/CSS
Period: 4–2010
Experience: Intranet web application development
Role: Full stack web developer
Client: Private clinical laboratory
Objectives: Implementation of a web application for managing cost estimation of chemical analysis
Description: Implementation of a web application for managing preventive chemical analysis. The system allows the grouping of analytes and provides information on the expected delivery date and cost calculation for the final client
Technologies: Ruby, Ruby on Rails, MySQL, Javascript, HTML/CSS
Period: 3-2009 – 6-2009
Experience: Intranet web application development
Role: Full stack web developer
Client: no profit corporation
Objectives: Implementation of an information retrieval system
Description: Implementation of a web application for managing information related to the services provided by the consultancy. In particular, personal information management, organizations and consultancies.
Technologies: Ruby, Ruby on Rails, Postgres, Javascript, HTML/CSS
Period: 5-2008 – 2-2009
Experience: Intranet web application development
Role: Full stack web developer
Client: Private institute of medical research
Objectives: Implementation of a web application for the management of clinical data for university research project
Description: Implementation of a web application for managing information on medical records of patients undergoing drug therapy; the system allows the recovery of the historical clinical data and a section in which to do research on parametric data
Technologies: Ruby, Ruby on Rails, MySQL, Javascript, HTML/CSS
Period: 4-2007 – 9-2007
Experience: Intranet web application development
Role: Full stack web developer
Client: Despar
Objectives: Implementation of a web application for managing reservations offers for supermarkets affiliates
Description: Implementation of a web application that allows managers to supermarkets affiliated to the brand, access to a control panel from which you can see incoming offers for product assortment and range of dates, in order to reserve those of interest via an user interface
Technologies: PHP, PRADO, Apache, SQL Server, MySQL
Period: 12-2006 – 1-2008
Experience: Evolutionary development of a Java application
Role: Java developer
Client: Despar
Objectives: Maintenance software for the management of fidelity cards
Description: Maintenance management software flow demands answers between headquarters and stores on the management of consumer loyalty cards
Technologies: Java, Swing/AWT, SQL Server
Period: 12-2006 – 1-2008
Experience: Evolutionary development of a Java application
Role: Java Developer
Client: Despar
Objectives: Maintenance of software for processing sales data
Description: Evolution of a software for processing data and producing specific reports
Technologies: Java, Swing/AWT, DB2 UDB

Education

Qualifications

2006: Bachelor Degree in Computer Science at Catania University – Score 108/110

1996: Maturità Scientifica. High school diploma at the "Liceo Don Bosco", Catania – Score 60/60

Languages

Written Spoken
Italian Excellent Excellent
English Good Good

Other activities

November 2009: backend implementation for online management of thematic seminars.

August 2009: Implementation back end web application for preventive chemical analysis.

June 2009: publication introductory article to the use of Test Driven Development with Ruby on Rails on Rails Magazine.

April 2009: talk to the Telecom Working Capital Barcamp entitled: Redis, a service with high performance for storage of data structures.

January 2009: participated in the foundation of Catania Ruby User Group and has organized regular meetings. 

May 2008: begins designing web application for the management of clinical data management Leukemia Chronic Myelogenous.

Open source projects

Bitcoin Protocol: Bitcoin protocol implementation in Ruby
https://github.com/altamic/bitcoin-protocol

Binary Finery: library for reading/writing binary data in Ruby
https://github.com/altamic/binary_finery

Clinikr: web application for estimating quotes for clinical analysis and related examinations
http://user:password@clinikr.com

Notepad: Implementation of a notepad in Android with database SQlite
https://github.com/altamic/notepad

Mainteinancer: web application for managing maintenance for machinery
https://github.com/altamic/maintenancer

Gestione Referti: web application for the acceptance of clinical tests with statistical functions
https://github.com/altamic/gestione_referti