avatar

Niccolò Fontana

/* iOS Software Engineer */

👋 Hey there! Nice to meet you

I'm Niccolò, iOS software engineer with a Master's in Computer Science Engineering.
Making software for people is what I love to do and what makes me feel fulfilled, that's why I love to spend time learning new things and playing with different software technologies.
Building mobile apps is what I enjoy the most, because it gives me the capabilities to create something that can be in everyone's hands.
Last but not least, I'm an Open Source Software fan. I like the idea of collaborate with people all around the world to craft useful pieces of software that other people can use, either to solve their problems or build their products.
When I am not in front of a keyboard I usually play soccer in a local championships or I am enjoying anything outdoors with friends.

🚀 Projects I had fun with

Experimenting with Swift & iOS Development

In my free time I love to experiment with the Swift programming language and iOS development to learn new APIs and techniques.
From server side Swift projects to SwiftUI apps, I always enjoy spending time with these technologies.

Tomidius - A good/bad tomato classifier

Tomidius is a University project that consists of a system for real-time classification of cherry tomatoes.
The application can distinguish intact tomatoes from those that have cuts or imperfections on the surface, based on the video streaming obtained from a webcam.
I developed this project with two classmates.

SSC Facility Location Problem

A solver for the Single Source Capacitated Facility Location Problem that I developed for the Operations Research exam.
The solver leverages different algorithms and heuristics.

Life At DE

A Web Application with a Ruby on Rails backend and a ReactJS frontend that should help students of the Ferrara Engineering Department in their University life.
With this app, a student can sell/share its notes and books, look for project mates, create study groups, and read the department's news.

You can try it here with:
Username: john.doe@student.unife.it
Password: password

Peer-to-Peer Networks

During the University course of Peer-to-Peer Networks, I developed, with three classmates, 4 CLI applications for peer-to-peer file sharing on a local network.
The aim was to reproduce some of the applications that made the history of peer-to-peer systems: Napster, Gnutella, KaZaA, and BitTorrent.

Napebook - A tiny Facebook

A tiny social network inspired by Facebook I developed with three classmates using the Laravel PHP framework.
We used AWS to deploy the final application using Apache with the PHP module and MySQL on an EC2 instance.

🌎 Open Source Contributions

Almost every project I've worked on involved open-source libraries and frameworks as dependencies.
Instead of just being an open-source consumer, I like the idea of being part of it and contributing to the community effort whenever I can.

Here are the projects I contributed to:

SwiftUI CustomTabView
I released a SwiftUI component for creating TabViews with a custom tab bar. Supporting both iOS and macOS.
See: Code
Algolia InstantSearch iOS
Fixed a bug and add a little API to free unused memory.
See: PR 1, PR 2
RealHTTP
Fixed a warning and a flaky test.
See: PR
Mia-Platform Vapor Hello World Example
Created the Mia-Platform Swift microservice example leveraging the Vapor framework.
If you want to take a look, here is the project.
Immuni iOS
Improved the Python script that runs UITests to run the test suite multiple times with different font sizes without manually changing the setting of the simulator before each run.
See: PR
Swift Argument Parser
Implemented the management of a particular condition that caused a crash without showing the user a meaningful error message.
See: PR
BouncyCastle's Java crypto library
Reported a bug that prevented the correct completion of a DTLS handshake and proposed a possible fix.
See: PR
I'm looking forward to make many more contributions in the future.

👨‍💻 Work Experience

iOS Engineer - 2023/Today

Immobiliare.it, Full Remote

  • Increased user engagement with real estate agencies by 10% implementing a new Agency Detail feature;
  • Successfully consolidated the analytics data streams, previously directed to two distinct endpoints, into a single, centralised endpoint, improving the overall system efficiency and maintainability;
  • Improved developer experience by defining comprehensive guidelines for the adoption and integration of SwiftUI within our app, predominantly built using UIKit.
Main app's technologies:
  • UIKit and SwiftUI
  • Swift Structured Concurrency (async/await)
  • SQLite
Tooling:

iOS Engineer - 2022/2023

Vidiemme, Full Remote

  • Led the architectural design process of a new (SwiftUI) iOS application, and implementing it using the MVVM+C pattern to ensure a scalable, modular, and maintainable codebase;
  • Actively participated in backend requirements analysis and definition, fostering strong collaboration between the iOS development team and backend counterparts;
Main app's technologies:
  • SwiftUI
  • Swift Structured Concurrency (async/await)
  • Core Data
  • GraphQL
  • Algolia integrated through the first-party library AlgoliaInstantSearch
Tooling:

Full Stack Software Engineer - 2020/2021

Mia-Platform, Milan, Italy

  • Unlocked microservices Monitoring and Alerting by instrumenting Kotlin microservices using the Prometheus client library. The exposure of these essential metrics allowed us to create insightful Grafana dashboards and configure alerts;
  • Increased test coverage by 30% creating a Node.js package that allowed developers to write end-to-end unit tests across our microservices in a simple declarative way;
  • Allowed the client train company personnel to create and manage train alerts with an intuitive interface by developing a ReactJS back-office dashboard.

Research Assistant (Thesis) - 2019/2020

IHMC, Pensacola, FL

  • Contributed to a research paper titled "A Federated Platform to Support IoT Discovery in Smart Cities and HADR Scenarios" by implementing a Kotlin CLI application with the purpose of acting as a discovery agent for IoT devices in local networks and collecting metrics about network bandwidth consumptions;
  • Developed a Java that simulates IoT devices working with different protocols such as CoAP and MQTT;
  • Taking care of the containerization of different internal software with Docker;
  • Collaborated in the development of different Kotlin and Python CLI applications.

Junior Web Application Developer - 2017/2019

Seltzlab, Ferrara, Italy

I worked part-time in Seltzlab as a backend web developer while I was a student. During this experience, I contributed by:

  • Bringing improvements and fixing bugs on an e-commerce web application;
  • Developing ReST APIs for a mobile application co-operating with the frontend team;
  • Implementing a new part of a portal that is used by the Italian Institute of Technology.
This experience greatly improved my web development capabilities and introduced me to the ReST architectural pattern.

Intern Web Application Developer (Thesis) - 2017

Seltzlab, Ferrara, Italy

This three months long internship introduced me to the world of modern web application development.
By building a web app that facilitates the management of future interns, I was able to learn:

  • The MVC pattern and its application in web development;
  • The Symfony PHP framework;
  • Git as a versioning tool and Trello as a kanban board for agile development.
The resulting web application worked as expected, but the best outcome was the knowledge I acquired.