michelangelo@altamore.org — +39 320 948 66 63 — altamic
Self-motivated fast learner, enthusiast to tackle problems using appropriate tools, result-driven problem solver and proactive team player.
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
![]() 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, Firebase, Alamofire, PromiseKit, RESTful APIs integration, OpenID Mobile Connect |
TIMpersonal v2.xIntegration 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 |
TIMpersonaliOS/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 |
MobileConnectProximityA 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 TokkyAndroid 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) Periods: • 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 |
SelfPassAndroid 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 WalletBlackBerry 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 |
SmartPassWindows 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 |
![]() 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 SaluteSymbian 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 courseDispense a course to introduce the Android architecture and train on the development of Android applications in Java. |
| July 2006: | Bachelor's degree (5 years) in Computer Science |
| Mathematics and Computer Science Department University of Catania, Italy |
|
| Mark: 108/110 |
| June 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 |
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
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.