Marco's professional portfolio
Experienced software architect and technical manager.
Professional interests: application architecture design, Swift, technical documentation, mobile development.
Personal interests: traveling, bouldering, board games, volunteering.
In March 2016, Wire™ launches a new version, featuring video calling and end-to-end encryption. As the company focuses on privacy and security, the source code of some critical parts of the application is made available to the public.
During my years of work at Wire, I made contribution to all parts of the iOS code currently available to the public. A list of currently released repositories can be found here.
As of February 2016, Apple's Swift language has come a long way since its first release. The big news of the end of 2015 is the open sourcing of the language, as it reaches its 2.2 version. This will, on the long run, allow Swift to expand to new platforms and new domains. One of these domains, so far mostly ignored, is Swift as a scripting language.
Curious about how feasible it is as of today to write scripts effectively in Swift, I want to explore the possibilities starting from my Python scripting experience. In that context, two essential workhorses are the Subprocess and ArgParse modules.
As a starting point of investigating Swift as a scripting language, I started with an attempt to reproducing a subset of the features of those Python modules in Swift. You can find Targone (inspired by ArgParse) and Morione (inspired by Subprocess) on GitHub.
WireTM launches in December 2014. It is a fresh take on communication praised for its beauty of design and seamless integration across a spectrum of platforms. It features messaging, voice calls, images and media sharing.
At the time of the launch, I had been working on this project for 13 months. My role in this project is that of a C++/Objective-C developer focused the internal synchronization library used by the iOS and OSX clients.
InkscapeMap is an open source software to create HTML imagemap or just extract coordinates (think PHP GD libraries) from SVGs created with Inkscape. It is a one-man open source project developed in my free time in Java.
I've just uploaded a new version supporting Bezier curves and circles/ellipses. Starting with this version 0.10, the license has been changed to the more permissive MIT license.
As part of the next release of Inkscapemap I would like to introduce support for Bezier polylines, so I sketched up a Mathematica notebook to play around with a generic Bezier curve equation of n-th grade.
Mathematica already offers built-in Bezier curve plotting. However in order to understand the equation and code the solutions of the system
Px,y = beziern(t) in Java, needed to calculate whether a point lies on a Bezier, I wanted to write the equation explicitly.
The Notebook allows for plotting and finding if a point lies on a curve. It is available on GitHub at marcoconti83/bezier-curves
Gangstar Vegas is the fourth installment of Gameloft's Gangstar franchise and features a bigger open world, more vehicles and weapons and a longer story line. Set in the iconic city of Las Vegas, Gangstar Vegas was released in June 2013 and I am credited as gameplay programmer, having worked on this project for more than 6 months.
Dungeon Hunter 4 is an epic-scale RPG released by Gameloft in 2013. It features stunning graphics and a full-fledged campaign mode, alongside multi-player arenas. Produced at Gameloft Montreal, I am credited as programmer.
Released in June 2012, Asphalt 7 is a top class mobile racing game featuring state-of-the-art graphics, multiplayer and social networks integration. Having worked on this project for almost a year, I am credited as programmer.
With 60 cars available in the game and a 100-races long single player career, Asphalt 7 reached the first position on the top selling charts in a snap.
Building recognition on mobile devices (Android powered) using captured camera frames, without the need of a network connection to a remote server. The visual feature database used for recognition is stored in the device, hence it should be optimized to reduce the dimension. This optimization is obtained using clustering and genethic algorithms.
The research covers the design and development of a framework for the creation of small visual features database. This database is to be used on mobile devices to perform building recognition on a self-contained "Tell me what I am looking at" application using two inputs: GPS data and camera images.
The main contribution of this approach is exploring the automated creation of a compact local visual features database to be installed on the mobile device. Using a local database is justified by scenarios where a data connection to a remote server is not available or too expensive (e.g. tourists using data
Creating a compact database requires a balance between various constraints. The number of visual features in the database will affects both the size of the database on the limited storage of a mobile platform and the computation time of the image matching. However, having a small number of features in the database also results in poor results. This research evaluates the use of a genetic algorithm that selects the best parameters to build the database using visual features clustering.