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

(curriculum vitæ updated on April 2022)

Michelangelo ALTAMORE

Altamore Michelangelo

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

Android & iOS Mobile Developer

Quick facts

15 years experience
17 mobile apps delivered
4 apps running in production1
~ 100K/monthly total users1
~ 15k 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 finance, telecommunications, mass retail and medical.

I've been developing mobile Apps for ten years and more. I work fully remotely since 2018, now at Playtomic as an Android and iOS native Mobile developer. During my career, I have been involved in a wide spectrum of software projects ranging from firmware development to back-end development sometimes as a Team Leader.

Beside my general interests in programming languages, I follow with enthusiasm Kotlin/Native and its use in Multiplatform projects. I remain focused onto the evolution of the best practices in the field of software architecture, for which I have empirically developed the belief that Clean Architecture is always desirable at the application level.

I have experience with different programming paradigms (Object Oriented/Functional/Logical), specializing with on device Digital Payments protocols, nowadays offered through Host-based Card Emulation of Type 4 tags by Apple Pay and Google Pay and in the automation of software life cycle processes.

Skills

Programming paradigms: Object Oriented, Functional, Logical

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

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

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

Frameworks: JetPack Compose, SwiftUI, Coroutines, RxKotlin, RxSwift

Specialties: Digital Payments: ISO/IEC 14443, ISO/IEC 15693; Android NDK JNI C/C++, NFC (HCE, RW, P2P), Bluetooth LE

Version Control Systems: Git (git-flow)


Sport activities reservation systems


Role: Native Android and iOS application development
Period: April 2022 - ongoing
Experience: Development of a native Android and iOS consumer app aimed at sport activities reservation and social engagement with other sport players
Technologies: SOLID principles, Clean Architecture; Android: Kotlin, Jetpack, Android Studio, Bitrise, Zeplin; iOS: Xcode, Swift, UIKit, SwiftUI, MVP, MVVM.

Playtomic mobile app

Implementation of evolutionary changes of an existing native mobile application aimed at finding and booking courts to play Padel, Tennis and other club sports
Currently on PlayStore and AppStore

Medical research


Role: Native Android and iOS application development.
Period: December 2021 - March 2022
Experience: Human hair segmentation and 3D modeling by 2D pictures with generative techniques, exploration of iOS LiDAR API and other AR techniques
Technologies: iOS, Swift, Deep Learning techniques, Google MediaPipe, TensorFlow Lite, ARKit 5, SceneKit, Reality Composer

DHI Mobile app

Mobile app prototype able to perform human hair recognition and 3D reconstruction, aimed at realistic human hair modeling and rendering
Released internally during February 2022

Point-Of-Sale Systems


Role: Native Android application development.
Period: September 2020 - December 2021
Experience: Ad hoc customizations and various additions (e.g. SumUp terminals, MQTT protocol, NFC canteen badges, etc ...)
Technologies: Java, Android

A Touch System

Implementation of evolutionary changes for the introduction of new features. Ad hoc customizations and various additions (e.g. SumUp terminals, MQTT protocol, NFC canteen badges and so on…)
Multiple periodic releases since September 2020

Medical Emergency


Role: Native Android application development.
Period: March 2020 - September 2020
Experience: Team Leader, System Analyst, Mobile Developer
Technologies: Clean Architecture, Kotlin/coroutines, Android, Dagger, Couchbase, Android Architecture components.

Zulu.E 2.0

Design and implementation of an Android tablet application able to collect clinical data in the context of EMS, able to operate offline and sync collected data coming from on-site operators or medical equipment devices.
Released in September 2020

Finance


Role: Native cross platform mobile application developer (Kotlin Multiplatform, Kotlin/Native)
Period: February 2020 - March 2020
Experience: Evolutive change requests for an existing built in house KMP iOS/Android native application.
Technologies: Clean Architecture, Kotlin, Kotlin Multiplatform Project, Coroutines, RxSwift, KTor, Kotlin Serialization

LynQs

Evolution of a mobile application providing a digital marketplace of financial products, investment ideas, lifecycle analytics, portfolio analytics and market events notifications.
Released during March 2020 for both AppStore and PlayStore

Finance


Role: Mobile application developer (Android/Kotlin)
Period: September 2018 – February 2020
Experience: Integration of REST web services and relative UI adaptation for an existing app
Technologies: Clean Architecture, MVP, Dagger, RxJava, Retrofit, Realm

B.link v1.2

Summarize financial KPIs overview of customers, track progress and manage proposed financial products.
Released for corporate employees in July 2019

TLC


Role: Mobile application developer (iOS/Swift)
Period: March 2017 – August 2018
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.x

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/Swift)
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: RxSwift, iOS, Alamofire, Realm

Role: Mobile application developer (Android/Java)
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

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


Role: Mobile application developer (Android/Java)
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

MobileConnectProximity

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/Java)
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: 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/Java)
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

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


Role: Mobile application developer (BlackBerry/Java ME)
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/C#)
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

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

Medical research


Role: Mobile application developer (Symbian/Javascript)
Period: September 2011 – October 2011
Experience: Develop a mobile application with a cross platform environment
Technologies: Rhomobile, 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

Services


Role: Teacher
Period: January 2013 – March 2013
Experience: Introduce the Android OS, its components and application programming techniques through a theoretical introduction and practical development of a sample app with fragments, list views, database, maps and media.
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 2 years and 7 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 1 year and 3 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


Education

Qualifications

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

Languages

Understanding Speaking Writing
Listening Reading Interaction Production
Italian C2 C2 C2 C2
English B1 B1 B1 B1

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

Other activities

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.

Personal interests

Tennis: I started playing it at the age of 7, regularly and with passion. I string my rackets with strings and tensions that I choose appropriately.

Table tennis: I have been training twice a week since October 2021 in a local club.

Running: Almost daily since September 2020, with various general benefits and alternating with swimming whenever possible.

Sailing: My interest for the wind led me to try and sign up for a sailing course in October 2021 with the aim to obtain a nautical license.

Meditation: In my opinion it can facilitate a better self-awareness, which is why I practice it almost daily.