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

(curriculum vitæ updated on January 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.

Summary

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).

Skills

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

TLC


Role: Mobile application developer (iOS)
Period: Aug 2016 – ongoing
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: Jan 2016 – Aug 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

TIMpersonal

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 Jan 2017


Role: Mobile application developer (Android)
Period: Aug 2015 – Oct 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

MobileConnectProximity

A turnkey appliance that provides identification services based on the OpenID Mobile Connect protocol that can be used by a third party for authorization services (payment, turnstile opening, and so on). It consists of a Desktop PC application 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 platforms able to identificate a user through an OpenID login and receive identification tokens to be transmitted to a Desktop PC app, a Custom Bluetooth GATT Profile and a RESTful back-end.
Released as a prototype in Nov 2015


Role: Mobile application developer (Android)
Period: Jun 2015 – Aug 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 Aug 2015


Role: Mobile application developer (Android)
Periods:
- Jan 2015 – Mar 2015
- Feb 2014 – Jun 2014
- Sep 2013 – Feb 2014
Experience: Design and implementation, evolutionary maintenance, implementation of new features (meeting rooms reservation)
Technologies: Material Design, RecyclerView, CardView, Volley, REST APIs

SelfPass

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 Jun 2014


Role: Mobile application developer (BlackBerry)
Period: Aug 2013 – Sep 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 Sep 2013


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

SmartPass

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 Apr 2012

Finance


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

Payment APIs integration

Integration of banking APIs into a iOS application in order to provide banking services (virtualize physical cards, P2P payment between users, POS payments).
Work in progress

Medical research


Role: Mobile application developer (Symbian)
Period: Sep 2011 – Oct 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 Oct 2011

Services


Role: Teacher
Period: Jan 2013 – Mar 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.

Open source projects

Privablic: access to private members and methods of a C++ struct or class
https://github.com/altamic/privablic

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

Mainteinancer: web application for managing maintenance of 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

Education

Qualifications

2006: Bachelor's degree (5 years) in Computer Science at Catania University
Mark: 108/110

1996: High school diploma specializing in science education at "Liceo Don Bosco", Catania 
Mark: 60/60

Languages

Written Spoken
Italian Excellent (native) Excellent (native)
English Intermediate (B2) Intermediate (B2)

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

Other activities

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

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

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

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

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