michelangelo@altamore.org +39 320 948 66 63 altamic

(curriculum vitæ updated on March 2018)

Michelangelo ALTAMORE

Altamore Michelangelo

Self-motivated fast learner, enthusiast to tackle problems using appropriate tools, result-driven problem solver and proactive team player.

Mobile developer over Android and iOS platforms

Quick facts

11 years experience
10 mobile apps delivered
6 apps running in production1
~ 60k total users1
~ 7.4k commits

1 at the time of writing.


I got a five-years 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.

I currently work as senior iOS software developer for an agile team that adopts SCRUM methodology since early 2015, at TIM, the biggest Italian telecommunications company. I also have an extensive experience of the Android mobile platform. During my decennial career I've been involved in a wide range of software projects spanning from firmware to back-end development.

I am interested in the latest advancements of both statically typed programming languages (Kotlin, Java, Swift) and dynamic ones (Ruby, Javascript). I am experieced with different programming paradigms (Object Oriented/Functional) and methodological approaches as Reactive Programming (RxJava, RxSwift). I have also some knowledge about CI/CD (Jenkins, Artifactory, Maven, Gradle, Scripting, Puppet, Vagrant).


Programming paradigms: Object Oriented, Functional

Languages: Kotlin, Java, Swift, Objective-C, C, Ruby, Javascript

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

Remote API paradigms: HTTP REST (JSON, XML), RPC (SOAP)

Frameworks: RxKotlin/RxJava, RxSwift/PromiseKit

Specialties: Android NDK JNI C/C++, NFC (HCE, RW, P2P), Bluetooth LE

Version Control Systems: Git, SVN

Projects grouped by clients


Role: Mobile application developer (iOS)
Period: March 2017 – ongoing
Experience: Integrating REST web services and a new UI into an existing iPhone app
Technologies: ApplePay, Apple Push Notifications, Alamofire, PromiseKit, RESTful APIs integration, OpenID Mobile Connect

TIMpersonal v2

Integration of banking APIs into an existing iOS application in order to provide banking services (virtualize physical credit cards, P2P payment between users, POS payments).
Released publicly in January 2018

Role: Mobile application developer (iOS)
Period: August 2016 – February 2017
Experience: Introduce an event based architecture, refactor and/or port ObjC code to Swift, implement features, introduce bug fixes, profile and improve performances
Technologies: Swift, RxSwift, iOS, Alamofire, Realm, Xcode, CocoaPods

Role: Mobile application developer (Android)
Period: January 2016 – August 2016
Experience: Implement business logic flows pertaining the APIs with reactive programming and link them with the UI through an event based architecture, introduce planned features
Technologies: RxJava, EventBus, Retrofit, Java, Android Studio, Gradle


iOS/Android application that provides an identification service based on the SIM to gain access to third party services: payment for goods/services of TIM business partners and obtain authorization to public administration services (SPID). The application provides other ancillary services: purchase of bus tickets and parking for many Italian cities and is able to capture and virtualize loyalty cards.
Released publicly in January 2017

Role: Mobile application developer (Android)
Period: August 2015 – October 2015
Experience: Design and implement methods to enable an OpenID Mobile Connect login; intercept an SMS with a PIN number in order to verify the phone number associated with a customer's data base, call a remote API to receive identification tokens that can be transferred by NFC technology (HCE), QrCode or via Bluetooth LE
Technologies: Bluetooth, HCE, OAuth, OpenID Connect, Android Studio, Java


A turnkey appliance that provides identification services based on OpenID Mobile Connect that can be used by third parties for authorize payments, turnstile opening, and so on. It consists of a Desktop app able to get an identification token via WebCam (QrCode), Bluetooth LE (GATT), PC/SC NFC reader (HCE), a Mobile application for both Android and iOS able to identificate a user through an OpenID login and receive identification tokens to be transmitted to a Desktop app, a Custom Bluetooth GATT Profile and a RESTful back-end.
Released as prototype in November 2015

Role: Mobile application developer (Android)
Period: June 2015 – August 2015
Experience: Design and implement an app to acquire and manage coupons captured by a QrCode or transferred via NFC interfacing with back-end via REST APIs
Technologies: Android, RecyclerView, CardView, Volley, REST APIs

TIM Tokky

Android app that captures coupons by a QR Code shown after watching videos provided by a Sponsor's website, or by a Scratch Card sold by the TIM telco. Coupons consist of hours/volume of internet traffic and can be activated in app or transferred to other TIM customers via the recipient's phone number or NFC.
Released as a prototype in August 2015

Role: Mobile application developer (Android)
• January 2015 – March 2015
• February 2014 – June 2014
• September 2013 – February 2014
Experience: Design and implementation, evolutionary maintenance, implementation of new features (meeting rooms reservation)
Technologies: Material Design, RecyclerView, CardView, Volley, REST APIs


Android application intended for corporate employees. Perfoms a virtual reception service allowing to book a visit for a guest and providing the guest's entry clearance in the company. The application also manage the booking of corporate resources (classrooms meeting) and enable access to the resource (opening enabling mechatronics for classroom meeting) via NFC.
Released for corporate employees in June 2014

Role: Mobile application developer (BlackBerry)
Period: August 2013 – September 2013
Experience: Interface to communicate to/from SIM NFC and NFC terminals (POS), implement management of service subscriptions (request, removal, operations related to payments, sending identity in terminals), management of PIN/PUK application integrated at the SIM Level
Technologies: Java Micro Edition, BlackBerry, NFC

TIM Wallet

BlackBerry application for the management of smart cards (eg. attendance business badges, canteen badges, public transport badges).
Released publicly in September 2013

Role: Mobile application developer (Windows Phone)
Period: January 2012 – April 2012
Experience: Develop a Windows Phone app with platform's UI native components, interface with RESTful back-end APIs
Technologies: C#, XAML


Windows Phone/iOS application to enable use of payment services via prepaid virtual cards. The app makes available information services, self care, mobile couponing and advertising.
Released as a prototype in April 2012

Medical research

Role: Mobile application developer (Symbian)
Period: September 2011 – October 2011
Experience: Develop a mobile application with a cross platform environment
Technologies: Rhomobile, Javascript, jQuery, Ruby, HTML/CSS

Agenda della Salute

Symbian application providing an agenda where information about medical tests are displayed and recommended according on user's gender and age.
Released publicly in October 2011


Role: Teacher
Period: January 2013 – March 2013
Experience: Introduce the Android OS, its components and relative application programming techniques through a theoretical introduction accompanied by the development of a sample app that integrates ListView, database management, position management, maps, notifications, media, WebView and fragments
Technologies: Java, Android, Eclipse

Android course

Dispense a course to introduce the Android architecture and train on the development of Android applications in Java.

Other professional experiences outline

Full stack web developer: 6 times for 31 months in total
Technologies: Ruby, Ruby on Rails, Postgres, MySQL, Javascript, jQuery, jQuery UI, HTML/CSS, PHP, PRADO, Apache, SQL Server

Desktop application developer: 3 times for 15 months in total
Technologies: Java, Swing/AWT, JavaFx, PC/SC NFC, DB2 UDB

Front end web developer: 3 times for 8 months in total
Technologies: Jquery, Underscore, HTML5

Operations engineer: 2 times for 4 months in total
Technologies: Jenkins, Gradle, Maven, Artifactory, Puppet, Vagrant, VirtualBox, Bash, Ruby

Firmware software developer: 1 time for 2 months in total
Technologies: C, BlueGiga Proprietary Scripting Language, Bluetooth Low Energy Specs



2006: Bachelor's degree (5 years) in Computer Science
Mathematics and Computer Science Department
University of Catania, Italy
Mark: 108/110
1996: Senior high school diploma specializing in science education
Liceo “Don Bosco”
Catania, Italy
Mark: 60/60


Understanding Speaking Writing
Listening Reading Interaction Production
Italian A1 A1 A1 A1
English B2 B2 B2 B2

Open source projects

Privablic: access to private members and methods of a C++ struct or class

Bitcoin Protocol: Bitcoin protocol implementation in Ruby

Binary Finery: library for reading/writing binary data in Ruby

Clinikr: web application for estimating quotes for clinical analysis and related examinations

Mainteinancer: web application for managing maintenance of machinery

Gestione Referti: web application for the acceptance of clinical tests with statistical functions

Other activities

November 2009: implement a web application to manage thematic seminars.

August 2009: implement a web application to manage chemical analysis estimates.

June 2009: publish an introductory article about the use of Test Driven Development with Ruby on Rails on the Rails Magazine.

April 2009: talk at the Telecom Working Capital Barcamp entitled “Redis, an high performance service for data structures storage”.

January 2009: co-founder of Catania Ruby User Group and organizer of regular meetings.